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 06:05] niccolodoc:appunti:linux:openwrt [2023/10/31 08:08] (current) – [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: Configurando la sezione **Network** => **Interfaces** e **Network** => **Firewall** dall'interfaccia web LuCI ... FIXME+:!: **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 funzionanteIl 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]]**.
  
-**/etc/config/network**+=== Due possibili metodi di configurazione === 
 + 
 +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) === 
 + 
 +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 77: Line 85:
 </file> </file>
  
-**/etc/config/firewall**+Quindi da //Network// => //Firewall// scegliere **Add**, indicare un nome, ad esempio **vpn**, scegliere le policy predefinite e indicare in **Covered networks** l'interfaccia vpn3 creata in precedenza. Questa procedura aggiunge una sezione nel file **/etc/config/firewall**:
  
 <file> <file>
Line 86: Line 94:
         option forward 'ACCEPT'         option forward 'ACCEPT'
         list network 'vpn3'         list network 'vpn3'
-        list network 'vpn189' 
 </file> </file>
  
-Usare l'opzione **device** invece di **network**:+=== Configurazione parziale LuCI (consigliata) === 
 + 
 +In questo caso NON si deve aggiungere l'interfaccia di rete, cioè nel file **/etc/config/network** non deve esserci alcuna sezione relativa al **device tun3**. 
 + 
 +Quindi da //Network// => //Firewall// scegliere **Add**, indicare un nome, ad esempio **vpn** e scegliere le policy predefinite. Lasciare vuoto il campo **Covered networks** e al suo posto indicare in **Advance settings** => **Covered devices** l'Ethernet adapter **tun3** (il servizio OpenVPN deve essere già attivo). Questa procedura aggiunge una sezione al file **/etc/config/firewall**, dove viene usata l'opzione **device** invece di **network** (in questo esempio la zona vpn è stata associata a due tunnel):
  
 <file> <file>
Line 101: 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.1696305949.txt.gz · Last modified: 2023/10/03 06:05 by niccolo