NordVPN supporta OpenWrt?
Secondo alcuni rapporti, i router con firmware OpenWrt supportano le VPN come NordVPN. Tuttavia, tieni presente che lo staff di NordVPN non ha testato la configurazione descritta di seguito; è stata invece condivisa e testata dai nostri eccezionali clienti. NordVPN desidera ringraziare nello specifico Unwind, un membro attivo della community OpenWrt, per la sua continua assistenza nel fornirci istruzioni aggiornate su OpenWrt.
Istruzioni per la GUI
Questa guida spiega come configurare una connessione NordVPN sui router utilizzando il firmware OpenWrt tramite l'interfaccia web LuCI.
-
Puoi entrare nell'interfaccia LuCI del router OpenWrt inserendone
l'indirizzo IP locale sul tuo browser ed effettuando l'accesso.
L'indirizzo IP predefinito è 192.168.1.1 e il nome
utente è root.
NOTA: il sistema non imposta una password in modo predefinito, quindi puoi lasciare vuoto questo campo. Tuttavia, quando accedi, il sistema mostrerà un messaggio che ti chiede se vuoi impostarne una.
Per farlo, clicca su System > Administration; qui potrai impostare la password. -
Dopo aver effettuato l'accesso, entra nella scheda
System e seleziona Software.
- Clicca sul pulsante Update lists, attendi il completamento del processo e clicca su Dismiss.
-
Installa i seguenti pacchetti digitandone il nome nel campo
Filter e cliccando su Install….
- openvpn-openssl
- ip-full
-
luci-app-openvpn
- Clicca su Save & Apply e aggiorna la pagina del router. Ora dovresti vedere una nuova scheda chiamata VPN. Cliccaci sopra e scegli OpenVPN dal menu a discesa.
-
Ora dovrai scaricare i file di configurazione del client OpenVPN.
Dopodiché, potrai connetterti a un server consigliato tramite il tuo
Nord-Account. Segui i
passaggi riportati qui sotto per trovare le
credenziali di servizio necessarie per la configurazione manuale
della connessione:
-
-
Accedi al tuo
Nord-Account, clicca su NordVPN e, nella sezione
Configurazione manuale, clicca su
Credenziali di servizio. Qui troverai il
Nome utente e la Password che
ti serviranno per connetterti manualmente.
-
Ora dovrai scaricare i file di configurazione del client
OpenVPN. Segui la procedura descritta qui sotto per trovare il
server migliore per la tua connessione:
-
Accedi al tuo
Nord-Account
e clicca su NordVPN.
-
Scorri verso il basso fino alla sezione
Impostazioni avanzate e clicca su
Configura NordVPN manualmente.
-
Seleziona la scheda Raccomandazione server.
Il nostro algoritmo ti consiglierà il server migliore in
base al luogo in cui ti trovi.
-
Premendo Filtri avanzati, puoi
personalizzare i server consigliati selezionando il
Tipo di server e il
Protocollo di sicurezza.
Se desideri selezionare un server specifico, segui questi passaggi:
-
Nella sezione
Configura NordVPN manualmente, scegli
File di configurazione OpenVPN.
-
Puoi trovare il server a cui desideri connetterti
utilizzando la barra Cerca o scorrendo
verso il basso. Dopodiché, puoi scaricare i file
cliccando su Scarica UDP o
Scarica TCP.
In questa guida, a titolo di esempio, utilizzeremo il server us5104.nordvpn.com.
-
Nella sezione
Configura NordVPN manualmente, scegli
File di configurazione OpenVPN.
-
Accedi al tuo
Nord-Account
e clicca su NordVPN.
-
Accedi al tuo
Nord-Account, clicca su NordVPN e, nella sezione
Configurazione manuale, clicca su
Credenziali di servizio. Qui troverai il
Nome utente e la Password che
ti serviranno per connetterti manualmente.
-
-
Nella sezione OVPN configuration file upload, assegna
un nome alla connessione VPN nel campo
Instance name (nell'esempio, l'abbiamo chiamata "nordvpn_us"). Poi clicca sul pulsante Choose File, individua il
file del server scaricato e clicca su Upload.
-
Nella sezione OpenVPN instances, clicca sul
pulsante Edit accanto all'istanza che hai appena
creato.
-
Inserisci nel campo in basso le credenziali del servizio NordVPN, ovvero
nome utente e password, in righe separate.
nome utente
password
Puoi trovare le tue credenziali del servizio NordVPN (nome utente e password) nella dashboard del Nord-Account. -
Ora copia il percorso nel file delle credenziali, fornito proprio sopra
al campo contenente le credenziali, e incollalo accanto alla riga
"auth-user-pass" nella sezione
Config file sopra. Dovrebbe apparire
così: auth-user-pass /etc/openvpn/nordvpn_us.auth
-
Per connetterti al server VPN, seleziona la casella nella colonna
Enabled e poi clicca sul pulsante start
accanto all'istanza NordVPN creata.
- Clicca sul pulsante Save & Apply in basso.
- Nella parte superiore del menu di navigazione, vai su System e clicca su Reboot. Si aprirà un'altra pagina. Clicca sul pulsante Perform reboot; dopodiché, dovrai accedere di nuovo.
-
Vai alla scheda Network nella parte superiore della
pagina e seleziona Interfaces:
1. Clicca su Add new interface.
2. Nella sezione Name, digita nordvpntun.
3. Clicca su Protocol e scegli Unmanaged.
4. Nel menu a discesa Interface, inserisci il nome tun0 nel campo -- custom -- in basso e premi il tasto Invio.
- Clicca su Create interface e Save.
- Seleziona la scheda Network in alto e vai alla sezione Firewall.
-
Clicca sul pulsante Add e modifica le impostazioni
come segue:
- Assegna il nome "vpnfirewall".
- Imposta l'opzione "Input" su "Reject".
- Lascia "Output" impostato su "Accept" e "Forward" su "Reject".
- Seleziona l'opzione "Masquerading".
- Seleziona l'opzione "MSS clamping".
- Dal menu a discesa "Covered Networks", scegli "nordvpntun".
- Nel menu a discesa "Allow forward from source zones", scegli "lan".
-
Clicca sul pulsante "Save".
-
Nella sezione Zones, trova la zona denominata
lan e clicca sul pulsante Edit.
-
Nel menu a discesa Allow forward to destination zones,
seleziona la voce nordvpntun.
- Clicca di nuovo su Network nella parte superiore della pagina e poi scegli DHCP and DNS dall'elenco a discesa.
-
Nella scheda General Settings, individua l'opzione "DNS
forwardings" e inserisci gli indirizzi DNS di NordVPN. Gli indirizzi
sono: 103.86.96.100 e 103.86.99.100.
-
Vai alla scheda Resolv and Hosts Files, seleziona la
casella Ignore resolve file e clicca sul pulsante
Save & Apply.
- Torna alla scheda VPN > OpenVPN.
-
Nella sezione OpenVPN instances, seleziona Enable
accanto all'opzione NordVPN nell'elenco e clicca sul pulsante
Save & Apply.
- Clicca di nuovo sul pulsante Start per connetterti al server VPN.
Istruzioni per CLI
Se invece cerchi un tutorial più avanzato, segui questa guida. Per beneficiare dei vantaggi di una VPN su OpenWrt, devi avere a disposizione un router con firmware OpenWrt e un client OpenVPN abilitato. La pagina principale del firmware è https://openwrt.org/.
- Per prima cosa, devi essere in grado di accedere al router tramite l'SSH utilizzando il suo indirizzo IP LAN. Per impostazione predefinita, l'indirizzo IP è 192.168.1.1 e il nome utente è root; se però avevi modificato uno dei valori predefiniti, l'indirizzo IP potrebbe essere diverso.
-
Il router non include il pacchetto OpenVPN nell'immagine del firmware
per impostazione predefinita. Per installarlo, esegui i seguenti
comandi:
Puoi inoltre installare il componente LuCI della configurazione OpenVPN; questa opzione, tuttavia, è facoltativa. Puoi farlo eseguendo questo comando:opkg update opkg install openvpn-openssl opkg install ip-fullopkg install luci-app-openvpn -
Dopo aver installato il pacchetto OpenVPN, puoi impostarne l'avvio
automatico ogni volta che il router si accende eseguendo questo comando:
/etc/init.d/openvpn enable -
Ora dovrai scaricare i file di configurazione del server. Per farlo,
segui questi passaggi:
-
Accedi al tuo
Nord-Account
e clicca su NordVPN.
-
Scorri verso il basso fino alla sezione
Impostazioni avanzate e clicca su
Configura NordVPN manualmente.
-
Seleziona la scheda Raccomandazione server. Il
nostro algoritmo ti consiglierà il server migliore in base al luogo
in cui ti trovi.
-
Premendo Filtri avanzati, puoi personalizzare i
server consigliati selezionando il Tipo di server e
il Protocollo di sicurezza.
Se desideri selezionare un server specifico, segui questi passaggi:
-
Nella sezione Configura NordVPN manualmente,
scegli File di configurazione OpenVPN.
-
Puoi trovare il server a cui desideri connetterti utilizzando la
barra Cerca o scorrendo verso il basso.
Dopodiché, puoi scaricare i file cliccando su
Scarica UDP o Scarica TCP.
-
Nella sezione Configura NordVPN manualmente,
scegli File di configurazione OpenVPN.
-
Accedi al tuo
Nord-Account
e clicca su NordVPN.
-
In questa guida usiamo a titolo di esempio il
server uk2054.nordvpn.com, ma nel tuo caso
dovresti connetterti al server suggerito dal sito web. Per scaricare il
file di un server, seleziona il Paese al quale desideri connetterti,
clicca su "Mostra protocolli disponibili", clicca con il tasto destro su
"Scarica configurazione" per "OpenVPN TCP" o "OpenVPN UDP" e scegli
"Copia link". Dopodiché, torna alla sessione SSH ed esegui il seguente
comando:
Ricorda però di inserire, nel comando, il link al file del server specifico che hai appena copiato. Questo comando scaricherà il file di configurazione nella directory /etc/openvpn per un facile accesso. In alternativa puoi scaricare il file di configurazione del server su una macchina diversa e trasferirlo sul router OpenWrt usando vari metodi, come i protocolli SCP o SFTP. Per le build OpenWrt meno recenti:wget -P /etc/openvpn https://downloads.nordcdn.com/configs/files/ovpn\_udp/servers/uk2054.nordvpn.com.udp.ovpn
Ti basterà scaricare un archivio qui https://downloads.nordcdn.com/configs/archives/certificates/servers.zip. Nell'archivio scaricato troverai i file corrispondenti con estensioni .crt e .key. I file sono specifici per ciascun server VPN. -
La configurazione OpenVPN per NordVPN richiede di inserire le
credenziali del servizio NordVPN, nome utente e password, a ogni avvio
di OpenVPN; apporteremo tuttavia alcune modifiche per fornire
automaticamente le credenziali. Innanzitutto, per semplificare il
processo, installeremo l'editor di
testo nano eseguendo il seguente comando:
In alternativa, puoi usare l'editor di testo integrato vi. Per ulteriori informazioni sugli editor di testo, consulta questo articolo. Ora apri il file di configurazione del server scaricato utilizzando l'editor di testo nano. Nel nostro caso, il comando sarà:opkg install nano
Dopodiché, aggiungi la parola "secret" (senza virgolette) alla stringa "auth-user-pass". La riga risultante sarà quindi:nano /etc/openvpn/uk2054.nordvpn.com.udp.ovpn
Devi creare un nuovo file secret nel quale conservare le credenziali del servizio NordVPN. Per farlo, esegui il seguente comando:auth-user-pass secret
Così facendo, verrà creato il nuovo file che si aprirà usando l'editor di testo nano. Nella prima riga del file inserisci il tuo nome utente del servizio NordVPN e, nella seconda, la relativa password. Puoi trovare le tue credenziali del servizio NordVPN (nome utente e password) nella dashboard del Nord-Account.nano /etc/openvpn/secret -
Configura OpenVPN utilizzando il file di configurazione scaricato in uno
dei due modi:
-
Modifica l'estensione del file
da .ovpn a .conf,
per consentire a OpenVPN di trovarlo automaticamente tramite la sua
estensione. Per farlo, puoi usare il
comando mv:
mv /etc/openvpn/uk2054.nordvpn.com.udp.ovpn /etc/openvpn/uk2054.nordvpn.com.udp.conf -
Specifica il nome del file in "/etc/config/openvpn" usando i
seguenti comandi "uci":
Dopodiché, il file "/etc/config/openvpn" dovrebbe contenere le seguenti stringhe aggiunte:uci set openvpn.nordvpn=openvpn uci set openvpn.nordvpn.enabled='1' uci set openvpn.nordvpn.config='/etc/openvpn/uk2054.nordvpn.com.udp.ovpn' uci commit openvpn
Puoi verificarlo eseguendo questo comando:config openvpn 'nordvpn' option enabled '1' option config '/etc/openvpn/uk2054.nordvpn.com.udp.ovpn'
Puoi anche modificare l'estensione del file da .ovpn a .conf e specificarlo in "file/etc/config/openvpn"; tuttavia, in questo caso, OpenVPN si avvierà con questo file di configurazione solo una volta.tail /etc/config/openvpn
-
Modifica l'estensione del file
da .ovpn a .conf,
per consentire a OpenVPN di trovarlo automaticamente tramite la sua
estensione. Per farlo, puoi usare il
comando mv:
-
Crea una nuova interfaccia di rete eseguendo i seguenti comandi:
A questo punto, il file "/etc/config/network" conterrà le seguenti stringhe aggiunte:uci set network.nordvpntun=interface uci set network.nordvpntun.proto='none' uci set network.nordvpntun.ifname='tun0' uci commit network
Puoi verificarlo eseguendo questo comando:config interface 'nordvpntun' option proto 'none' option ifname 'tun0'tail /etc/config/network -
Crea una nuova area firewall e aggiungi una regola di inoltro dalla LAN
alla VPN eseguendo i seguenti comandi:
Se l'operazione è stata eseguita correttamente, il file "/etc/config/firewall" dovrebbe contenere le seguenti stringhe aggiunte:uci add firewall zone uci set firewall.@zone\[-1\].name='vpnfirewall' uci set firewall.@zone\[-1\].input='REJECT' uci set firewall.@zone\[-1\].output='ACCEPT' uci set firewall.@zone\[-1\].forward='REJECT' uci set firewall.@zone\[-1\].masq='1' uci set firewall.@zone\[-1\].mtu\_fix='1' uci add\_list firewall.@zone\[-1\].network='nordvpntun' uci add firewall forwarding uci set firewall.@forwarding\[-1\].src='lan' uci set firewall.@forwarding\[-1\].dest='vpnfirewall' uci commit firewall
Puoi verificarlo eseguendo questo comando:config zone option name 'vpnfirewall' option input 'REJECT' option output 'ACCEPT' option forward 'REJECT' option masq '1' option mtu\_fix '1' list network 'nordvpntun' config forwarding option src 'lan' option dest 'vpnfirewall'
Il comando mostrerà le ultime 13 righe, contenenti le stringhe riportate sopra.tail -13 /etc/config/firewall -
Ora devi configurare i server DNS. Il modo più semplice per farlo
consiste nell'usare il DNS di NordVPN per l'interfaccia WAN del router.
Per aggiungere il DNS di NordVPN, esegui i seguenti comandi:```` uci set
network.wan.peerdns='0'
uci del network.wan.dns
uci add_list network.wan.dns='103.86.96.100'
uci add_list network.wan.dns='103.86.99.100'
uci commit ```ATTENZIONE: se dovesse apparire il messaggio di errore "__uci: Entry not found__" dopo aver eseguito il comando_ _uci del network.wan.dns_, puoi ignorarlo._ Il file "/etc/config/network" dovrebbe contenere la sezione "wan" con l'aggiunta di tre stringhe alla fine: ``` config interface 'wan' <...> option peerdns '0' list dns '103.86.96.100' list dns '103.86.99.100' ``` Puoi verificarlo eseguendo questo comando e controllando l'interfaccia "wan" nell'output: ``` cat /etc/config/network ``` Puoi anche aggiungere indirizzi DNS diversi, come quelli di Google, eseguendo questi comandi: ``` uci set network.wan.peerdns='0' uci del network.wan.dns uci add\_list network.wan.dns='8.8.8.8' uci add\_list network.wan.dns='8.8.4.4' uci commit ``` Le stringhe aggiunte dovrebbero essere simili alle precedenti.
(Facoltativo) Kill Switch per OpenWrt 22.02 o build precedenti (iptables)
Per evitare perdite di traffico in caso di disconnessione del tunnel VPN, segui questi passaggi:
-
Apri il file del firewall usando un editor di testo:
sudo nano /etc/firewall.user -
Aggiungi quanto segue:
\# Questo file viene interpretato come uno script di shell. \# Inserisci qui le tue regole iptables personalizzate, che verranno eseguite in occasione di ogni (ri)avvio del firewall \# Le catene interne del firewall uci vengono svuotate e ricreate al riavvio, quindi \# inserisci le regole personalizzate nelle catene radice, ad esempio INPUT o FORWARD, o nelle \# catene utente speciali, ad esempio input\_wan\_rule o postrouting\_lan\_rule. if (! ip a s tun0 up) && (! iptables -C forwarding\_rule -j REJECT); then iptables -I forwarding\_rule -j REJECT fi -
Crea un file col nome "99-prevent-leak" nella cartella
"/etc/hotplug.d/iface" eseguendo questo comando:
nano /etc/hotplug.d/iface/99-prevent-leak -
Aggiungi il seguente contenuto allo script:
#!/bin/sh if \[ "$ACTION" = ifup \] && (ip a s tun0 up) && (iptables -C forwarding\_rule -j REJECT); then iptables -D forwarding\_rule -j REJECT fi if \[ "$ACTION" = ifdown \] && (! ip a s tun0 up) && (! iptables -C forwarding\_rule -j REJECT); then iptables -I forwarding\_rule -j REJECT fi
(Facoltativo) Kill Switch per OpenWrt 22.03 o build successive (nftables)
Segui questi passaggi per evitare perdite di traffico se il tunnel VPN non dovesse funzionare.
-
Modifica il file delle regole personalizzate per il firewall:
sudo nano /etc/firewall.user -
Scrivi questa funzione:
\# quando l'interfaccia tun0 non è attiva e all'interno di nftables non esiste una catena chiamata "forwarding\_rule", esegui quanto segue. if (! ip a s tun0 up) && (! nft list chain inet fw4 forwarding\_rule; then \# aggiungi una nuova catena chiamata forwarding\_rule nft add chain inet fw4 forwarding\_rule \# aggiungi una regola nella catena forward per saltare alla catena forwarding\_rule nft add rule inet fw4 forward jump forwarding\_rule \# aggiungi una regola nella catena forward\_rule per rifiutare tutto il traffico nft add rule inet fw4 forwarding\_rule reject fi -
A questo punto, dovrai creare uno script hotplug per attivare
automaticamente il Kill Switch:
sudo nano /etc/hotplug.d/iface/99-prevent-leak -
Scrivi il seguente contenuto nello script:
#!/bin/sh \# se viene attivata l'azione ifup, l'interfaccia tun0 è attiva e la catena nftables "forwarding\_rule" contiene il testo "reject", svuota questa catena per consentire il traffico. if \[ "$ACTION" = ifup \] && (ip a s tun0 up) && (nft list chain inet fw4 forwarding\_rule | grep -q 'reject'); then nft flush chain inet fw4 forwarding\_rule fi \# se viene attivata l'azione ifdown, l'interfaccia tun0 non è attiva e la catena nftables "forwarding\_rule" non contiene il testo "reject", aggiungi una regola a questa catena per rifiutare tutto il traffico. if \[ "$ACTION" = ifdown \] && (! ip a s tun0 up) && (! nft list chain inet fw4 forwarding\_rule | grep -q 'reject'); then nft add rule inet fw4 forwarding\_rule reject fi
Script di riconnessione automatica
Talvolta la connessione OpenVPN può subire un arresto anomalo riportando un messaggio di avviso simile a "Couldn't resolve host…". In questi casi il tunnel VPN rimane attivo, ma la connessione si interrompe. Per creare uno script che effettui la riconnessione automatica, segui questi passaggi:
-
Apri il file "/etc/rc.local" usando un editor di testo:
sudo nano /etc/rc.local -
Aggiungi questa riga:
/etc/openvpn/reconnect.sh & -
Crea il file "reconnect.sh" nella directory "/etc/openvpn" eseguendo
questo comando:
sudo nano /etc/openvpn/reconnect.sh -
Nel file, inserisci i seguenti contenuti dello script:
#!/bin/sh n=10 while sleep 50; do t=$(ping -c $n 8.8.8.8 | grep -o -E '\[0-9\]+ packets r' | grep -o -E '\[0-9\]+') if \[ "$t" -eq 0 \]; then /etc/init.d/openvpn restart fi done
Stato della connessione
Dopo aver seguito queste istruzioni, il router dovrebbe connettersi utilizzando la connessione configurata. Per verificare se la procedura è andata a buon fine, vai alla homepage di NordVPN: nella parte superiore della pagina dovresti vedere lo stato "Protetto".
Se vuoi interrompere la connessione VPN, clicca sul pulsante Stop accanto all'opzione NordVPN nella sezione VPN > OpenVPN > OpenVPN instances se hai seguito i passaggi relativi alla GUI. Se invece desideri disconnettere la connessione VPN, esegui il seguente comando:
service openvpn stop