La nostra rete locale deve essere privata, così come ogni dato presente al suo interno. Tuttavia potrebbe essere utile accedervi da remoto per svolgere alcune operazioni. Come fare dunque a garantirci una via di accesso sicura (per esplorare, ad esempio i dati presenti sul NAS o le directory condivise da un client) che tenga lontani i potenziali intrusi? Ci serve una VPN (Virtual Private Network). Tutti i pacchetti da e verso la nostra LAN verranno inoltrati sulla rete Internet facendo uso di vari sistemi di cifratura dei dati e creando una sorta di rete virtuale. L’accesso sarà consentito soltanto a chi è dotato dei certificati che dimostrino la propria identità e, ovviamente, delle chiavi di accesso. In questa guida ci affideremo ad OpenVPN, una soluzione affidabile, efficiente e multipiattaforma. Nel nostro test abbiamo utilizzato una macchina equipaggiata con Fedora e il software EasyRSA per generare i certificati di sicurezza. Prima di addentarci nel tutorial è bene procedere all’apertura della porta 33940 del router in nostro possesso.
Per l’installazione di OpenVPN occorre effettuare una serie di operazioni preliminari da ripetere su ogni macchina (server e client).
Installiamo OpenVPN lanciando alcuni semplici comandi da terminale: sudo dnf install openvpn easy-rsa
, a seguire sudo mkdir /etc/openvpn/rsa
e poi sudo cp -rf /usr/share/easyrsa/3.0.1/* /etc/openvpn/rsa
.
Accediamo alla directory appena creata con cd /etc/openvpn/rsa
e lanciamo sudo./easyrsa init-pki
e sudo./easyrsa build-ca
. Sul server, digitiamo sudo./easyrsa init-pki
e sudo./easyrsa gen-req nomeserver nopass
.
Il parametro nopass crea chiavi non crittografate, quindi attenzione a chi ne ha accesso e ai permessi del file system. Spostiamoci su ogni client che deve accedere al nostro server VPN e lanciamo i comandi sudo./easyrsa init-pki
e sudo./easyrsa gen-req nomeclient nopass
.
Spostiamoci sulla macchina CA (il server) ed eseguiamo il comando sudo./easyrsa import-req /percorso/client.req nomefiledestinazione
. Nel caso in figura il percorso è /etc/openvpn/rsa/pki/reqs/ e la request è client.req.
Siamo quasi pronti per connetterci alla LAN di casa utilizzando la VPN creta: firmiamo le richieste e ultimiamo la configurazione.
Per firmare le richieste: lato server usiamo il comando ./easyrsa sign server nomerichiesta
e confermiamo con yes. Lato client, invece, ./easyrsa sign client nomerichiesta
. Questi comandi generano il file certificato ca.crt.