Configurare una VPN WireGuard in 1 minuto, con Raspberry Pi


Informatica / lunedì, Marzo 2nd, 2020

Un argomento molto richiesto nei forum di Raspberry Pi, è come collegarsi in modo sicuro alla rete domestica tramite una VPN.

Mi sono appena imbattuto in questa necessità per proseguire la mia rubrica Programmare Raspberry Pi con Node-Red . Dall'ufficio a casa, come collegarsi senza aprire mille nat sul router?

Ho notato molta confusione su come si usi una vpn quindi parlando in modo semplice,su un pc (client vpn) si instrada parte o tutto il suo traffico di rete verso un server vpn.

Puoi instradarlo su molti server anonimi per non farti beccare dalla guardia di finanza, oppure puntare a tutta la tua rete domestica in modo sicuro. A noi serve la seconda.

Ip fisso

Partiamo dai requisiti.  Il Raspberry Pi deve avere un ip fisso. Io consiglio sempre di creare una prenotazione nel server dhcp del router, fatto una volta sarai apposto per sempre.

Cerca il menù DHCP e prenotazioni ip.

Nella mai Vodafone Station si trova sotto impostazioni -> ipv4 -> dhcp statico -> rete domestica

vodafone station prenotazione ip statico

Si sceglie il dispositivo in base al MAC address, e si associa un ip fisso. Semplicissimo e valido anche se formatti il dispositivo.

Attenzione però il MAC address è diverso per ogni scheda di rete.

DDNS

Seconda cosa, ci servirà un DDNS, perché a casa l'ip pubblico cambia sempre.

Verificabile tramite

curl ifconfig.me

Ora, se hai la vodafone station ne possiedi già uno nascosto.

Salva la configurazione del router, aprila con un editor di testo, cerca la voce gateway , vicino ci sarà un vox......  quindi il tuo ddns gratuito sarà vox.....mynet.vodafone.it , dove al posto dei punti ci sarà un numero seguito da un solo punto.

Nel caso non avessi vodafone, registrati ed installa duckdns.org copia/incollando le istruzioni dal sito dopo aver creato un nome host univoco.

NAT / Port Forwarding

Terzo punto il Nat o Port forward, dipende come è scritto nel router, in certi router telecom c'è scritto Virtual server.

Cerca la voce relativa, e scegli come porta pubblica e locale 51820 UDP verso l'ip del Raspberry Pi.

Nella vodafone station per creare il NAT, cerca il menu internet -> Gestione porte.

vofadone station NAt

Installare il server VPN: PiVpn

Quarta parte, installiamo il server vpn sul Raspberry Pi.

Nulla di più semplice, sarà sufficiente eseguire

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

Seguendo le istruzioni lasciamo tutto di default, quindi wireguard, lasciamo l'ip automatico (perché lo abbiamo prenotato in precedenza), selezioniamo la porta 51820 udp, e al posto di ip pubblico, impostiamo dns mettendo il nome ddns scelto in precedenza. Ad esempio <nomeHostdaTeScelto>.duckdns.org . Come server dns locale scegliamo l'ip del router di casa e come secondario 8.8.8.8 .

Riavviato il Raspberry Pi come richiesto e successivamente eseguiamo

pivpn add

cosi potremmo creare una configurazione client per il nostro dispostivo, nel mio caso un pc windows, anche se WireGuard è ottima anche per smaprthone.

In /home/pi/configs avremo il file di configurazione da importare nel client desiderato, ma prima modifichiamolo con un editor di testo.

Verifichiamo che DNS = abbia l'ip del router di casa.

Mentre AllowedIPs, deve contenere l'ip della rete di casa, nel caso classico 192.168.1.0/24 .

AllowedIPs non è molto intuitivo, significa "fai passare per la vpn solo le richieste verso la rete 192.168.1.0/24" . Nel caso volessi instradare tutto, basterà lasciare 0.0.0.0/0 .

Scarichiamo il client dal sito WireGuard ed importiamo la nostra configurazione ottenuta con pivpn add  .

Attiviamo la connessione dal client, che deve essere connesso ad una rete diversa dal server.

Testare la VPN

Un test rapido sarà aprire il sito ifconfig.me nel caso avessi inoltrato tutto il traffico, dovresti avere l'ip pubblico del server vpn.

La seconda prova sarà eseguire un ping <ip del raspberry> o altri dispositivi connessi a  casa.

Ci vediamo nella seconda parte della Rubrica Programmare Raspberry Pi con Node-Red .