129894 Letture

OpenVPN: la guida passo-passo per creare una rete virtuale privata e sicura

Una VPN (acronimo di Virtual Private Network) può essere considerata come un'estensione di una rete privata che si occupa di instaurare dei "collegamenti" tra due o più sistemi che debbono scambiarsi dati in modo sicuro, utilizzando una rete condivisa o comunque pubblica qual è Internet.
Una rete VPN permette di scambiare dati in modo simile a quanto accade in una connessione privata punto-punto. L'approccio utilizzato dà modo di rendere il computer remoto parte di una rete privata interna alla struttura aziendale creando un "tunnel" virtuale attraverso la rete Internet.
Per simulare un collegamento punto-punto, i dati vengono incapsulati con l'aggiunta di un'intestazione che fornisce le informazioni di routing e cifrati in modo da renderne possibile la lettura da parte di eventuali aggressori, sprovvisti delle necessarie chiavi crittografiche.

Tutti i sistemi Windows integrano il supporto per le reti VPN: lo stesso Windows XP può operare sia in modalità client che fungere da server VPN. Purtroppo, però, configurato in questa seconda modalità, Windows XP non accetta più di una connessione in ingresso.


OpenVPN è una valida soluzione opensource, disponibile per svariati sistemi operativi, che consente di implementare una VPN a costo zero senza quindi doversi necessariamente rivolgere a Windows Server.

Scaricare ed installare OpenVPN per Windows

L'ultima versione del pacchetto OpenVPN, contenente anche l'interfaccia grafica (GUI), in precedenza distribuita separatamente, è prelevabile – nella versione per Windows – facendo riferimento a questa pagina quindi cliccando sul link openvpn-2.1.1-install.exe.

OpenVPN può essere configurato, in Windows, come servizio di sistema: ciò significa che il programma verrà automaticamente avviato insieme con il sistema operativo. Il software può essere impostato affinché abiliti automaticamente il "tunnel" oppure effettui quest'operazione solamente su esplicita richiesta dell'utente.

Per avviare l'installazione di OpenVPN, è sufficiente fare doppio clic sul file eseguibile precedentemente scaricato. Nel caso in cui si utilizzi un "personal firewall", si dovrà acconsentire alle comunicazioni messe in atto da OpenVPN. Alla comparsa del messaggio che informa circa il tentativo di installazione di un driver sconosciuto, si dovrà rispondere affermativamente accettandone il caricamento sul sistema in uso.

La procedura d'installazione di OpenVPN è chiara e semplice da condurre a termine.
L'unica riflessione dovrà essere effettuata alla comparsa della finestra per la scelta dei componenti da installare. Di solito, le impostazioni predefinite sono valide per la maggior parte di casi.


Nell'elenco che riportiamo di seguito, tuttavia, indichiamo quali componenti si rivelano indispensabili per un'installazione server e quali su una macchina client:

OpenVPN User-Space Components:              client   server
OpenVPN GUI: client
OpenVPN RSA Certificate Management Scripts: server
OpenVPN Service: server
OpenVPN File Associations: client server
OpenSSL DLLs: client server
OpenSSL Utilities: client server
TAP Virtual Ethernet Adapter: client server
Add OpenVPN to PATH: client server
Add Shortcuts to Start Menu: client server


Installando la GUI di OpenVPN (scelta consigliata), non appena si cliccherà sull'omonima icona aggiunta al desktop di Windows, nella traybar in basso a destra apparirà un'indicazione circa l'avvenuto avvio del programma.

Configurazione di OpenVPN

Accingiamoci a configurare OpenVPN con l'intento di creare il primo "tunnel" tra due sistemi Windows.
Innanzi tutto, accediamo al menù Start, Programmi, OpenVPN e verifichiamo le voci aggiunte dalla procedura d'installazione:

Utilities, Generate a static OpenVPN key consente di creare una chiave crittografica utilizzabile per generare i "tunnel".
Shortcuts, OpenVPN configuration file directory permette di aprire direttamente la cartella c:\programmi\OpenVPN\config all'interno della quale sono conservate le configurazioni dell'applicazione.
Shortcuts, OpenVPN log file directory per accedere rapidamente alla directory c:\programmi\OpenVPN\log che contiene i file di log delle attività del programma.
Shortcuts, OpenVPN Sample Configuration Files apre la cartella contenente alcuni file di configurazione di esempio per OpenVPN.
OpenVPN GUI avvia l'interfaccia grafica di OpenVPN aggiungendo un'icona nella traybar di Windows (generalmente, in basso a destra).

Prima di poter fare in modo che due sistemi siano in grado di connettersi attraverso un "tunnel" OpenVPN, è necessario generare una chiave che sarà impiegata per crittografare tutte le comunicazioni. Questa chiave deve essere "installata" su entrambi i sistemi poiché, nel caso di una crittografia a chiave simmetrica, entrambi "gli interlocutori" useranno la medesima chiave.
Per procedere, è sufficiente cliccare sul link Generate a static OpenVPN key.

Il programma mostrerà una finestra a caratteri testuali invitando a premere un tasto qualsiasi per avviare la pocedura di generazione della chiave. OpenVPN produrrà una chiave crittografica a 2048 bit che sarà memorizzata nella sottocartella config con il nome di key.txt.

Per creare una prima connessione di test con OpenVPN, si inizi col copiare il file sample.ovpn dalla cartella contenente i file di esempio nella cartella config.
In Windows, l'estensione di default utilizzata per i file di configurazione di OpenVPN è .ovpn mentre in Linux è .conf.


Dopo aver avviato OpenVPN GUI, cliccando sull'icona nella traybar con il tasto destro del mouse, si clicchi su Edit config: verrà così immediatamente aperto il contenuto del file di configurazione sample.ovpn.

In questo file è necessario, innanzi tutto, modificare alcuni parametri essenziali. In particolare, vanno indicati il nome o l'indirizzo IP dell'altro host coinvolto nella VPN, il nome del file contenente la chiave, l'indirizzo IP della VPN e l'host.
Si scelga quindi un indirizzo IP per ciascun host della VPN: ad esempio, 10.3.0.1, 10.3.0.2 e così via.

Ecco un esempio di configurazione:

Computer A (IP assegnato dal provider Internet: 87.18.100.100):
remote 87.20.100.100
ifconfig 10.3.0.1 255.255.255.0
secret key.txt


Computer B (IP assegnato dal provider Internet: 87.20.100.100):
remoto 87.18.100.100
ifconfig 10.3.0.2 255.255.255.0
secret key.txt


Com'è facile intuire, remote consente di definire il sistema che è situato dall'altra parte del "tunnel" mentre ifconfig permette di assegnare un IP ed una netmask all'interfaccia "tunnel" locale. La direttiva secret, invece, indica ad OpenVPN il file contenente la chiave statica precedentemente generata.
Gli IP 87.18.100.100 e 87.20.100.100 sono stati scelti in modo casuale. Si pensi a tali IP come agli indirizzi assegnati all'interfaccia di rete Ethernet "reale".

In una comunicazione OpenVPN sono insomma quattro le interfacce di rete coinvolte: due sono "reali" (schede di rete Ethernet dei due rispettivi sistemi remoti) mentre le altre due sono "virtuali" (TUN/TAP).


Una volta configurato OpenVPN sul primo host, è possibile replicare la configurazione sul secondo sistema (modificando ovviamente gli IP; vedasi l'esempio di massima sopra riportato).

A questo punto, avviando OpenVPN GUI su entrambe le macchine remote e cliccando su Connect, l'icona della traybar dovrebbe visualizzare due computer di colore verde.
Il colore giallo viene mostrato ogniqualvolta OpenVPN tenti di stabilire una connessione.


Cliccando con il tasto destro sull'icona di OpenVPN GUI nella traybar quindi selezionando Show Status, si otterranno maggiori informazioni sulla connessione VPN appena avviata.

E' possibile "testare" il corretto funzionamento del "tunnel" effettuando, ad esempio, un semplice ping dal prompt dei comandi. Esempio: ping 10.3.0.2 dall'host A verso il computer B.


  1. Avatar
    PaolaM
    07/05/2013 14:16:24
    Ho la ncessita di utilizzare un solo certificato client per molti client nella mia rete VPN fatta con openvpn. E' possibile innanzitutto? Come configurare openvpn per fare cio'? Saluti
  2. Avatar
    magik82
    26/11/2010 18:41:44
    ciao ho un problema devo attivare in automatico il login sulle macchine in remoto da dos sono riuscito ad avviare la openvpn solo che non riesco a passare l'user e la pas che io ho impostato come mai? che option va utilizzata ho dato cosi la riga di comando openvpn --config C:\xxxx\xxx.ovpn --ca C:\xxx\xxx\cacert.cer mi aiuteresti a completarla passando anche user e pass in modo che sia una login automatica al pc client? grazie 1000 in anticipo
  3. Avatar
    J&K
    12/08/2010 17:17:49
    Ho provato a installare openvpn ma non sono riuscito a far funzionare il client dietro un proxy (il server era funzionante). Non credo sia una funzione supportata, qualcuno sa darmi conferma di questo? grazie
  4. Avatar
    iOnda
    28/07/2010 14:00:26
    Beh se internet va decentemente anche il collegamento VPN andrà decentemente visto che usa lo stesso mezzo. Per le performance del software devi informarti con il produttore del traffico che genera tra client e server, e poi verifichi la latenza tra una rete e l'altra. Se la latenza è accettabile e il traffico generato minimo direi che non hai problemi. Con Hamachi avevi delle prestazioni deludenti perchè passi comunque per la loro infrastruttura. Andrea
  5. Avatar
    Stefano S.
    20/07/2010 12:02:50
    Con Hamachi le prestazioni sono dignitose, se hai riscontrato un risultato pessimo questo può essere dovuto più probabilmente ad una velocità dell'Adsl non molto elevata in quel momento. Assumendo che il database fosse mysql, nel caso il database fosse di tipo diverso e con architettura non client/server allora dipende da quello.
  6. Avatar
    juk
    17/07/2010 17:52:07
    x MauroGilles, sì, pi possono configurare + Utenti contemporanei e anche far comunicare attraverso la VPN questi ultimi... bye juk
  7. Avatar
    Freno
    16/07/2010 19:59:43
    Il gestionale (del quale purtroppo non ricordo il nome) è un prodotto che è stato pagato caro e amaro... quindi non credo proprio che poggi su access.. ma molto probabilmente su mysql... Cmq appena avrò notizie certe le riferirò. La banda è quella normalissima di alice flat a 20 mega NOMINALI! Diciamo che internet viaggia più che decentemente... Io provai (qualche mese fa) con la rete virtuale di Hamachi ma il risultato fu a dir poco pessimo!
  8. Avatar
    MauroGilles
    16/07/2010 17:39:10
    E' possibile collegare ad un "Server" più client remoti contemporaneamente?? Io ho un Server con un database a cui dovrebbero accedere diversi uffici anche contemporaneamente. Attendo fiducioso. Grazie
  9. Avatar
    Stefano S.
    16/07/2010 09:53:58
    Se utilizzi un database di tipo client/server, come ad esempio Sql Server, nessun problema. Se invece utilizzi un database tradizionale condiviso, ad esempio Access, la soluzione non è praticabile per ragioni di prestazioni e di affidabilità.
  10. Avatar
    Michele Nasi
    16/07/2010 08:50:28
    Le prestazioni dipendono essenzialmente dall'ampiezza di banda disponibile e dalle connessioni utilizzate dai sistemi che partcipano alla VPN. L'interfaccia virtuale di OpenVPN ha ben poco impatto sulla latenza. Nel tuo caso bisogna vedere in che modo si comporta il gestionale e, soprattutto, verificare in che modo interagisce con i suoi database. Se impiega, ad esempio, una base dati SQL Server o MySQL non dovrebbero esserci problemi.
OpenVPN: la guida passo-passo per creare una rete virtuale privata e sicura - IlSoftware.it