make your own vpn

Per quanto riguarda i servizi VPN gli utenti di Internet hanno tantissime opzioni a disposizione, tuttavia molte di queste sono a pagamento, poco sicure oppure molto lente. Fortunatamente, però, esistono delle alternative. Richiedono una maggiore conoscenza tecnica, ma come si suol dire “chi fa da sé fa per tre”.

Per iniziare

Amazon Web Services offre spazio gratuito, per un anno, su un server virtuale a patto che si utilizzi una quantità di spazio, tempo e dati inferiore ad una soglia predefinita. Anche se si supera il limite, tuttavia, il costo di gestione di un’immagine del server su Amazon’s Elastic Compute Cloud è quasi sempre inferiore al costo che si pagherebbe per l’abbonamento ad una VPN.

In questo articolo illustreremo due modi diversi di utilizzare Amazon’s Elastic Cloud service, anche chiamato EC2, per deviare la connessione attraverso una posizione privata di vostra scelta: ovvero il Tunneling SSH e OpenVPN. Entrambe le opzioni hanno punti di forza e di debolezza, per cui potrete usare quella che si adatta meglio alle vostre esigenze. In entrambi i casi è necessario avere:

  • Un account Amazon Web Services (occorre inoltre avere una carta di credito, ma gli addebiti saranno pari a zero se usate il servizio in maniera prudente).
  • PuTTy se utilizzate Windows. Un’altra possibilità è quella di utilizzare OpenSSH su Cygwin, ma è alquanto complicata. I computer Linux e Mac includono già prompt SSH. Vi occorrerà anche PuTTyGen, programma gemello di PuTTy per la generazione delle chiavi.
  • WinSCP, o un client FTP equivalente, per trasferire i file dal computer all’istanza EC2.
  • Una conoscenza di base dei comandi Unix e un’infarinatura su come funzionano i server e i client è inoltre estremamente utile, per poter essere in grado di risolvere eventuali problemi che potrebbero verificarsi.
  • OpenVPN GUI, installato sul vostro pc nella posizione preimpostata, con le opzioni predefinite.

Accedete al vostro account Amazon Web Service e aprite il pannello di controllo dell’EC2.
aws vpn update 1

In alto a destra potete scegliere la località geografica in cui configurerete la VPN, successivamente cliccate su “Launch Instance” (Avvia istanza).

ec2 vpn 1

Scegliete una qualunque AMI Linux elencata come “free tier eligible” (disponibile per la prova gratuita). Al momento di scrivere questo articolo, ciò equivale ad una Amazon Linux AMI. Fatto ciò, potete passare al passaggio successivo.

ec2 vpn 2

Qui scegliete un’istanza t2.micro che sia anch’essa “free tier eligible”. E cliccate su “Review and Launch”(Rivedi e avvia).

ec2 vpn 3

Nella pagina successiva cliccate su Edit Security Groups (Modifica gruppi di sicurezza).

Dovete modificare il gruppo di sicurezza in modo da abilitare solo il traffico che dal computer accede alla VPN o al proxy. Dovreste già avere una regola attiva per connettervi al server tramite SSH, che useremo in seguito. Dobbiamo aggiungerne un’altra per abilitare le connessioni OpenVPN, che utilizzano come impostazione predefinita la porta 1194. Per semplificare le cose potete cliccare sul pulsante Add Rule (Aggiungi regola) che si trova nella scheda Inbound (In entrata). Impostate Type (Tipo) su Custom UDPPort Range (Intervallo porta) su 1194, e Source (Fonte) su Anywhere (Qualsiasi).

EC2 add security group rule buttonCliccate su Save (Salva) per salvare.

EC2 security group anywhere to port 1194

Cliccate su “Review and Launch” e poi su “Launch” nella pagina successiva.

A questo punto bisogna creare una coppia di chiavi che funzioneranno come una sorta di password che verrà utilizzata per il collegamento al server che state creando. Selezionate “Create a new key pair” (Crea una nuova coppia di chiavi) dal menu a tendina e assegnate un nome a piacere. Cliccate sul relativo pulsante per effettuarne il download. A questo punto salvatele in un posto sicuro.

ec2 vpn 5

SSH Tunneling

Per iniziare ci occuperemo solo di instradare tutto il traffico di rete attraverso l’istanza che abbiamo appena creato, utilizzando il tunneling SSH e un proxy. Si tratta di un metodo veloce e poco ortodosso per oltrepassare un firewall o un blocco relativo ad un’area geografica. Non equivale ad avere una VPN, infatti è meglio utilizzarlo per attività di rete piuttosto snelle e non sempre funziona, ma è molto più semplice da configurare. Questo tutorial vi illustrerà esattamente come interagire con la vostra istanza utilizzando Windows. Per farlo, dovete innanzitutto scaricare PuTTy e PuTTygen.

ec2 vpn 7

PuTTy e PuTTygen sono semplicemente due file eseguibili che non richiedono installazione. Aprite PuTTygen e cliccate su “Load” (Carica). Selezionate il file con la coppia di chiavi con estensione .pem che avete scaricato in precedenza e caricatelo su PuTTygen. Per visualizzare il file con estensione .pem dovete prima selezionare l’opzione che consente di vedere tutti i tipi di file. Cliccate su “Save Private Key” (Salva chiave privata). Il nome del file deve essere identico a quello della chiave .pem; se volete potete anche creare una frase d’accesso per la chiave privata.

ec2 vpn 6

A questo punto chiudete PuTTygen e aprite PuTTy, copiate l’indirizzo IP dell’istanza tramite la console EC2 e inseritelo in PuTTy. Scegliete un nome per questa sessione e cliccate su “Save” per salvare.

ec2 vpn 8
Nel menu di sinistra selezionate “Auth”, che si trova nel sottomenu SSH. Cliccate poi su “Browse” in basso per navigare tra i file e infine selezionate il percorso in cui si trovano le chiavi private che avete appena generato.

ec2 vpn 9

Sempre nel menu a sinistra andate su “Tunnels”, aggiungete la porta 8080 con le opzioni “Auto” e “Dynamic” selezionate. Tornate alla pagina “Session” e cliccate nuovamente su “Save” in modo da non dover ripetere ogni volta tutta questa procedura.

A questo punto cliccate su “Open”, vi apparirà una finestra che richiede un nome utente. Ci sono delle differenze in base al tipo di server che avete scelto all’inizio. Per Amazon Linux AMI basta inserire “ec2-user”.

ec2 vpn 10

Fatto ciò siete collegati al server, ma dovete ancora reindirizzare tutto il traffico di rete attraverso di esso. Se utilizzate Firefox potete farlo nella pagina delle impostazioni. Se usate Chrome, invece, dovete scaricare l’estensione Proxy Switchy. Se preferite creare una VPN completa invece di un semplice proxy passate direttamente alla sezione successiva.

Su Firefox:

  • Andate su Tools > Options > Advanced > Network > Connection > Settings > Manual proxy configuration (Strumenti > Opzioni > Avanzate > Rete > Connessione > Impostazioni > Configurazione manuale dei proxy).
  • Nel campo Host SOCKS digitate 127.0.0.1 e impostate la porta su 8080 (o sul numero della porta che avete selezionato su PuTTy).
  • Cliccate su OK per salvare.

Se utilizzate Chrome Proxy Switchy invece:

  • Una volta installata l’estensione apparirà una pagina di configurazione, in alternativa potete cliccare sull’icona nella parte in alto a destra di Chrome e poi su “Options”(Opzioni).
  • Scegliete un nome a piacere per il profilo. Su “Manual Configuration”(Configurazione manuale) impostate l’host SOCKS su 127.0.0.1 e la porta su 8080 (o sul numero della porta che avete selezionato su PuTTy). Lasciate vuoti tutti gli altri campi.
  • Cliccate su “Save” e poi nuovamente sull’icona per selezionare il profilo del proxy.

ec2 vpn 11

Il gioco è fatto! Il traffico del browser viene ora instradato attraverso l’istanza EC2. Questo metodo funziona bene per la normale navigazione su Internet, tuttavia su alcuni siti potrebbe verificarsi qualche problema. Inoltre, ad eccezione del web browser, tutte le altre applicazioni continuano ad accedere a Internet tramite una connessione diretta. Per maggiori dettagli su come creare una VPN completa che reindirizzi tutto il traffico di rete potete consultare la sezione successiva.

Installare OpenVPN sul server

OpenVPN è uno strumento gratuito open source che può anche essere utilizzato per creare una VPN completa attraverso un EC2 Amazon. Questo significa che tutto il traffico di rete passa attraverso quel server, non solamente il traffico prodotto dal browser come nel caso del proxy che abbiamo appena visto. Programmi quali Steam e Spotify ad esempio, funzionano meglio usando questo metodo.

ec2 vpn 12

Connettetevi alla vostra istanza EC2 utilizzando PuTTy seguendo le istruzioni che abbiamo visto prima. Dovreste avere aperto un prompt di comandi che dice Amazon Linux AMI. Eseguite i seguenti comandi (basta fare copia/incolla e poi cliccare su Invio):

sudo yum install -y openvpn
sudo modprobe iptable_nat
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo iptables -t nat -A POSTROUTING -s 10.4.0.1/2 -o eth0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

Una breve nota. Come forse avrete notato, nella schermata precedente ho erroneamente cercato di scaricare e installare OpenVPN usando il comando “apt-get” anziché utilizzare “yum”. In alcune versioni di Linux si può ancora utilizzare apt-get, per cui, se yum non funziona, potete provare ad eseguire questo comando:

sudo apt-get install -y openvpn

Mentre installate OpenVPN continueranno ad apparire varie scritte sul prompt dei comandi. Gli altri 3 comandi configurano l’IP forwarding, che è necessario per il funzionamento di una VPN.

Metodo numero 1: Configurare l’autenticazione PKI con easy-rsa (consigliato)

Nella versione originale di questo tutorial avevamo configurato OpenVPN con la crittografia statica e con un file .ovpn. Anche se tale metodo funziona, esso consente di connettere solo un dispositivo alla volta, inoltre il fatto che venga utilizzata una sola chiave lo rende meno sicuro. Per cui, consigliamo l’utilizzo di easy-rsa per configurare l’autenticazione, dato che è più sicura e consente di connettere un numero illimitato di dispositivi contemporaneamente. Se però preferite utilizzare il vecchio metodo potete passare alla relativa sezione cliccando qui.

Easy-rsa non è disponibile nella lista dei pacchetti di yum predefiniti, per cui per installarla dobbiamo abilitare il repo EPEL. Digitate i seguenti comandi nel terminale PuTTy e cliccate su Invio ogni volta che appare:

sudo yum install easy-rsa -y --enablerepo=epel
sudo cp -via /usr/share/easy-rsa/2.0 CA

Quest’ultimo comando crea una directory con tutti i file che occorrono per configurare l’autorità di certificazione.

easyrsa 0.5
Per i passi successivi occorre essere utente root. Scrivere solamente “sudo” prima del comando in questo caso non funziona, per cui dovete necessariamente essere utenti root. Nell’Amazon Linux AMI, per default, si può accedere alla root usando il comando:

sudo su

Così facendo, l’utente passa da “ec2-user” a “root” e può utilizzare easy-rsa per generare certificati e chiavi. Inserite tutti i comandi successivi uno alla volta. Molti di essi vi chiederanno di inserire dettagli personali, quali occupazione e azienda per la quale lavorate. Potete lasciare la definizione presente di default premendo Invio. Infatti in questo caso questi dati non sono importanti poiché lo scopo è quello di utilizzare una VPN personale. Quando impostate la chiave del server vi consigliamo di non impostare alcuna password in modo che OpenVPN possa avviarsi anche senza supervisione. In caso contrario, infatti, bisognerà necessariamente inserire la password prima di potersi connettere.

cd /usr/share/easy-rsa/2.0/CA
source ./vars
./clean-all
./build-ca
./build-key-server server
./build-dh 2048

easyrsa 1
Questo è tutto quello che ci occorre per configurare e avviare OpenVPN, ma ogni client necessita delle proprie credenziali per cui per ogni client da collegare, dovete eseguire questo comando:

./build-key client

In questo tutorial utilizziamo un solo client. A questo punto avete tutte le chiavi RSA e i certificati che vi occorrono, ma dovete ancora generare una chiave TLS per la Perfect Forward Secrecy (segretezza perfetta in avanti), ciò ci garantisce che se una chiave è stata compromessa non potrà essere utilizzata per decrittare sessioni passate.

cd /usr/share/easy-rsa/2.0/CA/keys
openvpn --genkey --secret pfs.key

Una volta che tutti questi file sono pronti, dobbiamo spostarli nella directory OpenVPN. Per prima cosa andremo a creare una directory con le chiavi, poi copieremo al suo interno tutte le chiavi e i certificati.

mkdir /etc/openvpn/keys
for file in server.crt server.key ca.crt dh2048.pem pfs.key; do cp $file /etc/openvpn/keys/; done

Successivamente creeremo un file di configurazione per il server che contiene tutte le informazioni necessarie. Ne abbiamo già preparato uno per voi qui sotto, quindi non dovrete fare altro che copiarlo e incollarlo. Iniziate selezionando la directory OpenVPN e creando al suo interno un nuovo file:

cd /etc/openvpn
nano server.conf

Adesso siete nell’editor di testo nano. Copiate e incollate la configurazione seguente poi premete la combinazione CTRL+O per salvare, successivamente Invio per confermare e CTRL+X per uscire. (Suggerimento: potete incollare il testo dagli appunti su PuTTy semplicemente cliccando con il tasto destro del mouse).

port 1194
proto udp
dev tun
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key # This file should be kept secret
dh /etc/openvpn/keys/dh2048.pem
cipher AES-256-CBC
auth SHA512
server 10.8.0.0 255.255.255.0
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
log-append  openvpn.log
verb 3
tls-server
tls-auth /etc/openvpn/keys/pfs.key

A questo punto il server è configurato. Dobbiamo solo avviare OpenVPN. Lo faremo partire come un servizio, per cui, anche se chiudete PuTTy, continuerà a rimanere in esecuzione finché il server non viene spento o finché non interrompete il servizio manualmente.

sudo service openvpn start

 

Ora che il server è configurato dobbiamo occuparci del client. Per fare ciò dobbiamo spostare i necessari certificati e le chiavi dal nostro server al client. Avendo PuTTy ancora aperto e in esecuzione come root dobbiamo prima modificare i permessi su questi file, in modo da potervi poi accedere:

cd /usr/share/easy-rsa/2.0/CA
chmod 777 keys
cd keys
for file in client.crt client.key ca.crt dh2048.pem pfs.key ca.key; do sudo chmod 777 $file; done

Per prelevare questi file dal server e portarli sul nostro PC utilizzeremo un programma gratuito chiamato WinSCP. Basta installarlo lasciando tutte le impostazioni su quelle di default. Fatto ciò, dovrebbe apparire una finestra che chiede di importare i dettagli di autenticazione del server da PuTTy. Selezionate quello che abbiamo creato e continuate.

ec2 vpn 14

Cliccate su myvpn (o sul nome che avevate scelto) e poi sul pulsante “Edit” (Modifica). Nel campo username scrivete ec2-user e infine cliccate su “Login” (Accedi).

Se non è la prima volta che utilizzate WinSCP potete impostare il file .ppk che avete usato in PuTTy cliccando su Edit e poi Advanced. Andate su SSH > Authentication > Private key file fino ad arrivare a dove si trova il file ppk. Nel campo host name sulla pagina principale potete inserire l’indirizzo IP o il dominio dell’istanza EC2. Assicuratevi di salvare le impostazioni.

easyrsa 6

Nel menu di destra raggiungete la directory che contiene i file delle chiavi, in questo caso /usr/share/easy-rsa/2.0/CA/keys

easyrsa 7

Evidenziate i cinque file di cui avete bisogno sul client: client.crt, client.key, ca.crt, dh2048.pempfs.key e cliccate sul pulsante verde Download. Non ha importanza dove vanno a finire sul menu di sinistra, purché non vi servano privilegi da amministratore per potervi accedere. Per facilitare le cose, mettiamo questi file sul desktop.

L’ultima cosa da fare è rimuovere il file ca.key dal server. Una CA, o autorità di certificazione, viene utilizzata per firmare i certificati del client e se viene compromessa non potrete più fidarvi di tali certificati. Anche se non strettamente necessaria per il funzionamento della VPN, vi consigliamo di utilizzarla. Accertatevi di possedere tutte le chiavi e i certificati per ogni dispositivo che volete connettere prima di rimuovere il file. Se ne volete aggiungere altri in seguito dovrete spostare nuovamente il file ca.key sul server.

easyrsa 9

Adesso spostiamo il file sul PC, come abbiamo fatto per i certificati e le chiavi del client. Questa volta però, invece di usare il solito pulsante “Download”, utilizzeremo “Download and Delete” (Scarica ed elimina) per inviare il file ca.key dal server al PC. Bisognerà poi salvarlo in un luogo sicuro.

Una volta che tutti i file sono stati scaricati dobbiamo modificarne nuovamente i permessi sul server per evitare che chiunque possa accedervi. Per farlo, utilizziamo di nuovo PuTTy:

for file in client.crt client.key ca.crt dh2048.pem pfs.key; do sudo chmod 600 $file; done
cd ..
chmod 600 keys

Copiate e incollate questi 5 file sul vostro PC, dalla cartella in cui avete effettuato il download alla cartella di configurazione di OpenVPN che in questo caso è C://Program Files//OpenVPN//config.

Per concludere dobbiamo creare il file di configurazione per il client. Aprite il vostro editor di testo preferito (Notepad va benissimo, ad esempio) facendo doppio click su di esso e selezionando “Run as administrator” (Esegui come amministratore) e digitate i seguenti comandi:

client
dev tun
proto udp
remote YOUR.EC2.INSTANCE.IP 1194  
ca ca.crt
cert client.crt
key client.key
tls-version-min 1.2
tls-cipher TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256:TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256
cipher AES-256-CBC
auth SHA512
resolv-retry infinite
auth-retry none
nobind
persist-key
persist-tun
ns-cert-type server
comp-lzo
verb 3
tls-client
tls-auth pfs.key

Questo è un file di configurazione Windows per l’interfaccia grafica di OpenVPN, per cui lo salviamo come client.ovpn. Altri client OpenVPN invece possono utilizzare l’estensione .conf. In ogni caso accertatevi che il vostro editor di testo non aggiunga l’estensione .txt quando salvate il file. Salvatelo nella stessa cartella dove si trovano i file delle chiavi e dei certificati: C:\\Program Files\\OpenVPN\\config

easyrsa 8

Ora eseguite la OpenVPN GUI in modalità amministratore, cliccandoci con il tasto destro e selezionando “Run as administrator”. Cliccate poi con il tasto destro sulla barra delle applicazioni e collegatevi con la configurazione del client che abbiamo appena impostato. Una finestra di stato con vari messaggi apparirà sullo schermo, poi l’icona diventerà verde.

Complimenti! Vi siete appena connessi alla VPN che avete creato!

Metodo numero 2: Crittografia statica (più semplice ma non consigliata)

Con questo metodo creeremo una chiave condivisa per l’autenticazione. Si tratta di una sorta di file che si comporta come una password. È più semplice da configurare ma consente di connettere alla VPN solo un dispositivo alla volta, ed è meno sicura del metodo easy-rsa che abbiamo appena descritto. Su PuTTy digitate i seguenti comandi e poi premete Invio:

cd /etc/openvpn
sudo openvpn --genkey --secret ovpn.key

Ora creeremo il file di configurazione per la nostra VPN. Digitate questo comando per creare un file di testo vuoto in un editor di testo molto elementare all’interno del terminale.

sudo nano openvpn.conf

E poi iniziate a inserire la seguente configurazione (potete trovare ulteriori opzioni sul sito di OpenVPN ma se volete modificare dei parametri in seguito cercate prima di comprendere a cosa servono):

port 1194
proto tcp-server
dev tun1
ifconfig 10.4.0.1 10.4.0.2
status server-tcp.log
verb 3
secret  ovpn.key

ec2 vpn 13
Ora tenete premuta la combinazione di tasti CTRL+O (la lettera “O”, non lo zero) e poi Invio per salvare il file. Poi CTRL+X per uscire dall’editor. Siamo di nuovo sul prompt dei comandi ed è ora il momento di avviare OpenVPN:

sudo service openvpn start

Ora dobbiamo spostare la chiave condivisa dal server al computer locale. Per farlo, dobbiamo prima modificare i permessi su quel file in modo da potervi accedere. Per fare questo basta scrivere:

sudo chmod 777 ovpn.key

Se ad un certo punto chiudete accidentalmente PuTTY o se questo smette di funzionare, potete tornare sulla directory di installazione di OpenVPN usando questo comando:

cd /etc/openvpn

Per rendere questa operazione ancora più semplice potete scaricare e installare il programma gratuito WinSCP. Gli utenti Mac dovranno usare un client FTP alternativo ma non c’è da preoccuparsi, poiché ce ne sono tantissimi disponibili. Basta installarlo lasciando tutte le impostazioni su quelle di default. A questo punto, dovrebbe apparire una finestra che chiede di importare i dettagli di autenticazione del server da PuTTy. Selezionate quello che abbiamo creato e procedete.

ec2 vpn 14

Cliccate su myvpn (o sul nome che avevate scelto) e poi sul pulsante “Edit” (Modifica). Nel campo username scrivete “ec2-user”. Cliccate poi su “Login”.

ec2 vpn 15

Adesso potete spostare i file dall’istanza EC2 al vostro computer. Sul pannello di destra risalite fino ad arrivare alla directory etc/openvpn. Qui potete trovare il file ovpn.key di cui avete bisogno. Cliccateci sopra e trascinatelo nella cartella che avete scelto ma ricordatevi dove si trova perché potrebbe servirvi successivamente.

ec2 vpn 16
Una volta in possesso della chiave dobbiamo ripristinare i permessi sul file, in modo che non tutti gli utenti possano accedervi. Per fare questo basta scrivere nel terminale PuTTy:

sudo chmod 600 ovpn.key

A questo punto bisogna scaricare il client OpenVPN e l’interfaccia grafica per il computer locale. Potete accedere alla pagina dei download di OpenVPN e scegliere la versione corretta in base al vostro sistema operativo. Installatela con le opzioni di default. Una volta avviata, dovrebbe apparirvi nella barra delle applicazioni. Aprite il programma di gestione dei file e cercate la directory in cui avete installato OpenVPN (molto probabilmente è in Program Files o in un percorso simile). Spostate il file ovpn.key che abbiamo scaricato dal server sulla cartella che contiene i file di configurazione (se avete usato le impostazioni di default dovrebbe essere C:/Program Files/OpenVPN/config…)

Adesso occorre creare un file di configurazione per la macchina locale che corrisponda a quello creato sul server. Si può utilizzare Notepad incollando le stringhe che abbiamo riportato a seguire, avendo l’accortezza di sostituire l’indirizzo IP che compare dopo “remote” con l’indirizzo IP della vostra istanza EC2 (se lo avete dimenticato lo potete recuperare dalla console AWS sotto EC2 Istances). Inoltre verificate che il percorso del file della chiave sia corretto.

proto tcp-client
remote <your EC2 IP here>        
port 1194                   
dev tun                   
secret "C:\\Program Files\\OpenVPN\\config\\ovpn.key"            
redirect-gateway def1       
ifconfig 10.4.0.2 10.4.0.1

Salvatelo ora come myconfig.ovpn (verificate sempre che l’editor di testo non aggiunga l’estensione .txt) nella cartella config dell’installazione di OpenVPN, la stessa del file ovpn.key.

ec2 vpn 17

Cliccate con il tasto destro sull’icona di OpenVPN nella barra di sistema e poi su “Exit” (Esci) per chiuderlo. Avviatelo nuovamente dal collegamento sul desktop o dal menu dei programmi, ma questa volte cliccate su “Run as administrator” (Esegui come amministratore). Se non selezionate questa opzione, infatti, potrebbe non funzionare correttamente.

ec2 vpn 18
Cliccate con il tasto destro sulla barra di sistema e poi su “Connect” (Collega). Dovrebbe apparire l’interfaccia grafica di OpenVPN che vi mostra la connessione e, se tutto funziona correttamente, l’icona sulla barra di sistema dovrebbe diventare verde. Andate su Google e scrivete “What’s my IP?”(Qual è il mio IP?)e dovreste essere in grado di visualizzare l’indirizzo IP della vostra istanza Amazon EC2.

ec2 vpn 19

Congratulazioni, avete appena creato la vostra VPN!

Note aggiuntive

Se volete proteggere la vostra VPN dalla “deep packet inspection”, una tecnica utilizzata dalle autorità governative di alcuni Paesi come la Cina e la Siria per bloccare le connessioni OpenVPN, potete fare riferimento al nostro tutorial su come configurare Obfsproxy.

Ricordatevi di mantenere la banda dati entro i limiti stabiliti da Amazon per rientrare nella fascia di gratuità. Il modo più semplice per farlo è cliccare con il tasto destro sulla vostra istanza nella console AWS e poi sul collegamento “Add/Edit Alarms”(Aggiungi/Modifica avvisi). Qui potete impostare la pausa o lo spegnimento del server dopo alcune ore di inattività. Il piano gratuito consente l’utilizzo per 750 ore al mese, per cui non servirebbe neppure impostare un limite. Ma se avete superato il primo anno in cui il servizio è gratuito o se ne fate un uso maggiore, questa opzione può risultarvi utile per evitare di pagare per le ore in cui il server non è attivo.

Anche se avete seguito con attenzione questo tutorial, è probabile che in qualche passaggio si siano verificati dei problemi. Questo capita di frequente, per cui se non siete disposti a far fronte ad eventuali problematiche, forse è meglio che vi affidiate a una VPN a pagamento. Queste hanno anche il vantaggio di poter instradare il traffico Internet attraverso posizioni geografiche multiple, mentre un’istanza EC2 è limitata ad una sola di esse. Potete trovare qui le recensioni di varie VPN!

Codificare i server DNS nella VPN

Se volete utilizzare dei server DNS specifici da utilizzare nella vostra VPN avete due opzioni a disposizione.

La prima è quella di aggiungere al file di configurazione del server il comando riportato a seguire. Questa modifica riguarderà tutti i dispositivi che si connettono alla VPN. (Le virgolette fanno parte del comando).

push "dhcp-option DNS 45.56.117.118"

La seconda opzione è quella di impostare il DNS nel client utilizzando:

dhcp-option DNS 45.56.117.118

In questo esempio ho utilizzato un server DNS OpenNIC pubblico, situato negli Stati Uniti, che consente l’accesso anonimo. Potete trovare qui un server OpenNIC per il vostro Paese e poi filtrare i risultati in base a funzionalità quali accesso anonimo e DNSCrypt.

Un ringraziamento particolare va al blog del Dottor Watson dove ho trovato molte delle informazioni che ho utilizzato per scrivere questo articolo.