Realizzare un Server VPN Gratis con Raspberry Pi

Tramite il nostro Raspberry Pi è possibile realizzare un server vpn gratis utilizzando il protocollo OpenVpn in pochi minuti.
Potremo accedere ad esempio dall’ufficio alla nostra rete di casa comunicando in COMPLETA SICUREZZA con tutti i nostri dispositivi, pc, stampanti, dispositivi IOT. A livello logico è come se fossimo nella nostra rete di casa. Vorrei spendere qualche riga spiegare l’argomento.

Che cosa vuol dire V.P.N.?

E’ l’acronimo di “Virtual Private Network” che tradotto in italiano vuol dire “rete privata virtuale”.
E’ un servizio di comunicazione “logico” fra due o più apparecchiature realizzata utilizzando una infrastruttura di rete pubblica potenzialmente non sicura, come Internet per esempio.

La VPN instaura una comunicazione sicura attraverso internet usando il meccanismo del tunneling, viene costruito un “tunnel” virtuale tra le apparecchiature abilitate. I dati possono essere spediti dall’origine verso la fine del tunnel, avendo la certezza che arriveranno a destinazione.
I dati vengono “imbustati” due volte per far si che essi siano trasmessi solamente ai destinatari finali autorizzati.
La cifratura trasforma poi le informazioni in chiaro in qualcosa di incomprensibile nella sua forma codificata per chi non è autorizzato.
La funzione di decifratura ripristina le informazioni in modo comprensibile per il destinatario.

Quali sono i vantaggi usando un VPN?

Garantisce la riservatezza.
Alza il livello di sicurezza, tenendo al sicuro i tuoi dati e proteggendoti da intercettazioni e manomissioni.
Permette di bypassare censure e filtri regionali ( vedi Google e Facebook oscurati dal governo Cinese ).
I servizi vpn in commercio hanno un abbonamento mensile non molto economico offrendo sicuramente molti servizi accessori.

Ho deciso così di realizzare un mio server vpn gratis in modo che, da fuori casa, possa accedere a tutti i miei progetti, schede, pc, stampanti, sensori ecc ecc
in modo SICURO, VELOCE e GRATUITO!
Ho aggiunto questa funzionalità al Raspberry PI 3A+ usato per il mio video in cui mostravo come realizzare una retroconsole.
(In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei. A voi non costerà nulla di più e avrete modo di supportare il mio lavoro).

https://amzn.to/4cPgbcY Raspberry Pi Model A+

https://amzn.to/3U6t1w9 32 GB Memory Card

https://amzn.to/4atWdmD Alimentatore per Raspberry 5V 3A

La scheda consuma veramente pochi Watt quindi il costo in termini di energia elettrica è proprio irrisorio. Mettiamoci all’opera.

Colleghiamoci al Raspberry in SSH

Apriamo un client SSH, io uso PuTTy, e inseriamo l’ip del nostro Raspeberry, nel mio caso 192.168.2.126 e porta 22, clicchiamo su Open.

ssh-putty-raspberry-vpn-server
ssh-putty-raspberry-vpn-server

Dovremmo inserire la user e la pw di root. N.B non compaiono gli ***** nella compilazione della password.

terminal-vpn-server - lutritetech.it

Digita:

sudo su

inserisci la password dell’utente di root, questo farà si che non venga più richiesta per questa sessione.

sudo-su-vpn-server-lutritech.it

Digita :

apt update
apt-update-lutritech.it

Successivamente:

apt full-upgrade
apt-full-upgrade-lutritech.it

Potrebbero impiegare diversi minuti affinché vengano scaricati tutti gli aggiornamenti necessari.

Installazione di PiVPN – Vpn Gratis

Ho trovato questo progetto molto interessante, si chiama pivpn.io e consente di installare OpenVpn Server in pochissimo tempo. Avremo così una vpn gratis!
Potete trovare la sua documentazione a questo indirizzo. Per installare il pacchetto potete usare questo comando:

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

Se visualizzate un messaggio di errore
Cloning https://github.com/pivpn/pivpn.git into /usr/local/src/pivpn…main: line 1034: cd: /usr/local/src/pivpn: No such file or directory
potete usare invece questo in alternativa:

sudo rm /root/bin/git
curl -L https://install.pivpn.io | bash

Partirà il download del pacchetto:

install-pivpn-vpn-server-lutritech.it

una volta terminato vedremo la schermata di benvenuto

welcome-pivpn-vpn-server-lutritech.it

PiVPN ci ricorda che è necessario avere un ip statico assegnato.

static-ip-pivpn-vpn-server-lutritech.it

Il setup ci chiede se abbiamo già assegnato un ip statico oppure se abbiamo una Reservation del Raspberry sul nostro router. Dato che ho una Reservation ho cliccato su Yes.

dhcp-pivpn-vpn-server-lutritech.it

Lasciamo selezionato pi e proseguiamo cliccando su OK.

pi-pivpn-vpn-server-lutritech.it

Ora possiamo decidere quale protocollo usare: WireGuard oppure OpenVpn. Per scegliere OpenVpn scendi giù e premi la barra spaziatrice.

openvpn-server-lutritech.it

Configurazione di rete del server VPN

Possiamo scegliere di personalizzare le configurazioni o utilizzare le più comuni. In questa fase, ho avuto dei problemi, per il mio modem/router ho dovuto attivare il protocollo TCP anziché quello UDP, quindi ho dovuto cliccare su YES.

udp-openvpn-server-lutritech.it
protocollo TCP- lutritech.it

Per il protocollo TCP la porta di default che è la 1194, ho lasciato questa porta. Se il provider bloccasse questa porta immetti un altro valore.

porta vpn - lutritech.it

Estremamente importante è abilitare il Port Forwarding sul vostro modem per la porta 1194 al raspberry.
Cercate su internet come fare per il modem che utilizzate. Di solito è nella parte della sicurezza/firewall,
nel mio caso la pagina si presenta così:

Port Forwarding - Lutritech.it
dns google- lutritech.it

Viene chiesto quale server DNS dovranno usare i nostri client collegati, io ho scelto quelli di Google ( 8.8.8.8, 8.8.4.4 ).
Ci verrà chiesto se vogliamo aggiungere un dominio per la ricerca, noi mettiamo No.

custom-domain-openvpn-server

Occorre indicare se i client si dovranno collegare al nostro server vpn utilizzando un ip pubblico statico (come nel mio caso) o un ip pubblico dinamico (l’ip cambia tutte le volte che riavviate il modem). In questo caso potete usare come server DDNS siti gratuiti come noip.com oppure come duckdns.org che aggiornano l’ip assegnato ad un nome.

ip pubblico - lutritech.it

Nel secondo caso scriverai una roba del tipo lutritech.noip.com

DDNS lutritech

Ti consiglio di impostare il servizio DDNS direttamente sul tuo modem, ad ogni accensione verrà aggiornato la entry in automatico. Per configurarlo vai nella pagina relativa del tuo modem, nel mio caso si presenta così:

come configurare ddns - Lutritech.it

Dovrai inserire i tuoi parametri di registrazione al sito: username, password, nome host che hai scelto di usare.

Tornando all’installazione, possiamo personalizzare l’installazione mettendo YES.

rsa-openvpn-server
rsa-256-vpn-server

Ho impostato la cifratura a 256 bit. I certificati crittografici vengono creati in modo automatico. Arrivati a questa schermata vi consiglio di abilitare gli aggiornamenti che potrebbero provocare un riavvio del dispositivo.

upgrade-vpn-server

L’installazione è completata! Ma ci manca ancora un passaggio: bisogna creare un profilo per almeno un client.

reboot-vpn-server

Prima dobbiamo riavviare per sicurezza il Raspberry Pi cliccando su YES. Ci dovremmo ricollegare poi con Putty.

Configurazione del client vpn

Ora bisogna creare il profilo utente per il client che si dovrà collegare da remoto al nostra rete di casa, con questo comando:

sudo pivpn add
certificati - lutritech.it

Ci viene chiesto:
il nome del client : lutritech
la durata in giorni del certificato: 1080
la password per il client: ********
nuovamente la stessa password: ********

Viene creato il certificato per il client e la sua chiave privata, la chiave pubblica e la chiave privata del server.
Se tutto è andato bene, dovreste vedere una cosa simile:

certificato-vpn-server-lutritech

OpenVPN su Windows – VPN Gratis

Il file lutritech.ovpn è il file di configurazione del client che useremo sul pc/smartphone remoto. Per copiarlo possiamo usare un client Sftp come FileZilla. Inseriamo l’ip del nostro Raspberry Pi nel mio caso (192.168.2.126) è la password di root.

filezilla-vpn-server

Dalla cartella \ovpns, copiare file del profilo utente che servirà per la configurazione del client.

copia-configurazione-vpn-server

Ora occorre installare il client OpenVPN per PC. Copiare il file .ovpn nella cartella C:\Program Files\OpenVPN\config
Selezionando il proprio profilo vi verrà chiesto di inserire la password, mettete il flag su ricorda la password.

collegamento vpn windows - lutritech.it

Se tutto è andato a buon fine in basso sulla destra vedrete comparire la seguente notifica:

connesso-windows-vpn-server-lutritech.it

Vi ricordo che sarà necessario aprire verso l’esterno la porta 1194 dal vostro router,
quindi bisognerà fare un port forward dal router al vostro Raspberry Pi.

OpenVPN da Smartphone – VPN Gratis

Installate l’app dallo store di Google nel vostro smartphone. Dopo averla avviata selezionate il file .ovpn (copiato precedentemente).

android-open-vpn-client-lutritech.it

Impostate la password:

private-key-android-open-vpn-client

Cliccate sul profilo e in un attimo sarete collegati!

connected-android-open-vpn-client-lutritech.it

Se vi riuscite a collegare dal vostro client ma non avete accesso a internet sarà necessario eseguire questo comando via ssh:

pivpn -d

Verrà visualizzato questa domanda:

::::            Self check               ::::
:: [OK] IP forwarding is enabled
:: [ERR] Iptables MASQUERADE rule is not set, attempt fix now? [Y/n] 

Dovete rispondere Y e così verranno inserite le corrette voce nella iptable.

Abbiamo visto in questo articolo come realizzare un server vpn gratis in pochi e semplici passi.
Non sarà più necessario aprire mille porte sul vostro router mettendo a rischio la vostra sicurezza!
Si potrebbe anche usare il nostro server gratuito in cloud, saremo localizzati negli stati uniti con tutti i vantaggi che possono portare, ma occhio al traffico generato!

Nel caso volessi stoppare il servizio sul Raspberry PI, dovrai lanciare il seguente comando tramite ssh:

service openvpn stop

In modo analogo se volessi farlo partire o ripartire:

service openvpn start

Invece per vedere lo stato del servizio:

service openvpn status

Condivi sui Social

Lascia un commento

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

4 commenti su “Realizzare un Server VPN Gratis con Raspberry Pi”

  1. ciao , volevo chiedere io uso la ps5 per giocare , potrei creare la vpn con raspberry e avere un indirizzo in Africa o Americano, in modo tale che collegandomi dalla ps5 al raspberry risulti localizzati all’estero e mi trovi lobby con persone americane? grazie

    1. Ciao Alberto, scusa se ti rispondo in ritardo ero in viaggio.
      Sarò conciso: No.
      Ci sono servizi come NordVPN che fanno questa cosa e sono a pagamento.
      Poi non ti resta che configurare il tuo router con questo servizio.
      Spero di esserti stato utile, se hai altre domande sono qui.
      Giuseppe

  2. Ciao Giuseppe,

    ti ringrazio per questa guida molto esaustiva.

    A volte ho l’esigenza di collegarmi a casa a distanza, ma sto desistendo nel configurare il mio router come server VPN e penso che impostare un raspeberry faccia al caso mio.

    Uso costantemente un servizio VPN, come NordVPN.
    Posso usare entrambi le VPN, o sono obbligato a utilizzarne solo una?
    Nel caso utilizzassi quella che mi colleghi a “casa” esporrei il mio indirizzo IP pubblico, no?

    Cosa consigli?

    Grazie in anticipo.

    Federico

    1. Ciao Federico,
      dipende sempre cosa vuoi ottenere.
      Diciamo che potresti seguire l’articolo per collegarti alla rete casalinga con il raspberry e poi utilizzare il pc di casa con NordVpn.
      In linea di massima puoi usare un collegamento vpn dentro una vpn.
      Quando crei una vpn il sistema operativo crea un’altra scheda di rete “virtuale”.
      Se tu fossi in ferie in Grecia (per esempio) e ti collegassi col tuo smartphone in vpn a “casa” tua a Milano(per esempio) risulterebbe l’ip di Milano sul tuo smartphone.
      Spero di averti chiarito le idee.
      Grazie per i complimenti.
      Giuseppe

Torna in alto