Configurazione di OpenWrt con NordVPN

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.

  1. 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.
  2. Dopo aver effettuato l'accesso, entra nella scheda System e seleziona Software.



  3. Clicca sul pulsante Update lists, attendi il completamento del processo e clicca su Dismiss.
  4. Installa i seguenti pacchetti digitandone il nome nel campo Filter e cliccando su Install….
    1. openvpn-openssl
    2. ip-full
    3. luci-app-openvpn



  5. 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.
  6. 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:
      1. 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.



      2. 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:
        1. Accedi al tuo Nord-Account e clicca su NordVPN.



        2. Scorri verso il basso fino alla sezione Impostazioni avanzate e clicca su Configura NordVPN manualmente.



        3. Seleziona la scheda Raccomandazione server. Il nostro algoritmo ti consiglierà il server migliore in base al luogo in cui ti trovi.



        4. 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:
          1. Nella sezione Configura NordVPN manualmente, scegli File di configurazione OpenVPN.



          2. 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.
  7. 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.



  8. Nella sezione OpenVPN instances, clicca sul pulsante Edit accanto all'istanza che hai appena creato.



  9. 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.
  10. 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


  11. Per connetterti al server VPN, seleziona la casella nella colonna Enabled e poi clicca sul pulsante start accanto all'istanza NordVPN creata.



  12. Clicca sul pulsante Save & Apply in basso.
  13. 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.
  14. 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.



     
    
  15. Clicca su Create interface e Save.
  16. Seleziona la scheda Network in alto e vai alla sezione Firewall.
  17. Clicca sul pulsante Add e modifica le impostazioni come segue:
    1. Assegna il nome "vpnfirewall".
    2. Imposta l'opzione "Input" su "Reject".
    3. Lascia "Output" impostato su "Accept" e "Forward" su "Reject".
    4. Seleziona l'opzione "Masquerading".
    5. Seleziona l'opzione "MSS clamping".
    6. Dal menu a discesa "Covered Networks", scegli "nordvpntun".
    7. Nel menu a discesa "Allow forward from source zones", scegli "lan".
    8. Clicca sul pulsante "Save".



  18. Nella sezione Zones, trova la zona denominata lan e clicca sul pulsante Edit.



     
  19. Nel menu a discesa Allow forward to destination zones, seleziona la voce nordvpntun.



     
  20. Clicca di nuovo su Network nella parte superiore della pagina e poi scegli DHCP and DNS dall'elenco a discesa.
  21. 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.



     
  22. Vai alla scheda Resolv and Hosts Files, seleziona la casella Ignore resolve file e clicca sul pulsante Save & Apply.



     
  23. Torna alla scheda VPN > OpenVPN.
  24. Nella sezione OpenVPN instances, seleziona Enable accanto all'opzione NordVPN nell'elenco e clicca sul pulsante Save & Apply.



  25. 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/.

  1. 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.
  2. Il router non include il pacchetto OpenVPN nell'immagine del firmware per impostazione predefinita. Per installarlo, esegui i seguenti comandi:
    opkg update  
    opkg install openvpn-openssl  
    opkg install ip-full
    
    Puoi inoltre installare il componente LuCI della configurazione OpenVPN; questa opzione, tuttavia, è facoltativa. Puoi farlo eseguendo questo comando:
    opkg install luci-app-openvpn
    
  3. 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
    
  4. Ora dovrai scaricare i file di configurazione del server. Per farlo, segui questi passaggi:
    1. Accedi al tuo Nord-Account e clicca su NordVPN.



    2. Scorri verso il basso fino alla sezione Impostazioni avanzate e clicca su Configura NordVPN manualmente.



    3. Seleziona la scheda Raccomandazione server. Il nostro algoritmo ti consiglierà il server migliore in base al luogo in cui ti trovi.



    4. 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:
      1. Nella sezione Configura NordVPN manualmente, scegli File di configurazione OpenVPN.



      2. 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.



  5. 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:
    wget -P /etc/openvpn https://downloads.nordcdn.com/configs/files/ovpn\_udp/servers/uk2054.nordvpn.com.udp.ovpn
    
    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:
    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.
  6. 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:
    opkg install nano
    
    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à:
    nano /etc/openvpn/uk2054.nordvpn.com.udp.ovpn
    
    Dopodiché, aggiungi la parola "secret" (senza virgolette) alla stringa "auth-user-pass". La riga risultante sarà quindi:
    auth-user-pass secret
    
    Devi creare un nuovo file secret nel quale conservare le credenziali del servizio NordVPN. Per farlo, esegui il seguente comando:
    nano /etc/openvpn/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.
  7. Configura OpenVPN utilizzando il file di configurazione scaricato in uno dei due modi:
    1. 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
      
    2. Specifica il nome del file in "/etc/config/openvpn" usando i seguenti comandi "uci":
      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
      
      Dopodiché, il file "/etc/config/openvpn" dovrebbe contenere le seguenti stringhe aggiunte:
      config openvpn 'nordvpn'  
      option enabled '1'  
      option config '/etc/openvpn/uk2054.nordvpn.com.udp.ovpn'
      
      Puoi verificarlo eseguendo questo comando:
      tail /etc/config/openvpn
      
      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.
  8. Crea una nuova interfaccia di rete eseguendo i seguenti comandi:
    uci set network.nordvpntun=interface  
    uci set network.nordvpntun.proto='none'  
    uci set network.nordvpntun.ifname='tun0'  
    uci commit network
    
    A questo punto, il file "/etc/config/network" conterrà le seguenti stringhe aggiunte:
    config interface 'nordvpntun'  
    option proto 'none'  
    option ifname 'tun0'
    
    Puoi verificarlo eseguendo questo comando:
     tail /etc/config/network 
    
  9. Crea una nuova area firewall e aggiungi una regola di inoltro dalla LAN alla VPN eseguendo i seguenti comandi:
    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
    
    Se l'operazione è stata eseguita correttamente, il file "/etc/config/firewall" dovrebbe contenere le seguenti stringhe aggiunte:
    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'
    
    Puoi verificarlo eseguendo questo comando:
    tail -13 /etc/config/firewall
    
    Il comando mostrerà le ultime 13 righe, contenenti le stringhe riportate sopra.
  10. 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:

  1. Apri il file del firewall usando un editor di testo:
    sudo nano /etc/firewall.user
    
  2. 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
    
  3. 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
    
  4. 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.

  1. Modifica il file delle regole personalizzate per il firewall:
    sudo nano /etc/firewall.user
    
  2. 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
    
  3. A questo punto, dovrai creare uno script hotplug per attivare automaticamente il Kill Switch:
    sudo nano /etc/hotplug.d/iface/99-prevent-leak
    
  4. 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:

  1. Apri il file "/etc/rc.local" usando un editor di testo:
    sudo nano /etc/rc.local
    
  2. Aggiungi questa riga:
    /etc/openvpn/reconnect.sh &
    
  3. Crea il file "reconnect.sh" nella directory "/etc/openvpn" eseguendo questo comando:
    sudo nano /etc/openvpn/reconnect.sh
    
  4. 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
Questo articolo è stato utile?

Hai ancora dei problemi?

  • Chat dal vivo

  • Modulo e-mail

Il funzionamento della chat è basato sui cookie. Avviando la chat, ne accetti l'utilizzo. Scopri di più nella nostra Informativa sui cookie.