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
Last revisionBoth sides next revision
doc:appunti:linux:openwrt [2023/10/03 06:58] – [OpenVPN] niccolodoc:appunti:linux:openwrt [2023/10/31 08:04] – [OpenVPN] niccolo
Line 4: Line 4:
   * [[http://wiki.openwrt.org/doc/uci|Unified Configuration Interface]]   * [[http://wiki.openwrt.org/doc/uci|Unified Configuration Interface]]
  
-===== Barrier Breaker (Bleeding Edge, r39638) =====+===== File di configurazione =====
  
-  * **''/etc/dropbear/authorized_keys''** +/etc/dropbear/authorized_keys  | Chiavi RSA pubbliche per accesso SSH senza password.  | 
-  * **''/etc/config/system''** +/etc/config/system             | Configurazione hostname, timezone, LED, ecc.   | 
-  * **''/etc/config/network''** +/etc/config/network            | Configurazione interfacce di rete.  | 
-  * **''/etc/config/dhcp''** +/etc/config/dhcp               | Configurazione DHCP, lease statici, ecc.  | 
-  * **''/etc/config/openvpn''** +/etc/config/openvpn            | Configurazione OpenVPN attive.  | 
-  * **''/etc/config/wireless''** +/etc/config/wireless           | Configurazione access point: ESSID, psk, ecc.  | 
-  * **''/etc/rc.d/S90openvpn''** (/etc/init.d/openvpn enable+/etc/rc.d/S90openvpn  | Link creato quando si esegue ''/etc/init.d/openvpn enable''  | 
-  * **''/etc/config/firewall''** +/etc/config/firewall           | Regole firewall.  | 
-  * **''/etc/crontabs/root''**+/etc/crontabs/root             | Cron job eseguiti con privilegi di root.  |
  
 ===== OpenWrt 19.07.6 ===== ===== OpenWrt 19.07.6 =====
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 109: Line 111:
         list device 'tun189'         list device 'tun189'
 </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}}
  
doc/appunti/linux/openwrt.txt · Last modified: 2023/10/31 08:08 by niccolo