Questo documento descrive come il WE500 usa la API del Portale Nethix per abilitare una VPN. Il WE500 è un client mentre il Portale è il server. Possono esserci più clienti come PC, laptop e dispositivi mobile.
Normalmente, quando configuriamo un VPN client, l’utente inserisce manualmente i dati, come l’username e la password, richiesti per la connessione da effettuare. Quando uno di questi parametri cambia, l’utente lo cambia manualmente nel client e così via. Questo flusso di lavoro non può essere applicato al WE500 dal momento che è un dispositivo autonomo che deve essere in grado di impostare e aggiornare automaticamente la sua configurazione. Questo è fatto con l’aiuto del web server a cui si connette il WE500. Quindi il web server risponde con i dati che contengono l’indirizzo del server VPN effettivo (che può essere diverso dal web server), le credenziali di accesso e alcune altre informazioni. Una volta che WE500 ottiene queste informazioni, può stabilire la connessione VPN.
Danger
Nethix raccomanda vivamente l’uso di una connessione HTTPS sicura per lo scambio della configurazione dei dati VPN.
Utilizzando questo approccio, l’utente deve solo inserire l’indirizzo e la porta del web server nel menu Amministrazione -> Networking -> VPN :
Questa documentazione può essere usata per clienti che vogliono usare il server VPN del WE500.
Note
Il server VPN deve essere compatibile con il client OpenVPN http://openvpn.net/.
Il web server necessita di implementare la seguente coppia di risorse che sono descritte nella API del Portale:
Questo è il flusso di comunicazione tra WE500 e il portale Nethix. Un portale del cliente (o un semplice web server HTTPS) deve implementare questa funzionalità.
1) Il dispositivo invia una richiesta al server per ottenere lo stato della VPN
Risorsa
/api/v1/vpn
Richiesta
GET
Autenticazione
HTTP Basic
username: il serial number del dispositivo
password: l'MD5 del serial number
2) Il server risponde con lo stato della VPN, il tempo di riconnessione e le informazioni sul pacchetto
Risposta
<ntx>
<vpn>
<reconnection_time>10</reconnection_time>
<status>3</status>
<package_info>
<auth_type>0</auth_type>
<md5_ca_cert>422d6be13d96ebbe44a710eca79bbbff</md5_ca_cert>
<md5_client_conf>d41d8cd98f00b204e9800998ecf8427e</md5_client_conf>
<md5_ta_key>6d05e5f3bab43672a6189c3e1cf05d17</md5_ta_key>
<md5_credentials>05t5f69ca672a6189c3e1cf05dab5</md5_credentials>
</package_info>
</vpn>
</ntx>
Quando lo stato è disabilitato, la risposta non ha il tag package_info. Vedi 3.8. VPN per maggiori dettagli.
3) Il dispositivo analizza la risposta e se lo stato della VPN è update configuration, il dispositivo richiede i file VPN
Risorsa
/api/v1/vpn/packet
Richiesta
GET
Autenticazione
HTTP Basic
username: il serial number del dispositivo
password: l'MD5 del serial number
4) Il server controlla se il dispositivo è abilitato e restituisce i file VPN del client. Questi file sono ragruppati in una cartella compressa (tar).
Vedi 3.9. Pacchetto VPN
5) Il dispositivo controlla l’integrità dei file e aggiorna lo stato della VPN con abilitato
Risorsa
/api/v1/vpn/packet
Richiesta
PUT
Autenticazione
HTTP Basic
username: il serial number del dispositivo
password: l'MD5 del serial number
6) Il server cambia lo stato della VPN se il dispositivo è stato autenticato.
7) Il dispositivo invia una richiesta al server per ottenere lo stato della VPN
Risorsa
/api/v1/vpn/packet
Richiesta
GET
Autenticazione
HTTP Basic
username: il serial number del dispositivo
password: l'MD5 del serial number
8) Il server risponde con lo stato della VPN, tempo di riconnessione e informazioni sul pacchetto
Risposta
<ntx>
<vpn>
<reconnection_time>900</reconnection_time>
<status>2</status>
<package_info>
<auth_type>0</auth_type>
<md5_ca_cert>422d6be13d96ebbe44a710eca79bbbff</md5_ca_cert>
<md5_client_conf>d41d8cd98f00b204e9800998ecf8427e</md5_client_conf>
<md5_ta_key>6d05e5f3bab43672a6189c3e1cf05d17</md5_ta_key>
<md5_credentials>05t5f69ca672a6189c3e1cf05dab5</md5_credentials>
</package_info>
</vpn>
</ntx>
Quando lo stato è disabilitato, la risposta non ha il tag package_info. Vedi 3.8. VPN
9) Lo stato della VPN è abilitato, perciò il dispositivo può lanciare il client OpenVPN e ogni 900 secondi eseguire una richiesta verso il server alla risorsa /api/vi/vpn per ottenere il suo stato VPN.