community italiana di domotica personale
 
Collegare Raspberry Pi a una VPN con OpenVPN e Raspberry Pi OS

Collegare Raspberry Pi a una VPN con OpenVPN e Raspberry Pi OS

SCOPI DELLA GUIDA:
  • Utilizzare OpenVPN Client (su sistema operativo Raspberry Pi OS) per collegare Raspberry Pi a una VPN remota basata su OpenVPN Server
  • Livello di difficoltàmedio
CONCETTI AFFRONTATI:
  • Configurazione software
COMPONENTI SOFTWARE UTILIZZATE:
PREREQUISITI:
DISPOSITIVI FISICI UTILIZZATI:
GUIDA MAGGIORMENTE INDICATA PER:

Raspbian - Linux

NOTE E DISCLAIMER
  • qualsiasi eventuale modifica agli impianti domestici dev'essere progettata e realizzata SOLO da personale qualificato;
  • qualsiasi modifica non prevista attuata in proprio è a propria responsabilità personale nonché a proprio rischio e pericolo (i contenuti della presenta pagina hanno infatti puro scopo didattico) e fa decadere garanzia, omologazioni e certificazioni di qualità; dei dispositivi interessati;
  • tutte le tecniche descritte si intendono applicate a software e firmware aggiornati alle ultime versioni disponibili;
  • questa pagina è materialmente scritta e manutenuta da più individui: non ci si aspetti né si pretenda un supporto personale. In caso di difficoltà, chiedere supporto alla community sul nostro forum o sulla nostra chat;
  • se hai bisogno di orientarti, c'è la mappa.
Revisione guida: 1.0

OpenVPN su Raspberry Pi OS

Abstract

Negli ultimi anni c’è stato un proliferare di servizi VPN a pagamento, i quali consentono da dentro la propria rete domestica (o comunque un qualsiasi host connesso a Internet) di navigare in modo anonimo attraverso tale servizio. In sostanza ci si collega (sempre con la filosofia del tunnelling) alla rete del provider VPN e da lì si naviga anonimizzati verso Internet (per questioni di estrema privacy o altro).

A prescindere dall’anonimizzazione di cui sopra, le motivazioni per collegarsi tramite VPN a una rete target possono essere le più disparate. Si immagini quindi la connessione VPN come un generico “tunnel” che ci consenta ci collegarci, tramite client, sulla rete dell’host che ospita la controparte server, quale che sia – magari lavorativa, oppure di un proprio sito remoto, magari una seconda casa o altro.

Esempi di VPN “target” possono essere:


Il tema VPN è vastissimo (leggi approfondimento) e non è pensabile trattarlo in dettaglio; la presente guida si concentra sulla possibilità di far sì che un proprio Raspberry Pi dotato di sistema operativo Raspberry Pi OS possa collegarsi con una VPN remota basata su OpenVPN, un server/client gratuito Open Source.

Utilizzeremo, allo scopo, OpenVPN client installato come applicativo su Raspberry Pi OS; spiegheremo quindi passo passo come realizzare questa connessione verso la rete target, ovviamente basata su OpenVPN server. Alternativa alla presente guida, quella dedicata al medesimo scopo ma utilizzando Docker.

Si parte

Assunti

Come anticipato, assumeremo che la VPN alla quale andremo a collegare il nostro Raspberry sia basata su OpenVPN.
Ciò che ci servirà è:

  • il file (con estensione .ovpn) contenente le chiavi dell’utente configurato lato server OpenVPN;
  • la password relativa all’utente configurato lato server OpenVPN.

Questa informazioni, quindi, si reperiscono lato server.

Si assume altresì che il Raspberry Pi sia configurato (inclusa la possibilità di collegarvisi tramite SSH), collegato alla rete locale e, attraverso essa, a Internet.

Vetrina - Offerte del giorno

Credenziali d’accesso

Innanzitutto è necessario configurare Raspberry in modo da accogliere le informazioni che poi OpenVPN Client utilizzerà per collegarsi a OpenVPN server, ovvero alla nostra VPN target.

Collegarsi dunque via SSH al proprio Raspberry ed eseguire i seguenti comandi:

mkdir openvpn
cd openvpn

Entrati all’interno della cartella, creare il file della password relativo all’utente che utilizzeremo per collegarci alla VPN target (da non confondersi con l’utente con cui ci si collega a Raspberry Pi, per dire). Se l’utente si chiamasse openvpn-client, il file contenente la password si chiamerebbe openvpn-client.pwd:

sudo nano openvpn-client.pwd

all’interno dell’editor che si aprirà, scrivere semplicemente la password e uscire salvando (CTRL-X, Y, invio).


Sempre rimanendo all’interno della cartella in cui ci troviamo, creare il file .ovpn sempre relativo all’utente che utilizzeremo per collegarci alla VPN target. Se l’utente si chiamasse openvpn-client, il file contenente la password si chiamerebbe openvpn-client.ovpn.

sudo nano openvpn-client.ovpn

Apertosi il client, copia-incollare il seguente testo:

pull-filter ignore "route-gateway"
askpass /vpn/NOME_UTENTE.pwd
AUTOSTART="NOME_UTENTE"

avendo cura di personalizzare il nome dell’utente (se fosse openvpn-client, la seconda stringa diventerebbe askpass /vpn/openvpn-client.pwd, mentre la terza AUTOSTART=”openvpn-client”)

Andare poi a capo e copia-incollare il contenuto del file .ovpn che si dovrebbe, come spiegato negli assunti, avere a disposizione. Attenzione che il contenuto del file .ovpn sia copiato per intero.
Uscire salvando (CTRL-X, Y, invio).

Installare OpenVPN Client

Una volta dotati di un proprio FQDN è dunque il momento di installare OpenVPN Client su Raspberry Pi OS.

Eseguire quindi i comandi:

sudo apt-get install openvpn
sudo systemctl is-enabled openvpn.service

Fatto questo possiamo provare a collegarci con:

sudo systemctl start openvpn@NOME_UENTE.service

Verifichiamo quindi che sia partito tutto correttamente con:

sudo systemctl status openvpn@NOME_UENTE.service

andando a controllare che sia presente la seguente riga:

1980-01-01 00:00:00 raspberrypi ovpn-homeassistant[1802]: Initialization Sequence Completed

il che confermerà il funzionamento del tutto.

In pratica, il log ci sta dicendo che Raspberry si è effettivamente collegato alla nostra VPN target utilizzando le credenziali configurate su Raspberry in precedenza. 

Se invece si ottiene un errore del tipo:

1980-01-01 00:00:00 Exiting due to fatal errors

allora c’è qualcosa che non va. Solitamente la riga precedente all’errore indica il motivo (e quindi concentrarsi su tale motivo, correggerlo e riavviare il container col comando di cui sopra.


Congratulazioni: OpenVPN Client è ora operativo.

Uso

A questo punto l’uso che se ne fa è personale: come detto, le casistiche sono le più disparate. Il servizio si avvierà sempre e in automatico una volta che il demone sarà in esecuzione, la connessione verrà stabilita e il nostro host locale si collegherà sulla rete del server remoto OpenVPN.

Collegarsi da remoto a Home Assistant via reti provider che usino NAT (reti mobili, Fastweb, Sky Wi-Fi ecc.)

Questa pagina è redatta, manutenuta e aggiornata dallo staff di inDomus, un gruppo di persone molto diverse tra loro che trovi, per domande e supporto, sul forum e sulla chat del sito. Se ti sei perso, a tua disposizione c'è la mappa.