COMPUTING > Virtual Private Cloud > VMware Cloud Director > Come realizzare una connessione VPN con OpenVPN su Windows Server 2019

3.10.1.1 Come realizzare una connessione VPN con OpenVPN su Windows Server 2019

Una VPN (Virtual Private Network) è una rete privata virtuale che consente di connettere tra loro, in sicurezza, due reti informatiche indipendenti esposte su internet. Tramite una VPN è possibile, dunque, da un server o PC (client) connesso in un certo punto della rete internet accedere alle risorse della rete di un altro server, creando virtualmente un collegamento di rete diretto tra i due ed in pratica facendo si che venga emulato il collegamento fisico tra i due punti della rete.

Le VPN possono essere implementate attraverso i sistemi operativi comuni, fra cui anche Windows, e un servizio come OpenVPN. Si tratta di un software open source che permette di creare un tunnel virtuale criptato basato sui protocolli TLS/SSL (Transport Layer Security/Secure Sockets Layer), utilizzando dei certificati per far transitare il traffico in modo sicuro tra il server e uno o più client.
 
In questa guida è descritta la configurazione/implementazione di una VPN utilizzando OpenVPN, su un Server ed un Client entrambi di tipo Window Server 2019. Ciò non toglie che le indicazioni fornite possano essere utilizzate in parte (quelle relative al Server o al Client) per configurazioni/implementazioni ibride (ad esempio Server Windows e Client Linux o viceversa).

Affinchè ci si possa connettere alla stessa rete, è necessario che i due o più dispositivi (client e server) connessi alla VPN abbiano accesso alla porta 1194.

Questa operazione può essere effettuata consentendo il traffico UDP su tale porta attraverso l'aggiunta di una regola al proprio firewall.
La prima operazione da compiere è scaricare l'installer di OpenVPN per Windows Server 2019 direttamente dal sito ufficiale.
 
L'installer può essere utilizzato sia lato Server che lato Client su sistema operativo Windows.

Una volta scaricato il file, aprilo e avvia la procedura di installazione. Assicurati di mettere la spunta alla voce "EasyRSA 2 Certificate Management Scripts" e poi clicca su "Next".



Prosegui con l'installazione, continuando ad andare avanti ogni volta che ti viene chiesto.
Terminata la fase preliminare di installazione di OpenVPN, bisogna generare i certificati e le chiavi per la l'accesso alla VPN.

Per prima cosa devi aprire il terminale del tuo Windows Server. Per farlo clicca su Start, digita "cmd" e clicca con il tasto destro sull'icona del Command Prompt, quindi seleziona "Run as administrator".



Recati all'interno della cartella in cui hai installato OpenVPN ed avvia lo script "init-config".
 

cd "C:\Program Files\OpenVPN\easy-rsa"
init-config

Dovresti ottenere un output simile a quello mostrato nella figura sottostante.



A questo punto bisogna apportare delle modifiche al file "vars.bat" presente nella cartella "C:\Program Files\OpenVPN\easy-rsa":
 

notepad vars.bat

Quasi alla fine del documento potrai trovare una serie di voci che iniziano con "set" e servono a impostare alcune informazioni tra le variabili d'ambiente. Modifica questi campi con le tue informazioni per la generazione del certificato.



Questo passaggio non è fondamentale poichè ti verrà comunque richiesto di inserire queste informazioni successivamente, ma impostando i valori in questo file, successivamente verranno utilizzati come parametri di default.

Terminato l'inserimento di queste informazioni, salva il file e chiudi l'editor di testo. Digita quindi i seguenti comandi per rendere effettive queste modifiche:
 

vars
clean-all

Avvia quindi la creazione del Certificato. Dal terminale (avviato come amministratore e sempre all'interno della cartella "C:\Program Files\OpenVPN\easy-rsa") digita:
 

build-ca

Se precedentemente hai già modificato il file "vars" con le tue informazioni, queste saranno già presenti tra le parentesi quadre di ciascun campo richiesto. In tal caso ti basterà premere "Invio" per selezionare tale valori come parametri di default.

Alla voce "Common name" invece bisogna attribuire un nome facile da ricordare: in questo caso si utilizzerà "OpenVPN-CA".

A conferma della buona riuscita dell'operazione di generazione del certificato, all'interno della cartella "easy-rsa\keys" verranno creati i due file "ca.crt" e "ca.key".



A questo punto bisogna creare le chiavi per il server, la cui procedura può essere avviata mediante il comando:
 

build-key-server server_name

In questo caso, alla voce "Common Name" bisogna specificare il nome generico da attribuire al server. Come visibile nella seguente immagine, nel nostro caso è stato utilizzato il nome "server".



Verso la fine della procedura ti verrà chiesto di confermare 2 volte il salvataggio dei dati così impostati. In entrambi casi digita y e premi "Invio".
Poichè in una VPN tutti i dispositivi connessi devono essere riconoscibili, anche i Client hanno bisogno di una coppia di chiavi per la comunicazione. Sempre all'interno del tuo Server, da terminale e nella cartella "C:\Program Files\OpenVPN\easy-rsa") digita:
 

build-key client_name

In questo caso, alla voce "Common Name" bisogna specificare il nome generico da attribuire al Client (come visibile in immagine in questo caso è stato utilizzato "client-desktop").

Creazione chiavi client

Adesso è necessario avviare il protocollo crittografico Diffie-Hellman tramite il quale i due interlocutori (Server e Client) possono accordarsi su quale chiave "comune" utilizzare come chiave di autenticazione al fine di riconoscersi l'un l'altro. Digita quindi:
 

build-dh

Questa operazione può durare diverso tempo, a seconda dell'hardware di cui dispone il server, e non richiede alcuna interazione da parte dell'utente.



Infine, bisogna generare la chiave "ta.key", utile per aumentare ulteriormente la sicurezza della VPN. Più precisamente bisogna definire un'autenticazione TLS che accerta l'integrità dei pacchetti transitanti sulla rete. Digita quindi:
 

"C:\Program Files\OpenVPN\bin\openvpn.exe" --genkey --secret "C:\Program Files\OpenVPN\easy-rsa\keys\ta.key"

OpenVPN fornisce già dei file di configurazione di esempio da poter utilizzare per generare la configurazione necessaria per il corretto funzionamento della VPN.

Apri Start -> All Programs -> OpenVPN -> OpenVPN Sample Configuration Files e copia il file "server.ovpn" nella cartella ""C:\Program Files\OpenVPN\easy-rsa\keys". Una volta copiato, aprilo con il Notepad:
 

notepad "C:\Program Files\OpenVPN\easy-rsa\keys\server.ovpn"

Identifica quindi le voci:
  • ca ca.crt
  • cert server.crt
  • key server.key
  • dh dh2048.pem
e sostituiscile con:
  • ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
  • cert "C:\\Program Files\\OpenVPN\\config\\server.crt"
  • key "C:\\Program Files\\OpenVPN\\config\\server.key"
  • dh "C:\\Program Files\\OpenVPN\\config\\dh2048.pem"
Effettuate queste modifiche, salva e chiudi il file.
Le modifiche da apportare al file di configurazione del Client sono molto simili a quelle effettuate per il Server.

Apri Start -> All Programs -> OpenVPN -> OpenVPN Sample Configuration Files e copia il file "client.ovpn" nella cartella ""C:\Program Files\OpenVPN\easy-rsa\keys". Una volta copiato, rinominalo attribuendogli lo stesso nome di "Common Name" utilizzato in fase di generazione della chiave (in questo caso "client-desktop") e aprilo con il Notepad.
 

notepad "C:\Program Files\OpenVPN\easy-rsa\keys\client-desktop.ovpn"

Identifica quindi le voci:
  • ca ca.crt
  • cert server.crt
  • key server.key
e sostituiscile con:
  • ca "C:\\Program Files\\OpenVPN\\config\\ca.crt"
  • cert "C:\\Program Files\\OpenVPN\\config\\client-desktop.crt"
  • key "C:\\Program Files\\OpenVPN\\config\\client-desktop.key"
Identifica inoltre la voce remote my-server-1 1194 e sostituisci a "my-server-1" l'indirizzo IP del tuo Server. Effettuate queste modifiche, salva e chiudi il file.

A questo punto devi copiare i seguenti file:
  • ca.crt
  • ta.key
  • dh2048.pem
  • server.crt
  • server.key
  • server.ovpn
All'interno della cartella "C:\Program Files\OpenVPN\config", operazione eseguibile direttamente con lo strumento robocopy.
 

robocopy "C:\Program Files\OpenVPN\easy-rsa\keys\ " "C:\Program Files\OpenVPN\config\ " ca.crt ta.key dh2048.pem server.crt server.key server.ovpn

Non ti resta che copiare infine i seguenti file:
  • ca.crt
  • ta.key
  • client-desktop.crt
  • client-desktop.key
  • client-desktop.ovpn
All'interno del tuo Client nella cartella "C:\Program Files\OpenVPN\config\".

N.B. Anche sul Client devi aver installato la GUI di OpenVPN, come spiegato all'inizio della guida per il Server.

A questo punto, sia sul Server che sul Client, clicca su Start -> All Programs -> OpenVPN -> OpenVPN GUI.

L'interfaccia grafica di OpenVPN si aprirà nella tray system, in basso a destra. Clicca sulla rispettiva icona di OpenVPN con il tasto destro, quindi fai clic su "Connect".

Quando l'icona diventerà verde, significa che la connessione alla rete privata virtuale è stata stabilita correttamente e quindi i due dispositivi, client e server, staranno comunicando attraverso la VPN appena creata.