Raspberry Pi come VPN server con PiVPN

Posted by RedBlue on February 26, 2019 · 5 mins read

Oggi vediamo come trasformare il Raspberry Pi in un server VPN con PiVPN.

Prima di tutto, cerchiamo di capire (molto sinteticamente) cos'è una VPN e perché potrebbe tornare utile.

Oggi in casa abbiamo tutti un router, l'apparato che viene fornito dal nostro provider e tramite il quale ci connettiamo ad Internet; al router sono collegati tutti i nostri dispositivi (pc, smartphone, tablet, IoT), sia via cavo che wireless.

L'insieme di tutti questi dispositivi costituisce una rete locale; tale rete non è accessibile dall'esterno (ovvero da Internet), in quanto l'unico dispositivo abilitato alla comunicazione con l'esterno è proprio il router. Tutti gli altri dispositivi si collegano al router che gestisce il traffico da e verso Internet.



Ecco, una VPN (Virtual Private Network) serve a collegarsi alla nostra rete locale attraverso Internet. Ad esempio mentre siamo all'estero, possiamo collegarci alla nostra rete locale di casa, proprio come se fossimo a casa nostra, in Italia!

Possiamo quindi accedere alla nostra stampante, oppure ad un hard disk collegato alla rete locale, o ancora usare un servizio di streaming come se fossimo a casa (ovviamente per quest'ultimo uso è necessario avere una signora connessione), poiché in realtà con una VPN stiamo usando la nostra connessione di casa, anche se attraverso Internet, il tutto attraverso un canale di comunicazione completamente criptato (e quindi sicuro).

Creare un server VPN con un Raspberry Pi è veramente semplice, basta installare PiVPN. L'installazione è addirittura banale, basta dare il comando (da root):

curl -L https://install.pivpn.io | bash

Ovviamente il Raspberry Pi deve essere già configurato e funzionante, ad esempio con Raspbian (se non sapete come installare, date un'occhiata a questo articolo, è decisamente datato, ma i passi base per l'installazione sono invariati).

Il setup è del tutto guidato, alla maggior parte delle domande sarà sufficiente cliccare semplicemente su Ok. E' importante selezionare un utente (l'utente predefinito pi andrà benissimo) e il protocollo UDP, mentre come porta va bene la porta predefinita1194.

Come livello di crittografia va bene il livello di standard proposto di default; alla richiesta di selezionare tra un indirizzo IP pubblico o un servizio DNS, potete usare la prima opzione solo se disponete effettivamente di un IP pubblico (va richiesto al proprio provider), altrimenti potete usare dynDNS. L'ultima domanda è relativa al DNS da usare, io consiglio di usare Google. Poi si può riavviare.

Attenzione perché ancora non funziona nulla, dovrete prima aprire la porta indicata durante il setup (ad esempio la 1194) per il protocollo UDP sul vostro router. Si tratta di un'operazione semplice, ma non posso aiutarvi molto poiché la procedura cambia da router a router.

Una volta fatto tutto, occorre creare almeno un profilo di connessione alla nostra VPN. Si tratta di un file (con estensione .ovpn) che, importato in un client come OpenVPN, configurerà automaticamente tutti i parametri di connessione alla nostra VPN.

Supponiamo di voler creare un profilo per lo smartphone, senza usare una password per la connessione, colleghiamoci al Raspberry Pi attraverso SSH (se non disponete di monitor e tastiera collegati direttamente) e diamo il comando:

pivpn add nopass

Ci chiederà un nome per questo client, e creerà il file di cui sopra.

Se vogliamo creare un profilo protetto da password, basterà dare:

pivpn add

Mentre per ottenere la lista dei profili creati, il comando è:

pivpn list

Infine, per rimuovere un profilo creato:

pivpn revoke 

Una volta ottenuto il file .ovpn, basterà copiarlo sul dispositivo dal quale vogliamo connetterci alla VPN (ad esempio uno smartphone), scaricare un client per il sistema operativo in uso (ad esempio OpenVPN, che potete scaricare dal sito linkato sopra), ed importarlo.

Finito, se tutto è andato bene, sarete connessi alla vostra VPN attraverso il Raspberry Pi.

Alla prossima..