Uno dei nostri cavalli di battaglia, una delle nostre “fissazioni” – l’avrete certamente notato – consiste nel fornirvi tutti i possibili strumenti per l’utilizzo di reti VPN (Virtual Private Network).
I NAS Synology, dei quali vi abbiamo spesso parlato, sono dispositivi estremamente completi e versatili che permettono anche di creare VPN per accedere in tutta sicurezza alla propria rete locale mentre ci si trova lontani dall’ufficio o da casa.
Nell’articolo Server VPN, come crearlo usando un NAS abbiamo visto che i server Synology consentono di allestire molto facilmente una VPN.
L’unico problema è che il client OpenVPN col quale ci si connette mostra il messaggio d’allerta WARNING: No server certificate verification method has been enabled.
Questo accade perché il NAS Synology implementa solamente la verifica dei client collegati ma non quella lato server.
Per scongiurare completamente l’eventualità di attacchi man-in-the-middle (MITM), gli utenti più evoluti possono personalizzare il file di configurazione usato dal server VPN installato sui NAS Synology.
La procedura non è certamente alla portata di tutti ma consente di fidare su una rete VPN ancora più sicura e affidabile.
Collegandosi alla VPN attivata sul NAS Synology è possibile connettersi senza rischi da una rete pubblica (una WiFi pubblica o, peggio ancora, aperta), tutelare la propria privacy, la riservatezza dei dati, accedere alle cartelle condivise all’interno della propria LAN e navigare con l’IP pubblico assegnato dal provider Internet al modem router che si usa in azienda, in ufficio e presso la propria abitazione.
VPN più sicura con i NAS Synology
Per scongiurare qualunque rischio di attacco MITM (vedere questa pagina di supporto), i nostri lettori più pazienti e volenterosi possono modificare manualmente la configurazione del loro server NAS Synology. Ecco come fare in pratica:
1) Accedere al pannello di amministrazione del NAS Synology e installare il pacchetto VPN Server dal Centro pacchetti.
2) Portarsi all’interno di VPN Center e verificare che il protocollo OpenVPN sia attualmente disattivato.
3) Accedere al pannello di controllo del NAS Synology e scegliere Terminale e SNMP. Spuntare la casella Attiva servizio SSH sulla porta 22.
4) Scaricare il client Telnet/SSH PuTTY e avviarlo.
5) In PuTTY inserire l’IP locale del NAS Synology e confermare l’utilizzo della porta 22.
6) Inserire nome utente e password di un account amministratore correttamente configurato sul NAS Synology (vedere anche NAS Synology: come regolare al meglio le impostazioni sulla sicurezza).
7) Al prompt digitare il comando sudo -i
per acquisire i permessi di root. Dovrà essere nuovamente introdotta la password collegata all’account amministratore col quale ci si è loggati.
8) Verificare in questa pagina la versione più recente di EasyRSA al momento disponibile quindi digitare (effettuando eventualmente le opportune sostituzioni sul numero della release):
wget https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.4/EasyRSA-3.0.4.tgz
tar -xvf EasyRSA-3.0.4.tgz
chown -R root:root EasyRSA-3.0.4
cd EasyRSA-3.0.4
9) Impartire quindi i seguenti comandi, molto simili a quelli che avevamo visto nell’articolo in cui spiegavamo come allestire una VPN in Windows: Connessione VPN in Windows con OpenVPN.
echo "set_var EASYRSA_KEY_SIZE 3072" > vars
./easyrsa init-pki
./easyrsa build-ca nopass
Alla comparsa della richiesta di un Common name, suggeriamo di premere semplicemente il tasto Invio così da accettare la denominazione proposta di default ovvero Easy-RSA CA.
10) Per generare il certificato del server si dovrà quindi utilizzare il comando seguente:
Al posto di NOMESERVER si dovrà indicare il nome da assegnare al server VPN in fase di creazione.
11) Il certificato da usare lato client si crea invece con il comando seguente, avendo cura di sostituire a NOMECLIENT un nome di propria scelta:
Verrà chiesto di inserire una password per il client/nome utente specificato (Enter PEM pass phrase): sceglierla in modo tale che sia sufficientemente lunga e complessa.
Usare quindi il comando seguente per esportare il certificato in formato .P12:
Bisognerà dapprima inserire la password correlata al nome utente/client NOMECLIENT scelta in precedenza quindi scegliere una password per l’esportazione dei dati (Enter export password).
La procedura dovrà essere ripetuta per tutti gli utenti o comunque per tutti i client che dovranno collegarsi alla VPN.
12) Per concludere la fase di configurazione vera e propria, si dovranno introdurre i seguenti comandi per generare la lista dei certificati di revoca, la chiave TLS per l’autenticazione e la chiave Diffie-Hellmann:
./easyrsa gen-crl
openvpn --genkey --secret pki/ta.key
./easyrsa gen-dh
13) La procedura di generazione della chiave Diffie-Hellman (ultimo comando) richiede tempo per poter essere portata a termine.
Suggeriamo quindi di aprire una nuova istanza di PuTTY e collegarsi nuovamente al NAS con lo stesso account amministratore. Si dovrà quindi digitare:
sudo -i
cd EasyRSA-3.0.4
14) Con il seguente comando si creerà il file di configurazione .OVPN:
All’interno dell’editor vi, si dovrà incollare quanto segue:
client
dev tun
proto udp
remote INDIRIZZO_IP_PUBBLICO 1194
redirect-gateway def1
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
comp-lzo adaptive
auth-user-pass
key-direction 1
tls-version-min 1.2
cipher AES-256-CBC
auth SHA256
Al posto di INDIRIZZO_IP_PUBBLICO si dovrà indicare l’IP pubblico sul quale risponde il NAS (sulla porta 1194).
Per salvare il file e uscire dall’editor vi, si dovrà premere il tasto ESC
quindi digitare :wq
e premere Invio.
15) Usando i seguenti due comandi si aggiungeranno, in calce al file .OVPN, il certificato e la chiave TLS generati in precedenza:
echo -e "<ca>\n$(cat pki/ca.crt)\n</ca>" >> /root/my-server.ovpn
echo -e "<tls-auth>\n$(cat pki/ta.key)\n</tls-auth>" >> /root/my-server.ovpn
16) A questo punto è possibile copiare il file .OVPN e il file .P12 all’interno della cartella del proprio account utente:
cp /root/my-server.ovpn /var/services/homes/NOME_CARTELLA_UTENTE
cp pki/private/NOMECLIENT.p12 /var/services/homes/NOME_CARTELLA_UTENTE
17) A questo punto, dal momento che la cartella /usr/syno/etc/packages/VPNCenter/openvpn
contiene le configurazioni predefinite impostate dal NAS Synology ed è protetta, si possono salvare tutti i file necessari per la connessione remota in un’altra directory. Per procedere:
mkdir /usr/syno/etc/packages/VPNCenter/openvpn/mykeys
cp pki/ca.crt pki/issued/NOMESERVER.crt pki/private/NOMESERVER.key pki/crl.pem pki/ta.key pki/dh.pem /usr/syno/etc/packages/VPNCenter/openvpn/mykeys/
Al posto di NOMESERVER dovranno essere apportate le opportune sostituzioni indicando il nome del server scelto in precedenza.
18) Digitare quindi quanto segue:
e incollarvi:
push "route 192.168.1.0 255.255.255.0"
push "route 10.8.0.0 255.255.255.0"
#push "dhcp-option DNS 192.168.0.1"
dev tun
management 127.0.0.1 1195
server 10.8.0.0 255.255.255.0
dh /usr/syno/etc/packages/VPNCenter/openvpn/mykeys/dh.pem
ca /usr/syno/etc/packages/VPNCenter/openvpn/mykeys/ca.crt
cert /usr/syno/etc/packages/VPNCenter/openvpn/mykeys/NOMESERVER.crt
key /usr/syno/etc/packages/VPNCenter/openvpn/mykeys/NOMESERVER.key
tls-auth /usr/syno/etc/packages/VPNCenter/openvpn/mykeys/ta.key 0
crl-verify /usr/syno/etc/packages/VPNCenter/openvpn/mykeys/crl.pem
## Broken
#user nobody
#group nobody
max-clients 5
comp-lzo #adaptive
persist-tun
persist-key
keepalive 10 60
reneg-sec 0
plugin /var/packages/VPNCenter/target/lib/radiusplugin.so /var/packages/VPNCenter/target/etc/openvpn/radiusplugin.cnf
username-as-common-name
duplicate-cn
status /tmp/ovpn_status_2_result 30
status-version 2
log-append /var/log/openvpn.log
verb 3
mute 20
proto udp6
port 1194
tls-version-min 1.2
tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384:TLS-DHE-RSA-WITH-AES-256-CBC-SHA256:TLS-DHE-RSA-WITH-AES-128-GCM-SHA256:TLS-DHE-RSA-WITH-AES-128-CBC-SHA256
cipher AES-256-CBC
auth SHA256
Al posto di 192.168.1.0 (prima riga) digitare ad esempio 192.168.0.0 se l’indirizzo IP privato del modem router fosse 192.168.0.1.
Al posto di NOMESERVER.crt e NOMESERVER.key digitare il nome del server scelto precedentemente.
Salvare e uscire premendo ESC
quindi digitando :wq
con la successiva pressione del tasto Invio.
Il nuovo file openvpn.conf.user
che si sarà così creato avrà priorità rispetto al file /usr/syno/etc/packages/VPNCenter/openvpn/openvpn.conf
standard normalmente utilizzato dal NAS Synology installando il pacchetto VPN Server.
19) Digitare poi /usr/local/etc/logrotate.d/openvpn
e incollare nel file quanto segue:
/var/log/openvpn.log {
copytruncate
missingok
notifempty
create 640 root root
}
Salvare e uscire, al solito, premendo ESC
quindi digitando :wq
e infine premendo Invio.
20) Per concludere digitare:
cd ..
chmod 700 EasyRSA-3.0.4
chmod 700 /root/my-server.ovpn
21) Come ultimo passo si può riavviare il servizio OpenVPN con il comando synoservice --restart pkgctl-VPNCenter
oppure spuntando la casella Attiva server OpenVPN dall’interfaccia del NAS.
22) A questo punto è tutto pronto: i file my-server.ovpn
e NOMECLIENT.p12
dovranno essere copiati sul PC o sui dispositivi da cui si intende collegarsi alla VPN. Per copiare i file si può usare lo strumento File station di Synology DSM oppure accedervi dall’icona Rete di Windows.
Il file PKCS12 (estensione .P12) deve essere necessariamente importato a livello di sistema operativo oppure nel client OpenVPN installato sul sistema desktop, notebook o sul dispositivo mobile Android/iOS. Diversamente, la connessione al server VPN non andrà mai a buon fine.
Nel caso di Windows, dopo aver scaricato il client OpenVPN da questa pagina, si dovranno copiare entrambi i file my-server.ovpn
e NOMECLIENT.p12
nella cartella C:\Program Files\OpenVPN\config
quindi aprire my-server.ovpn
con editor di testo (ad esempio Notepad++) e aggiungere la riga che segue (ad esempio dopo persist tun
):
Dopo aver avviato la connessione remota con OpenVPN si dovrà inserire le credenziali di accesso di un account utente autorizzato a usare la connessione VPN e poi indicare la password per l’apertura del file .P12.
Questo client OpenVPN per Android consente di importare direttamente i file PCKS12 (estensione .P12) toccando OVPN Profile.
Importando il file .P12 e il file .OVPN, previo inserimento delle varie password si potrà immediatamente stabilire la connessione alla VPN.
Fonti e link utili:
– Utilizzare i certificati PKCS12 con OpenVPN in Windows
– Installazione di EasyRSA 3 sui NAS Synology
– Usare OpenVPN sui dispositivi Apple iOS con server installato su Raspberry Pi