AlcaLabs

[[projects:openwrt:config]]

Traccia: » Configurare OpenWrt

Ti trovi qui: Alca Labs » projects » openwrt » Configurare OpenWrt

Login

Non sei ancora collegato! Inserisci il tuo nome utente e la tua password per autenticarti. E' necessario che il tuo browser abbia i cookie abilitati.

Entra

Hai dimenticato la password? Richiedine una nuova: Invia nuova password

Configurare OpenWrt

L'installazione di OpenWrt sulla propria routerboard è andata a buon fine? Allora si può procedere con la configurazione! 8-)

:!: La prima volta che si avvia la routerboard con una nuova installazione di OpenWrt è necessario cambiare la password di root!

Boot e servizi

Tralasciando l'analisi della sequenza completa del boot (che si può trovare descritta qui), basti sapere che è lo script /etc/init.d/rcS ad occuparsi dell'avvio dei servizi.

Gli script dei servizi si trovano nella directory /etc/init.d. Essi sono replicati come link all'interno di /etc/rc.d, dove appaiono secondo le convenzioni di SysVInit.

Il formato del nome dello script in /etc/rc.d è X##xxxxxx:

  • X può essere S come start o K come kill
  • ## è il numero di sequenza (da 00 a 99) che indica la priorità di esecuzione dello script e compare con le variabili START=## e STOP=## all'interno dello script
  • xxxxxx è il nome dello script così come appare in /etc/init.d

All'avvio, rcS esegue i servizi che del tipo S##xxxxxx con l'opzione start e allo spegnimento quelli del tipo K##xxxxxx, con l'opzione stop.

Alcuni file di supporto sono richiamati spesso all'interno degli script. I più importanti sono:

  • /etc/functions.sh, che è una collezione di funzioni e variabili comuni a più script
  • /lib/config/uci.sh, che consente di manipolare in maniera semplice i file di configurazione secondo UCI (FIXME aggiungere riferimenti)
  • /etc/rc.common, che contiene delle funzioni di uso comune nelle fasi di avvio o spegnimento dei servizi. ovviamente include /etc/functions.sh.

Il file /etc/rc.common contiene delle funzioni astratte (dei segnaposto), implementate poi dagli script che hanno bisogno di queste funzionalità:

  • boot()
  • depends()
  • reload()
  • restart()
  • shutdown()
  • start()
  • stop()

Le funzioni invece già definite sono:

  • disable(), che elimina il link in /etc/rc.d del servizio contenuto in /etc/init.d
  • enable(), che al contrario di disable, crea il link in /etc/rc.d del servizio contenuto in /etc/init.d
  • enabled(), che verifica che il link in /etc/rc.d sia eseguibile
  • help(), che mostra la lista delle possibili chiamate a funzione per lo script di inizializzazione

Tali funzioni sono le operazioni che possono essere definite per uno script. Esse diventano il comando che si passa allo script:

$ /etc/init.d/nome_script funzione

Ad esempio per avere la lista delle operazioni disponibili per uno script si esegue:

$ /etc/init.d/dropbear help

Attivazione/Disattivazione dei servizi

  • START: avvia il servizio
$ /etc/init.d/nome_script start
  • STOP: ferma il servizio
$ /etc/init.d/nome_script stop
  • ENABLE: include il servizio tra quelli avviati al boot
$ /etc/init.d/nome_script enable
  • DISABLE: esclude il servizio da quelli avviati al boot
$ /etc/init.d/nome_script disable

File di configurazione

La configurazione è nella directory /etc/config. Ad ogni servizio corrisponde un diverso file, ad esempio:

  • fstab
  • system
  • network
  • firewall
  • wireless
  • dhcp

La sintassi è la seguente:

config       [""]      # Section    option   ""       # Option

Hostname

L'hostname si definisce in /etc/config/system:

config system
        option hostname routerboard

Rete e VLAN

La rete e le vlan sono definite in /etc/config/network.

Ad esempio per un IP statico su eth0:

config interface     "lan"
      option ifname    "eth0"
      option proto     "static"
      option ipaddr    "192.168.1.1"
      option netmask   "255.255.255.0"
      option gateway   "192.168.1.254"
      option dns       "192.168.1.254"
      option domain    "local.net"

Nel caso di dispositivi che integrano uno switch che gestisce le vlan:

config switch       "eth0"
      option vlan0    "1 2 3 5*"
      option vlan1    "0 5"
      option vlan2    "4 5"

Altre info qui.

Wireless

La configurazione del WiFi è in /etc/config/wireless. Ovviamente potrebbe essere necessario del software come wpa_suppliant per attivare queste configurazioni. Esempio:

config wifi-device      wlan0
        option type     broadcom
        option channel  5
        option disabled 1
config wifi-iface
        option device   wlan0
        option mode     ap
        option ssid     OpenWrt
        option hidden   0
        option encryption none

Altre info qui

Packet manager

La configurazione del packate mangager è in /etc/opkg.conf FIXME (aggiungere esempio funzioante) Un esempio:

src snapshots http://www.personaltelco.net/~russell/openwrt/2.4-r6348
dest root /
dest ram /tmp

Firewall

La configurazione di default accetta tutto il traffico su LAN ma blocca quello WAN sulle porte non usate per connessioni o NAT.

Per aprire una porta ad un servizio, aggiungere la regola di esempio:

config rule
        option src              wan
        option dest_port        22
        option target           ACCEPT
        option protocol         tcp

Le regole secondo lo standard iptables possono essere specificate in un file esterno ed incluse nella configurazione del firewall:

config include
       option path /etc/firewall.user

Atre info qui

Riferimenti