Rendere più sicura la VPN sui server NAS Synology

Come rendere ancora più solida la rete VPN grazie ai NAS Synology: personalizzare la configurazione del server VPN in modo da utilizzare un livello di cifratura ancora più efficace.

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:

./easyrsa build-server-full NOMESERVER nopass

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:

./easyrsa build-client-full NOMECLIENT

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:

./easyrsa export-p12 NOMECLIENT

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:

vi /root/my-server.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:

vi /usr/syno/etc/packages/VPNCenter/openvpn/openvpn.conf.user

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):

pkcs12 NOMECLIENT.p12

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

Ti consigliamo anche

Link copiato negli appunti