Impostare un server OpenVPN con Ubuntu

OpenVPN è un’applicazione open source molto usata per creare reti private tramite connessioni pubbliche e non criptate. OpenVPN crea un tunnel criptato con SSL tra due reti attraverso internet. Tutti i dispositivi connessi ad una rete virtuale privata si comportano come se fossero connessi ad una rete locale. I pacchetti inviati attraverso il tunnel VPN sono criptati con un algortimo AES a 256 bit che rende impossibile il furto dei dati.

In questo articolo vedremo come installare OpenVPN su Ubuntu. Sebbene sia stato usato Ubuntu 16.04, la procedura è valida anche per altre distribuzioni Linux. Particolare attenzione deve eperò essere posta a CentOS, nel quale cambiano alcuni parametri.

Requisiti

Per installare OpenVPN, non ci sono particolari requisiti hardware. L’unica cosa di cui si necessita è un Cloud Server o VPS sul quale sia installato Ubuntu 16.04. Va bene anche il proprio pc. In ogni caso servono i privilegi di root. Se non si è loggati come utente con privilegi di root, dare il comando sudo -i per accedere con utente root oppure usare il comando sudo antemposo ad ogni comando.

Preparazione del sistema

Aggiornare il sistema e i pacchetti già installati con il seguente comando.

Ora installare i pacchetti necessari ad impostare il server OpenVPN. OpenVPN è disponibile nei repository ufficiali di Ubuntu. Il pacchetto easy-rsa viene usato per la generazione di un certificato SSL/TLS che proteggerà la connessione VPN.

Configurazione server OpenVPN

La configurazione del server OpenVPN è abbastanza tediosa, in quanto bisogna creare dei certificati, modificare dei file di testo che contengono la configurazione. Bisogna poi fare un merge tra file di configurazione e certificati per il client.

La configurazione in tal senso può essere trovata a questi indirizzi: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04 oppure https://www.0x90.it/come-impostare-un-server-openvpn-su-ubuntu-16-04/

Qui si preferisce configurare il server con uno script sempre aggiornato e reperibile all’indirizzo https://github.com/Nyr/openvpn-install. Basta semplicemente dare il comando con privilegi di root

Avviato lo script basta seguire le istruzioni su schermo e verrà generato il file con estensione ovpn che dovrà essere usato sul client.

Lo script dovrebbe automaticamente aggiornare la tabella NAT per permettere ai dispositivi connessi tramite VPN di accedere ad internet. Qualora sia sorto un problema, supponendo che eth0 sia la scheda di rete del server e tun0 il dispositivo VPN, bisognerà dare il seguente comando:

Configurazione client OpenVPN

Semplicemente bisogna installare OpenVPN sul client, avviarlo e selezionare come profilo il file ovpn generato nello step precedente.

Conclusione

Cosi facendo si è creato un tunnel SSH tra due reti. Quando si navigherà in internet, i client avrà l’inidirizzo IP pubblico del server e non della propria connessione internet. Se il client fosse sotto firewall, è utile considerare di creare la connessione VPN su protocollo TCP e porta 443.