Tunnel OpenVPN personalizzato#
Questa guida spiega come configurare un client OpenVPN su NethSecurity utilizzando un file di configurazione (myvpn.ovpn) fornito da un provider di servizi VPN. La configurazione garantisce che la VPN si avvii automaticamente all’avvio del firewall.
Prerequisiti#
Un file di configurazione OpenVPN valido (myvpn.ovpn) fornito dal proprio provider VPN.
Accesso al terminale NethSecurity tramite SSH.
Familiarità di base con il sistema UCI (Unified Configuration Interface) in OpenWrt/NethSecurity.
Note aggiuntive sulla configurazione della CLI#
Questa procedura non include alcuna validazione dei dati inseriti. Pertanto, è destinata a essere eseguita da utenti avanzati che hanno familiarità con l’ambiente NethSecurity e le configurazioni di OpenVPN.
La VPN creata utilizzando questo metodo non apparirà nell’interfaccia web di NethSecurity e potrà essere gestita solo tramite l’interfaccia a riga di comando (CLI).
È fondamentale evitare di utilizzare lo stesso nome per una VPN creata tramite CLI e una configurata attraverso l’interfaccia web di NethSecurity. Poiché non sono presenti meccanismi di protezione per prevenire conflitti di denominazione, tale sovrapposizione potrebbe causare problemi di configurazione.
Per questi motivi, si raccomanda vivamente cautela e attenzione ai dettagli durante l’esecuzione di questa procedura.
Configurare la VPN#
1. Posizionare il file di configurazione nella directory corretta#
Copiare il file
myvpn.ovpnnella directory/etc/openvpn/. Utilizzare SCP o uno strumento simile per trasferire il file:scp myvpn.ovpn root@<NethSecurity_IP>:/etc/openvpn/
Assicurarsi di impostare i permessi corretti per il file:
chmod 644 /etc/openvpn/myvpn.ovpn chown root:root /etc/openvpn/myvpn.ovpn
2. Creare una nuova configurazione client OpenVPN in UCI#
Aggiungere una nuova sezione OpenVPN nel database UCI chiamata
myvpn, collegare il file di configurazione a questa sezione e abilitare la VPNuci add openvpn openvpn uci rename openvpn.@openvpn[-1]='myvpn' uci set openvpn.myvpn.enabled='1' uci set openvpn.myvpn.config='/etc/openvpn/myvpn.ovpn'
Eseguire il commit delle modifiche per salvare la configurazione:
uci commit openvpn
3. Avviare immediatamente il client VPN#
Per avviare il client VPN senza riavviare il sistema, eseguire:
/etc/init.d/openvpn restart
Questo riavvierà tutti i tunnel OpenVPN configurati.
4. Verificare che la VPN sia in esecuzione#
Per assicurarsi che OpenVPN stia utilizzando il file di configurazione corretto e stia funzionando come previsto, verificare i processi attivi:
ps -ef | grep myvpn
L’output dovrebbe essere simile al seguente (nome di configurazione di esempio myvpn):
4913 ? S 0:00 /usr/sbin/openvpn --syslog openvpn(myvpn) --status /var/run/openvpn.myvpn.status --cd /etc/openvpn --config myvpn.ovpn --up /usr/libexec/openvpn-hotplug up myvpn --down /usr/libexec/openvpn-hotplug down myvpn --route-up /usr/libexec/openvpn-hotplug route-up myvpn --route-pre-down /usr/libexec/openvpn-hotplug route-pre-down myvpn --script-security 2
Confermare che il parametro --config punti al file di configurazione corretto (ad esempio, myvpn.ovpn). Assicurarsi che tutti i riferimenti (ad esempio, myvpn) corrispondano alla configurazione VPN desiderata.
Controllare i log di OpenVPN per confermare la connessione:
tail -f /var/log/messages | grep openvpn
Dovrebbero comparire voci di log che indicano una connessione riuscita.
Nota
Coerenza del nome del file: Il nome della configurazione
myvpndeve corrispondere al nome della sezione OpenVPN in UCI e alla posizione del file di configurazione. Se si modifica il nome, assicurarsi che tutti i riferimenti amyvpnnei comandi e nei nomi dei file siano aggiornati.Avvio automatico: Impostando
enabled='1', il client VPN si avvierà automaticamente ogni volta che il firewall viene avviato.
Configurare le credenziali di autenticazione (opzionale)#
Se la VPN richiede un nome utente e una password, creare un file di autenticazione.
Creare un file denominato
/etc/openvpn/myvpn.auth(sostituiremyvpncon il nome della VPN se diverso):vi /etc/openvpn/myvpn.auth
Aggiungere il seguente contenuto, sostituendo
frankefrank_passwordcon il proprio nome utente e la propria password:frank frank_password
Salvare e impostare i permessi corretti:
chmod 600 /etc/openvpn/myvpn.auth chown root:root /etc/openvpn/myvpn.auth
Aggiornare il file di configurazione OpenVPN (
myvpn.ovpn) per fare riferimento al file di autenticazione.echo "auth-user-pass /etc/openvpn/myvpn.auth" >> /etc/openvpn/myvpn.ovpn
Nota
File di autenticazione: quando si utilizza un file di autenticazione, assicurarsi che abbia permessi restrittivi (600) per proteggere le informazioni sensibili.
Configurare il firewall per consentire il traffico per la VPN#
Per abilitare il traffico attraverso la VPN, è necessario configurare il firewall su NethSecurity. La pratica consigliata è assegnare un nome dispositivo fisso alla VPN, creare una zona dedicata per la VPN personalizzata e associare il dispositivo VPN a quella zona.
1. Correggere il nome del dispositivo VPN#
Per garantire che il nome del dispositivo VPN rimanga coerente ed evitare l’assegnazione automatica, è fondamentale fissare il nome nel file di configurazione di OpenVPN. Modificare il file (/etc/openvpn/myvpn.ovpn) per cambiare dev tun in dev tunmyvpn e aggiungere la seguente riga (questo esempio è realizzato con una VPN routed):
dev-type tun
Avvertimento
Si ricorda che il nome dell’interfaccia (indicato come tunmyvpn nell’esempio) non deve superare i 13 caratteri.
2. Creare una zona firewall#
Dall’interfaccia utente di NethSecurity, creare una nuova zona firewall denominata myzone. Configurare questa zona per consentire l’accesso alle risorse necessarie.
3. Associare il dispositivo VPN alla zona#
Per associare il dispositivo VPN alla zona firewall myzone, eseguire i seguenti passaggi dalla riga di comando:
Aggiungere il dispositivo VPN (
tunmyvpn) alla zona del firewall:uci add_list firewall.ns_myzone.device=tunmyvpn uci commit firewall
Riavviare il firewall per applicare le modifiche:
/etc/init.d/firewall restart
Queste modifiche garantiscono che il dispositivo VPN venga sempre denominato tunmyvpn, prevenendo potenziali problemi con l’associazione alla zona del firewall.
Disabilitare il tunnel#
Se si desidera impedire l’avvio automatico della VPN all’avvio del firewall, è possibile disabilitarla utilizzando i seguenti comandi.
Disabilitare la VPN in UCI:
uci set openvpn.myvpn.enabled='0' uci commit openvpn
Riavvia tutti i tunnel VPN attivi. Questo comando interromperà tutti i tunnel e riavvierà completamente solo quelli con il valore enabled impostato a 1:
/etc/init.d/openvpn restart