Come impostare un server OpenVPN su Ubuntu 16.04

Come impostare un server OpenVPN su Ubuntu 16.04
4 maggio 2016 VPN Ubuntu Ubuntu 16.04

Introduzione

Volete accedere ad internet in modo sicuro dallo smartphone o dal portatile quando si è connessi ad una rete non sicura, come il Wi-Fi di un albergo o di un internet caffè? Una rete privata virtuale (VPN) permette di navigare su reti non attendibili in forma privata e sicura come se si fosse su una rete privata. Il traffico esce dal server VPN e continua il suo viaggio verso la sua destinazione.

In combinazione con le connessioni HTTPS tutto ciò consente di proteggere il login wireless e le connessioni. È possibile aggirare le restrizioni geografiche e la censura e proteggere, dalla rete non affidabile, la vostra posizione e tutto il traffico HTTP non crittografato.

OpenVPN è una soluzione per VPN basata su Secure Socket Layer (SSL) completa ed open source che si adatta ad una vasta gamma di configurazioni. In questo tutorial imposteremo un server OpenVPN su una Droplet [la VPS di Digital Ocean, NdT] e quindi ne configureremo  l’accesso da Windows, OS X, iOS e Android. Questo tutorial cercherà di mantenere più semplici possibili le modalità di installazione e della configurazione per questo genere di setup.

Prerequisiti

Per poter completare questo tutorial è necessario l’accesso ad un server Ubuntu 16.04.

Prima di iniziare questa guida sarà necessario configurare un utente non root con i privilegi sudo. È possibile seguire la guida alla configurazione iniziale del server Ubuntu 16.04 per creare un utente con le appropriate autorizzazioni.

Quando siete pronti per iniziare, accedete al server Ubuntu come utente sudo e continuate a leggere qui sotto.

Fase 1: Installare OpenVPN

Per cominciare, installeremo OpenVPN sul nostro server. OpenVPN è disponibile nei repository di default di Ubuntu in modo che possiate usare apt per l’installazione. Ci sarà anche l’installazione del pacchetto easy-rsa che contribuirà ad impostare una CA (autorità di certificazione) interna per poterla usare con la nostra VPN.

Per aggiornare l’indice dei pacchetti del server ed installare i pacchetti necessari digitate:

$ sudo apt-get update
$ sudo apt-get install openvpn easy-rsa

Ora il software che occorre è sul server, pronto per essere configurato.

Fase 2: Impostare la directory CA

OpenVPN è una VPN TLS/SSL. Ciò significa che utilizza certificati per crittografare il traffico tra il server ed il client. Al fine di rilasciare certificati affidabili, avremo bisogno di impostare la nostra semplice autorità di certificazione (CA).

Per cominciare, possiamo copiare la directory dei template easy-rsa nella nostra home directory con il comando make-cadir:

$ make-cadir ~/openvpn-ca

Per cominciare a configurare la CA spostatevi nella directory appena creata:

$ cd ~/openvpn-ca

Fase 3: Configurare le variabili CA

Per configurare i valori che verranno usati dalla nostra CA, abbiamo bisogno di modificare il file vars all’interno della directory. Aprite il file nel vostro editor di testo:

$ nano vars

Al suo interno troverete alcune variabili che possono essere modificate per determinare in che modo verranno creati i certificati. Ci dovremo occupare solo di alcune di queste variabili.

Verso la fine del file troverete le impostazioni che stabiliranno i valori predefiniti dei campi per nuovi certificati. Dovrebbero essere simili a quanto segue:

~/openvpn-ca/vars

...
export KEY_COUNTRY="US"
export KEY_PROVINCE="CA"
export KEY_CITY="SanFrancisco"
export KEY_ORG="Fort-Funston"
export KEY_EMAIL="me@myhost.mydomain"
export KEY_OU="MyOrganizationalUnit"

Modificate i valori in rosso con quello che preferite, ma non lasciateli vuoti:

~/openvpn-ca/vars

...
export KEY_COUNTRY="US"
export KEY_PROVINCE="NY"
export KEY_CITY="New York City"
export KEY_ORG="DigitalOcean"
export KEY_EMAIL="admin@example.com"
export KEY_OU="Community"

Dato che abbiamo aperto il file, dovremo anche modificare il valore KEY_NAME appena al di sotto di questa sezione, che popola il campo in oggetto. Per farla semplice, in questa guida lo chiameremo server:

~/openvpns-ca/vars

export KEY_NAME=" server "

Una volta terminato, salvate e chiudete il file.

Fase 4: Costruire l’autorità di certificazione

Ora possiamo usare le variabili che abbiamo impostato e l’utilità easy-rsa per costruire la nostra autorità di certificazione.

Assicuratevi di essere nella vostra directory CA e quindi usate source sul file vars appena modificato:

$ cd ~/openvpn-ca
$ source vars

Se source è stato usato correttamente, dovreste vedere ciò che segue:

Output

NOTE: If you run ./clean-all, I will be doing a rm -rf on /home/sammy/openvpn-ca/keys

Assicuratevi di stare operando in un ambiente in cui non si sono state precedenti operazioni, digitando:

$ ./clean-all

Ora siamo in grado di costruire la nostra CA di base digitando:

$ ./build-ca

Questo avvierà il processo di creazione della chiave della autorità di certificazione di base ed il certificato. Dal momento che abbiamo modificato il file vars, tutti i valori dovrebbero venire riempiti automaticamente. Basta premere INVIO durante i prompt per confermare le selezioni:

Output

Generating a 2048 bit RSA private key
..........................................................................................+++
...............................+++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [US]:
State or Province Name (full name) [NY]:
Locality Name (eg, city) [New York City]:
Organization Name (eg, company) [DigitalOcean]:
Organizational Unit Name (eg, section) [Community]:
Common Name (eg, your name or your server's hostname) [DigitalOcean CA]:
Name [server]:
Email Address [admin@email.com]:

Ora abbiamo una CA che può essere utilizzata per creare il resto dei file di cui abbiamo bisogno.

Fase 5: Creare il certificato del server, la chiave ed i file per la cifratura

Ora genereremo il certificato del server, la coppia di chiavi ed alcuni file aggiuntivi utilizzati durante il processo di crittografia.

Iniziamo con la generazione del certificato del server OpenVPN e la coppia di chiavi. Possiamo farlo digitando:

$ ./build-key-server server

Ancora una volta, i prompt avranno i valori di default in base all’argomento che abbiamo appena impostato ( server ) ed al contenuto del nostro file vars su cui abbiamo applicato source.

Accettate pure i valori predefiniti premendo il tasto INVIO. Per questa configurazione Non inserite una challenge password. Verso la fine, si dovrà rispondere Y a due domande per firmare e fare il commit del certificato:

Output

. . .

Certificate is to be certified until May  1 17:51:16 2026 GMT (3650 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated

Successivamente, genereremo un paio di altri elementi. Siamo in grado di generare una chiave Diffie-Hellman forte, da utilizzare durante lo scambio di chiavi, digitando:

$ ./build-dh

Ciò potrebbe richiedere alcuni minuti.

In seguito, siamo in grado di generare una firma HMAC per rafforzare la capacità di verifica dell’integrità TLS del server:

$ openvpn --genkey --secret keys/ta.key

Fase 6: Generare un certificato per il client ed una coppia di chiavi

Siamo dunque in grado di generare un certificato per il client ed una coppia di chiavi. Anche se questo può essere fatto sulla macchina client e poi essere firmato dal server/CA per motivi di sicurezza, in questa guida verrà generata la chiave firmata sul server per ragioni di semplicità.

In questa guida verrà generata una chiave/certificato per un singolo client ma, se si dispone di più di un client, è possibile ripetere questo processo tutte le volte che vorrete. Passate un unico valore allo script per ogni client.

Dato che si può tornare a questa fase in un secondo momento, faremo rifare il source del file  vars. Useremo client1 come valore per il nostro primo certificato/coppia di chiavi di questa guida:

$ cd ~/openvpn-ca
$ source vars
$ ./build-key client1

Anche in questo caso, i valori di default dovrebbero essere compilati in modo da poter semplicemente premere INVIO per continuare. Lasciate la challenge password vuota e fate in modo di premere y ai prompt che chiedono se firmare e fare il commit del certificato.

Fase 7: Configurare il servizio OpenVPN

Possiamo quindi iniziare la configurazione del servizio OpenVPN utilizzando le credenziali ed i file che abbiamo generato.

Copiare il file nella directory OpenVPN

Per iniziare, abbiamo bisogno di copiare i file di cui abbiamo bisogno nella directory di configurazione /etc/openvpn.

Possiamo cominciare con tutti i file che abbiamo appena generato. Quando sono stati creati, sono stati collocati all’interno della directory ~/openvpn-ca/keys. Dobbiamo spostare il nostro certificato CA e la chiave, il nostro certificato del server e la chiave, la firma HMAC ed il file Diffie-Hellman:

$ ~/openvpn-ca/keys
$ sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /etc/openvpn

Abbiamo dunque bisogno di copiare e decomprimere un esempio di file di configurazione OpenVPN nella directory di configurazione, di modo che possiamo utilizzarlo come base per il nostro setup:

$ gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf

Modificare la configurazione di OpenVPN

Ora che i nostri file sono a posto, possiamo modificare il file di configurazione del server:

$ sudo nano /etc/openvpn/server.conf

Per prima cosa rimuovete il commento ad un paio di direttive che configureranno le macchine client al fine di reindirizzare tutto il traffico web attraverso la VPN. Cercate la sezione redirect-gateway e, per decommentarla, rimuovete il punto e virgola “;” dall’inizio della linea redirect-gateway:

/etc/openvpn/server.conf

push "redirect-gateway def1 bypass-dhcp"

Proprio sotto quest’ultima trovate la sezione dhcp-option. Anche in questo caso, per decommentarle rimuovete il “;” davanti ad entrambe le linee:

/etc/openvpn/server.conf

push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"

Quindi, trovate la sezione HMAC cercando la direttiva tls-auth. Rimuovete il “;” per decommentare la linea tls-auth. Sotto a questa, aggiungete il parametro key-direction impostato a “0”:

/etc/openvpn/server.conf

tls-auth ta.key 0 # This file is secret
key-direction 0

Infine, trovate le impostazioni user e group e, per decommentare quelle linee, rimuovete il “;” all’inizio:

/etc/openvpn/server.conf

user nobody
group nogroup

Una volta terminato, salvate e chiudete il file.

Fase 8: Modificare la configurazione del server di rete

Abbiamo dunque bisogno di modificare alcuni aspetti del networking del server in modo che OpenVPN possa inoltrare il traffico correttamente.

Consentire il forward dell’IP

In primo luogo, abbiamo bisogno di consentire al server di permettere il forward del traffico. Questo è essenziale per la funzionalità che dovrà offrire il nostro server VPN.

Siamo in grado di modificare questa configurazione cambiando il file /etc/sysctl.conf:

$ sudo nano /etc/sysctl.conf

Al suo interno, cercate la riga che contiene net.ipv4.ip_forward. Rimuovete il carattere “#” dall’inizio della riga per decommentare quella configurazione:

/etc/sysctl.conf

net.ipv4.ip_forward=1

Salvate e chiudete il file quando avete finito.

Per leggere il file e modificarne i valori per la sessione corrente, digitate:

$ sudo sysctl -p

Modificare le regole UFW per mascherare le connessioni del client

Se avete seguito la guida all’installazione iniziale del server Ubuntu 16.04 nei prerequisiti, il firewall UFW dovrebbe essere a posto. Indipendentemente dal fatto che si utilizza il firewall per bloccare il traffico indesiderato (che dovreste fare praticamente sempre), in questa guida abbiamo bisogno del firewall per manipolare una parte del traffico che entra nel server. Abbiamo bisogno di modificare il file delle regole per impostare il mascheramento, un concetto iptables che fornisce un NAT dinamico “on-the-fly” per inoltrare correttamente le connessioni del client.

Aprite il file /etc/ufw/before.rules per aggiungere la relativa configurazione:

$ sudo nano /etc/ufw/before.rules

Questo file gestisce la configurazione che dovrebbe essere posta in essere prima che vengano caricate le regole UFW convenzionali. Verso la parte superiore del file aggiungete le linee evidenziate qui sotto. Ciò imposterà il criterio predefinito per la chain POSTROUTING nella nat table e farà il masquerading di tutto il traffico proveniente dalla VPN:

/etc/ufw/before.rules

#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
#   ufw-before-input
#   ufw-before-output
#   ufw-before-forward
#

# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0] 
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES

# Don't delete these required lines, otherwise there will be errors
*filter
. . .

Nelle righe qui sopra, potrebbe essere necessario modificare la linea -A POSTROUTING per far corrispondere l’interfaccia di rete pubblica. Per trovare l’interfaccia pubblica, tornate alla riga di comando e digitate:

$ ip route | grep default

L’interfaccia pubblica deve seguire la parola “dev”. Ad esempio, questo risultato mostra l’interfaccia denominata wlp11s0, che viene evidenziata:

Output

default via 192.168.1.1 dev wlp11s0  proto static  metric 600

Usate i risultati che avete trovato per modificare la regola -A POSTROUTING per cambiare l’interfaccia da abbinare al vostro server:

/etc/ufw/before.rules

#
# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
#   ufw-before-input
#   ufw-before-output
#   ufw-before-forward
#

# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o wlp11s0 -j MASQUERADE
COMMIT
# END OPENVPN RULES

# Don't delete these required lines, otherwise there will be errors
*filter
. . .

Quando avete finito salvate e chiudete il file.

Abbiamo anche bisogno di dire ad UFW di consentire, di default, il forward dei pacchetti. Per farlo aprite il file /etc/default/ufw:

$ sudo nano /etc/default/ufw

Al suo interno trovate la direttiva DEFAULT_FORWARD_POLICY. Modificate il valore da DROP ad ACCEPT :

/etc/default/ufw

DEFAULT_FORWARD_POLICY="ACCEPT"

Quando avete finito salvate e chiudete il file.

Aprire la porta OpenVPN e rendere attive le modifiche

Successivamente, dobbiamo regolare il firewall stesso per consentire il traffico UDP sulla porta 1194:

$ sudo ufw allow 1194/udp

Ora possiamo disattivare e riattivare UFW per caricare i cambiamenti da tutti i file che abbiamo modificato:

$ sudo ufw disable
$ sudo ufw enable

Il nostro server è ora configurato per gestire correttamente il traffico OpenVPN.

Fase 9: Avviare ed abilitare il servizio OpenVPN

Siamo finalmente pronti per avviare il servizio OpenVPN sul nostro server. Possiamo farlo utilizzando systemd.

Abbiamo bisogno di avviare il server OpenVPN specificando il nome del nostro file di configurazione come una variabile dopo il nome del file unità di systemd. Il nostro file di configurazione per il server è chiamato /etc/openvpn/server.conf, dovremo quindi aggiungere @server alla fine del nostro file unità al momento della chiamata:

$ sudo systemctl start openvpn@server

Facciamo un doppio controllo che il servizio sia stato avviato correttamente digitando:

$ sudo systemctl status openvpn@server

Se tutto è andato bene, l’output dovrebbe essere qualcosa che assomiglia a questo:

Output

● openvpn@server.service - OpenVPN connection to server
   Loaded: loaded (/lib/systemd/system/openvpn@.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2016-05-03 15:30:05 EDT; 47s ago
     Docs: man:openvpn(8)
           https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage
           https://community.openvpn.net/openvpn/wiki/HOWTO
  Process: 5852 ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/%i.conf --writepid /run/openvpn/%i.pid (code=exited, sta
 Main PID: 5856 (openvpn)
    Tasks: 1 (limit: 512)
   CGroup: /system.slice/system-openvpn.slice/openvpn@server.service
           └─5856 /usr/sbin/openvpn --daemon ovpn-server --status /run/openvpn/server.status 10 --cd /etc/openvpn --script-security 2 --config /etc/openvpn/server.conf --writepid /run/openvpn/server.pid

May 03 15:30:05 openvpn2 ovpn-server[5856]: /sbin/ip addr add dev tun0 local 10.8.0.1 peer 10.8.0.2
May 03 15:30:05 openvpn2 ovpn-server[5856]: /sbin/ip route add 10.8.0.0/24 via 10.8.0.2
May 03 15:30:05 openvpn2 ovpn-server[5856]: GID set to nogroup
May 03 15:30:05 openvpn2 ovpn-server[5856]: UID set to nobody
May 03 15:30:05 openvpn2 ovpn-server[5856]: UDPv4 link local (bound): [undef]
May 03 15:30:05 openvpn2 ovpn-server[5856]: UDPv4 link remote: [undef]
May 03 15:30:05 openvpn2 ovpn-server[5856]: MULTI: multi_init called, r=256 v=256
May 03 15:30:05 openvpn2 ovpn-server[5856]: IFCONFIG POOL: base=10.8.0.4 size=62, ipv6=0
May 03 15:30:05 openvpn2 ovpn-server[5856]: IFCONFIG POOL LIST
May 03 15:30:05 openvpn2 ovpn-server[5856]: Initialization Sequence Completed

Si può anche verificare che l’interfaccia OpenVPN tun0 sia disponibile digitando:

$ ip addr show tun0

Dovreste vedere un’interfaccia che ha una configurazione:

Output

4: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 100
    link/none 
    inet 10.8.0.1 peer 10.8.0.2/32 scope global tun0
       valid_lft forever preferred_lft forever

Se tutto è andato bene, attivate il servizio in modo che parta automaticamente all’avvio:

$ sudo systemctl enable openvpn@server

Fase 10: Creare l’infrastruttura per la configurazione del client

Abbiamo dunque bisogno di creare un sistema che ci permetterà di creare facilmente i file di configurazione del client.

Creare la struttura della directory di configurazione del client

Create una directory all’interno della vostra home directory per memorizzare i file:

$ mkdir -p ~/client-configs/files

Dal momento che i nostri file di configurazione del client avranno le chiavi del client incorporate, dobbiamo limitare le autorizzazioni per le directory interne:

$ chmod 700 ~/client-configs/files

Creazione di una configurazione di base

Copiamo dunque una configurazione client di esempio nella nostra directory, da utilizzare come configurazione di base:

$ cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf

Aprite questo nuovo file nel vostro editor di testo:

$ nano ~/client-configs/base.conf

Abbiamo bisogno di fare qualche modifica al suo interno.

In primo luogo individuate la direttiva remote. Questa indica al client l’indirizzo del nostro server OpenVPN, che dovrà essere l’indirizzo IP pubblico del server OpenVPN:

~/client-configs/base.conf

. . .
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote server_IP_address 1194
. . .

Successivamente, rimuovete il commento delle direttive user e group rimuovendo il simbolo “;”:

~/client-configs/base.conf

# Downgrade privileges after initialization (non-Windows only)
user nobody
group nogroup

Trovate le direttive che configurano il ca, cert e key. Commentate queste direttive visto che aggiungeremo i certificati e le chiavi all’interno del file stesso:

~/client-configs/base.conf

# SSL/TLS parms.
# See the server config file for more
# description.  It's best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.
#ca ca.crt
#cert client.crt
#key client.key

Infine, aggiungete la direttiva key-direction da qualche parte nel file. Per poter lavorare con il server la direttiva dovrebbe essere impostata su “1”:

~/client-configs/base.conf

key-direction 1

Quando avete finito, salvate il file.

Creare uno script per la generazione della configurazione

Ora creeremo un semplice script per redigere la nostra configurazione di base con i relativi certificati, le chiavi ed i file per la crittografia. Lo script metterà la configurazione così generata nella directory ~/client-configs/files.

Create ed aprite un file chiamato make_config.sh all’interno della directory ~/client-configs:

$ nano ~/client-configs/make_config.sh

All’interno, incollate il seguente script:

~/client-configs/make_config.sh

#!/bin/bash

# First argument: Client identifier

KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf

cat ${BASE_CONFIG} \
    <(echo -e '<ca>') \
    ${KEY_DIR}/ca.crt \
    <(echo -e '</ca>\n<cert>') \
    ${KEY_DIR}/${1}.crt \
    <(echo -e '</cert>\n<key>') \
    ${KEY_DIR}/${1}.key \
    <(echo -e '</key>\n<tls-auth>') \
    ${KEY_DIR}/ta.key \
    <(echo -e '</tls-auth>') \
    > ${OUTPUT_DIR}/${1}.ovpn

Salvate e chiudete il file quando avete finito.

Rendete il file eseguibile digitando:

$ chmod 700 ~/client-configs/make_config.sh

[Fix by Hashbang] Copiate tale file eseguibile nella cartella che userete successivamente:

$ cp ~/client-configs/make_config.sh ~/client-configs/files

Fase 11: Generazione delle configurazioni del client

Ora possiamo generare facilmente i file di configurazione del client.

Se avete seguito la guida, abbiamo creato un certificato per il client ed una chiave denominati rispettivamente client1.crt e client1.key eseguendo il comando ./build-key client1 nel passaggio 6. Possiamo generare una configurazione per queste credenziali spostandoci nella nostra directory ~/client-configs ed usando lo script che abbiamo creato:

$ cd ~/client-configs/files
$ ./make_config.sh client1

Se tutto è andato bene dovremmo avere un file client1.ovpn nella directory ~/client-configs/files:

$ ls ~/client-configs/files
Output

client1.ovpn

Trasferire la configurazione nei dispositivi client

Abbiamo bisogno di trasferire il file di configurazione del client per il dispositivo in questione. Per esempio, tale dispositivo potrebbe essere il vostro computer locale o un dispositivo mobile.

Mentre l’applicazione che userete per compiere il trasferimento dipenderà dalla vostra scelta e dal sistema operativo del dispositivo, l’applicazione da utilizzare dovrà usare SFTP (SSH File Transfer Protocol) oppure SCP (Secure Copy). Ciò trasferirà i file di autenticazione della VPN del client mediante una connessione cifrata.

Ecco un esempio del comando SFTP usando il nostro esempio client1.ovpn. Questo comando può essere eseguito dal computer locale (OS X o Linux). Il comando mette il file .ovpn nella home directory:

local$ sftp sammy@openvpn_server_ip:client-configs/files/client1.ovpn ~/

Qui di seguito troverete diversi strumenti e tutorial per trasferire in modo sicuro i file dal server ad un computer locale:

Fase 12: Installare la configurazione del client

Vedremo ora come installare un profilo VPN del client su Windows, OS X, iOS e Android. Nessuna di queste istruzioni per i diversi client è dipendente una dall’altra: saltate pure a quella che fa al caso vostro.

La connessione OpenVPN avrà un nome a prescindere da come avete denominato il file .ovpn. Nel nostro esempio ciò significa che la connessione sarà chiamata client1.ovpn per il primo file del client che abbiamo generato.

Windows

Installazione

L’applicazione client di OpenVPN per Windows può essere trovata sulla pagina di download di OpenVPN. Scegliete la versione di installazione appropriata per la vostra versione di Windows.

Nota

Per l’installazione, OpenVPN ha bisogno dei privilegi di amministratore.

Dopo l’installazione di OpenVPN copiate il file .ovpn in:

C:\Program Files\OpenVPN\config

Quando si avvia OpenVPN, questi vedrà automaticamente il profilo e lo renderà disponibile.

OpenVPN deve essere eseguito come amministratore ogni volta che viene utilizzato, anche da parte di account amministrativi. Per far questo senza dover fare clic con il tasto destro e selezionare Esegui come amministratore ogni volta che si utilizza la VPN, è possibile preimpostarlo, ma ciò deve essere fatto da un account amministrativo. Questo significa anche che per usare OpenVPN, gli utenti standard dovranno inserire la password di amministratore. D’altra parte gli utenti standard non possono connettersi correttamente al server a meno che l’applicazione OpenVPN sul client non abbia i diritti di amministratore, quindi sono necessari i privilegi amministrativi.

Per impostare l’esecuzione come amministratore dell’applicazione OpenVPN fate clic con il tasto destro sulla sua icona di scelta rapida e selezionate Proprietà. Nella parte inferiore della scheda Compatibilità fate clic sul pulsante Modifica impostazioni per tutti gli utenti. Nella nuova finestra selezionate Esegui questo programma come amministratore.

Connessione

Ogni volta che si avvia la GUI di OpenVPN, Windows chiederà se si desidera consentire al programma di apportare modifiche al computer. Fate clic su Sì. L’avvio del client OpenVPN mette solo l’icona nella barra delle applicazioni di modo che la VPN possa essere connessa e disconnessa a seconda delle necessità; di fatto non effettua la connessione VPN.

Una volta che OpenVPN è avviato, per avviare una connessione andate nella barra delle applicazioni e cliccate con il tasto destro del mouse sull’icona di OpenVPN. Questo apre il menu di scelta rapida. Selezionate client1 nella parte superiore del menu (questo è il nostro profilo client1.ovpn) e scegliete Connetti.

Si aprirà una finestra di stato mostrando l’output del log durante la connessione e, una volta che il client è connesso, verrà visualizzato un messaggio.

Disconnettersi dalla VPN funziona allo stesso modo: andate nella barra delle applicazioni, fate clic con il tastro destro sull’icona di OpenVPN, selezionate il profilo del client e fate clic su Disconnetti.

OS X

Installazione

Tunnelblick è un client OpenVPN gratuito ed open source per Mac OS X. È possibile scaricare la disk image più recente dalla pagina di Download Tunnelblick . Fate doppio clic sul file .dmg che avete scaricato e seguite le istruzioni di installazione.

Verso la fine del processo di installazione, Tunnelblick vi chiederà se avete dei file di configurazione. È meglio rispondere No e lasciare finire Tunnelblick. Aprite una finestra del Finder e fate doppio clic su client1.ovpn. Tunnelblick installerà il profilo del client. Sono necessari i privilegi di amministratore.

Connessione

Avviate Tunnelblick facendo doppio clic su Tunnelblick nella cartella Applicazioni. Una volta che Tunnelblick è stato avviato, nella barra dei menu in alto a destra dello schermo ci sarà un’icona Tunnelblick per il controllo delle connessioni. Per avviare la connessione VPN cliccate sull’icona e poi sulla voce di menu Connetti. Selezionate la connessione client1.

iOS

Installazione

Dall’App Store di iTunes cercate ed installate OpenVPN Connect, l’applicazione ufficiale del client OpenVPN per iOS. Per trasferire la configurazione del client iOS sul dispositivo, collegatelo direttamente ad un computer.

Ora illustreremo come completare il trasferimento con iTunes. Sul computer aprite iTunes e cliccate su iPhone> Applicazioni. Scorrete verso il basso, verso la sezione Condivisione file e fate clic su OpenVPN. La finestra vuota a destra, Documenti OpenVPN, è per la condivisione dei file. Trascinate il file .ovpn nella finestra Documenti OpenVPN.

iTunes mostra il profilo VPN

Ora lanciate l’applicazione OpenVPN sul vostro iPhone. Ci sarà una notifica che è pronto per essere importato un nuovo profilo. Per importarlo, toccate il segno + di colore verde.

OpenVPN per iOS mostra nuovo profilo pronto per l'importazione

Connessione

OpenVPN ora è pronto per l’uso con il nuovo profilo. Avviate la connessione facendo slittare il pulsante Connetti in posizione On. Per la disconnessione fate slittare lo stesso tasto su Off.

Nota

L’interruttore VPN in Impostazioni non può essere utilizzato per connettersi alla rete VPN. Se si prova, si riceverà un avviso: per connettersi si dovrà usare solo l’applicazione OpenVPN.


OpenVPN per iOS collegato alla rete VPN

 Android

Installazione

Aprite il Play Store di Google. Cercate ed installate Android OpenVPN Connect, l’applicazione ufficiale del client OpenVPN per Android.

Il profilo .ovpn può essere trasferito collegando il dispositivo Android al computer tramite porta USB e copiandoci sopra il file. In alternativa, se si dispone di un lettore di schede SD, è possibile rimuovere la scheda SD del dispositivo, copiarci sopra il profilo e poi inserire di nuovo la scheda nel dispositivo Android.

Avviate l’applicazione OpenVPN e toccate il menu per importare il profilo.

Il menu di importazione di OpenVPN per Android

Poi andate alla posizione dove avete salvato il profilo (lo screenshot utilizza /sdcard/Download/) e selezionate il file. L’applicazione emetterà un avviso che il profilo è stato importato.

OpenVPN per Android sta selezionando un profilo VPN da importare

Connessione

Per la connessione è sufficiente toccare il pulsante Connetti. Vi verrà chiesto se vi fidate dell’applicazione OpenVPN. Scegliete OK per avviare la connessione. Per disconnettersi dalla rete VPN tornare all’applicazione OpenVPN e scegliete Disconnetti.

OpenVPN per Android è pronto per connettersi alla rete VPN

 

Fase 13: Testare la connessione VPN

Una volta che tutto è stato installato facciamo un semplice controllo per avere conferma che tutto funzioni correttamente. Senza avere una connessione VPN abilitata, aprite un browser ed andate su DNSLeakTest .

Il sito restituirà l’indirizzo IP assegnato dal vostro provider internet e di come questo IP apparirà al resto del mondo. Per verificare le impostazioni DNS attraverso il sito web stesso, cliccate su Extended Test che vi dirà i server DNS che state usando.

Ora connettete il client OpenVPN alla VPN della vostra Droplet ed aggiornate il browser. L’indirizzo IP della vostra VPN dovrebbe apparire completamente diverso. È così che ora apparirete al mondo. Anche in questo caso, l’Extended Test di DNSLeakTest controllerà le impostazioni DNS e confermerà che state utilizzando i DNS che sono stati forzati dalla vostra VPN.

Conclusioni

Complimenti! Ora state navigando su internet in modo sicuro e state proteggendo da spioni e censori la vostra identità, la vostra posizione ed il traffico.

Per configurare più client è sufficiente seguire i passi 6 e 11-13 per ogni dispositivo in più.

Autore: Justin Ellingwood

Traduzione dell’articolo: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-ubuntu-16-04 Copyright © 2016 DigitalOcean™ Inc.

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Un pensiero su “Come impostare un server OpenVPN su Ubuntu 16.04

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

*