User Tools

Site Tools


doc:appunti:linux:openwrt

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:openwrt [2023/10/03 08:01] niccolodoc:appunti:linux:openwrt [2023/10/31 08:08] (current) – [OpenVPN] niccolo
Line 67: Line 67:
 ==== OpenVPN ==== ==== OpenVPN ====
  
-:!: **ATTENZIONE**: Per avere una situazione coerente nell'interfaccia web LuCI si dovrebbe configurare il tunnel OpenVPN nella sezione **Network** => **Interfaces** e quindi aggiungere le regole di firewall nella sezione **Network** => **Firewall**. Tuttavia questo causa un problema grave se viene eseguito un **/etc/init.d/network restart** oppure se viene a mancare momentaneamente la connessione WAN: il demone **[[https://openwrt.org/docs/techref/netifd|netifd]]** trova l'interfaccia configurata con **proto none** e quindi rimuove l'indirizzo IP dal device, il demone OpenVPN non si accorge della situazione e lascia il tunnel attivo, ma senza indirizzo IP (quindi non funzionante). Togliere l'opzione **persist-tun** dalla configurazione OpenVPN mitiga solo in parte il problema perché se l'interruzione della WAN è di breve durata il **ping-restart** non interviene e quindi l'interfaccia resta non funzionante.+:!: **ATTENZIONE**: Per avere una situazione coerente nell'interfaccia web LuCI si dovrebbe configurare il tunnel OpenVPN nella sezione **Network** => **Interfaces** e quindi aggiungere le regole di firewall nella sezione **Network** => **Firewall**. Tuttavia questo causa un problema grave se viene eseguito un **/etc/init.d/network restart** oppure se viene a mancare momentaneamente la connessione WAN: il demone **[[https://openwrt.org/docs/techref/netifd|netifd]]** trova l'interfaccia configurata con **proto none** e quindi rimuove l'indirizzo IP dal device, il demone OpenVPN non si accorge della situazione e lascia il tunnel attivo, ma senza indirizzo IP (quindi non funzionante). Togliere l'opzione **persist-tun** dalla configurazione OpenVPN mitiga solo in parte il problema perché se l'interruzione della WAN è di breve durata il **ping-restart** non interviene e quindi l'interfaccia resta non funzionante. Il problema è descritto nel post **[[https://forum.openwrt.org/t/openvpn-client-tun-adapter-loses-its-ip-address-on-network-restart/13825/|OpenVPN client tun adapter loses its IP address on network restart]]**.
  
-Il problema è descritto nel post **[[https://forum.openwrt.org/t/openvpn-client-tun-adapter-loses-its-ip-address-on-network-restart/13825/|OpenVPN client tun adapter loses its IP address on network restart]]**.+=== Due possibili metodi di configurazione ===
  
-Supponiamo che dal menu LuCI **VPN** => **OpenVPN** si sia configurato un tunnel associato al device **tun3**. In alternativa si può anche agire da riga di comando creando un file di configurazione in **/etc/openvpn/**, senza neanche installare il pacchetto **luci-app-openvpn**. Vediamo nei due paragrafi seguenti come gestire questo device dall'interfaccia web LuCI; il primo metodo è sconsigliato perché causa il problema descritto sopra.+Configurando un tunnel OpenVPN viene creato un //network device// che può essere utilizzato da OpenWRT in due modi diversi. Il primo prevede di creare una //network interface// specifica associata al device, tale interfaccia potrà essere usata a piacere nelle regole di firewall. Il secondo metodo consiste nel creare una //firewall zone// specifica per la VPN che si riferisce direttamente al //network device//, senza utilizzre una //interface//. La prima soluzione sarebbe più coerente con il networking di OpenWRT, ma soffre del problema evidenziato sopra. 
 + 
 +Il prerequisito necessario per entrembi i metodi è creare il tunnel OpenVPN come //network device// assegnandogli un nome, ad esempio **tun3**. Si può agire dal menu LuCI **VPN** => **OpenVPN** oppure in alternativa si può agire da riga di comando creando un file di configurazione in **/etc/openvpn/**, senza neanche installare il pacchetto **luci-app-openvpn**. Vediamo nei due paragrafi seguenti come gestire questo device dalle pagine web LuCI; il primo metodo è sconsigliato perché causa il problema descritto sopra.
  
 === Configurazione completa LuCI (NON consigliata) === === Configurazione completa LuCI (NON consigliata) ===
  
-Da //Network// => //Interfaces// scegliere **Add new interface...**, indicare un nome, ad esempio **vpn3**, protocol **Unmanaged** e quindi scegliere il device **tun3**. Attivare anche l'opzione **Bring on boot**. Questa procedura aggiunge una sezione nel file **/etc/config/network**:+Con questo metodo viene creata una //network interface// associata al //network device// tun3. Da //Network// => //Interfaces// scegliere **Add new interface...**, indicare un nome, ad esempio **vpn3**, protocol **Unmanaged** e quindi scegliere il device **tun3**. Attivare anche l'opzione **Bring on boot**. Questa procedura aggiunge una sezione nel file **/etc/config/network**:
  
 <file> <file>
Line 110: Line 112:
 </file> </file>
  
 +Nelle figure che seguono si mostra la configurazione nelle pagine LuCI di due tunnel OpenVPN **tun3** e **tun189** con il secondo metodo, cioè come semplici //network devices// senza una corrispondente //network interface//
 +
 +=== Menu VPN => OpenVPN ===
 +
 +{{.openwrt:openwrt-22.05-openvpn-openvpn.png?direct&560|Menu VPN  => OpenVPN}}
 +
 +=== Menu Network => Interfaces => Interfaces ===
 +
 +{{.:openwrt:openwrt-22.05-openvpn-interfaces.png?direct&560|Menu Network => Interfaces}}
 +
 +=== Menu Network => Interfaces => Devices ===
 +
 +{{.openwrt:openwrt-22.05-openvpn-interfaces-devices.png?direct&560|Menu Network => Interfaces => Devices}}
 +
 +=== Menu Network => Firewall ===
 +
 +{{.openwrt:openwrt-22.05-openvpn-firewall.png?direct&560|Menu Network => Firewall}}
 +
 +=== Menu Network => Firewall => Zone ===
 +
 +{{.:openwrt:openwrt-22.05-openvpn-firewall-zone.png?direct&560|Menu Network => Firewall => Zone}}
doc/appunti/linux/openwrt.1696312916.txt.gz · Last modified: 2023/10/03 08:01 by niccolo