OpenWrt WRT54GL
Come liberare il router dal firmware proprietario
OpenWrt è il firmware interno per dispositivi embedded utilizzato per la gestione del traffico. Nel nostro caso utilizzeremo OpenWRT dentro un router domestico, effettuando un test hardware per il Cisco Linksys Wireless-G Broadband Router WRT54GL v1.1.
OpenWrt è Linux based e include un kernel Linux come i BusyBox. Ha all'interno un gestore di pacchetti chiamato opkg (simile al pacchetto apt di ubuntu).
Prima di installare OpenWrt nel router, è necessario sapere se il device è compatibile con OpenWrt, per saperlo con certezza è necessario vedere se è compreso nella Tabella degli hardware di OpenWrt.
Specifiche Hardware
Prima di esplorare OpenWrt, Andiamo a conoscere quale sia l'hardware a disposizione nella nostra device:
- CPU: Broadcom BCM5352 @ 200 MHz
- RAM: 16 MB
- Memoria Flash: 4 MB
CONTROLLO VELOCE - per essere sicuri che l'hardware contenuto sia esatto, possiamo controllarlo leggendo il prefisso del numero di serie, utilizzando queste informazioni.
Questo hardware viene supportato completamente da OpenWrt, ma ci sono alcuni limiti dovuti al tipo di memoria flash:
- http://wiki.openwrt.org/toh/linksys/wrt54g#hardware
- - https://forum.openwrt.org/viewtopic.php?id=28223
La soluzione per questo caso, è ben documentata. Deve venir utilizzato il firmware OpenWrt 8.09 r14511 (nome in codice "kamikaze") al posto della versione upgradate di OpenWrt 10.03.1-rc6 (nome in codice "backfire")
Scaricare la versione corretta del firmware
Per installare OpenWrt, prima cosa da fare è andare a vedere la parte web dedicata al modello Linksys. Torviamo molte versioni disponibili di OpenWrt, ma per trovare la versione corretta dobbiamo cercare:
- La versione OpenWrt è Kamilaze, con qualche bug in backfire e qualche instabilità nelle adattamenti di attitude
- La versione raccomandata è la 8.09 con Kamilaze
- La CPU è broadcom con il prefisso bcrm
In questo link, vediamo il supporto sia per brcm-2.4 che per la brcm47xx
La differenza tra la versione brcm-2.4 e brcm47xx viene spiegata qui
Per ognuna, possiamo scaricare il file immagine, che termina con l'estensione .bin
Se sono disponibili sia i file JFFS2 che SquashFS, è preferibile utilizzare l'immagine SquashFS
Andiamo a vedere lo storico della versione per determinare se la versione 8.09 è la migliore e e quali siano le differenze nelle versioni kamikaze, backfire e le configurazioni attitude
L'immagine utilizzata per il test è: http://downloads.openwrt.org/kamikaze/8.09/brcm-2.4/openwrt-wrt54g-squashfs.bin
Installazione
- Passo 1: Scaricare http://downloads.openwrt.org/kamikaze/8.09/brcm-2.4/openwrt-wrt54g-squashfs.bin to nella propria cartella di Downloads
- Passo 2: Alimentare il router e connettere il computer via ethernet (usare la porta 1, NON la poerta internet)
- Passo 3: Avviare il browser e connettere http://192.168.1.1; fate il login
- Passo 4: Navigate su Amministrazione > Aggiornamento firmware, selezionate il file openwrt-wrt54g-squashfs.bin e aggiornate
TUTTO DOVREBBE ANDARE PER IL MEGLIO :) Attendente pazientemente il termine della procedura di aggiornamento!
Connessione via intefaccia web
Direttamente dal browser, puntate su http://192.168.1.1, fate il login e verrà visualizzata l'interfaccia web luci
Connessione via Telnet
Il router aggiornato, può essere conattato via Telnet all'indirizzo 192.168.1.1. Per testare questa possibilità, aprite unterminale e digitate:
$ telnet 192.168.1.1
Questo vi farà conoscere KAMIKAZE :)
Ora assicuratevi che il servizio tftp sia disponibile per prevenire il bricking, digitate:
$ nvram set boot_wait=on $ nvram set boot_time=10 $ nvram commit && reboot
Comuinicazione via SSH
Configurazione
The network configuration is stored in /etc/config/network. The initial contents of this file for our set up is:
The content of the initial configuration file is
#### VLAN configuration
config switch eth0
option vlan0 "0 1 2 3 5*" option vlan1 "4 5"
- Loopback configuration
config interface loopback
option ifname "lo" option proto static option ipaddr 127.0.0.1 option netmask 255.0.0.0
- LAN configuration
config interface lan
option type bridge option ifname "eth0.0" option proto static option ipaddr 192.168.1.1 option netmask 255.255.255.0
- WAN configuration
config interface wan
option ifname "eth0.1" option proto dhcp
Once we have edited this file, to make the new configuration take after we need to :
$ /etc/init.d/network restart
SWITCH
The switch section of the above configuration file is responsible for making one peoice of hardware, appear as several independent interfaces. The part of the configuration file which specifies the switch characteristics is:
#### VLAN configuration
config switch eth0
option vlan0 "0 1 2 3 5*" option vlan1 "4 5"
In the above configuration: The numbers 0-5 represent the port numbers, so VLAN0 includes ports 0 to 5* and VLAN1 includes ports 4 and 5. The * in 5*
indicates the PVID.