====== La Fonera ======
La Fonera è l'access point wireless su cui si basa l'iniziativa di **[[http://www.fon.com/it/|FON]]**, si tratta di una rete di punti di accesso WiFi con una organizzazione mista comunitaria/commerciale.
Leggete questo **[[http://punto-informatico.it/p.aspx?id=1749773|articolo di Marco Calamari]]** (e quelli che lo hanno preceduto) per un'anlisi dell'aspetto giuridico, tecnico e sociale dell'iniziativa.
Citando l'articolo: //L'hardware WRT è stato sostituito da un hardware dedicato, chiamato Fonera che è sostanzialmente equivalente a livello di sistema, ma non è più accessibile dal suo proprietario, che non può accedervi come amministratore, non può verificarne l'uso e non può controllare l'aggiornamento del software//.
Per quanto mi riguarda condivido abbastanza le idee di Marco, tuttavia ritengo buona una iniziativa che promuove la condivisione del proprio accesso internet su base comunitaria. Inoltre - a patto di riuscire a **liberare la propria Fonera** e a prenderne il controllo, è possibile decidere a quale comunità fare riferimento. Se la sedicente **FON Community** ci dovesse sembrare non più adatta, nessuno ci vieta di puntare La Fonera verso un server radius alternativo e cambiare comunità.
Quindi il mio consiglio è di usare La Fonera, ma solo se si riesce ad hackerarla e a prenderne il controllo. [[http://en.wikiquote.org/wiki/Richard_Stallman|Happy hacking]].
===== Caratteristiche tecniche =====
* CPU: Atheros AR531X Cobra
* Operating System: OpenWRT (basato su OpenWRT Kamikaze)
* Linux Kernel 2.4
* Flash memory: 8 Mb (128 blocks of 64 kb each)
* SDRAM memory: 16 Mb
* Standard di emissione: 802.11b/g
* Produttore [[http://www.accton.com/|Accton]]
This is the **[[la_fonera_boot_log|boot log]]** (and more) from La Fonera.
===== Entrare via ssh =====
La configurazione di fabbrica non prevede che il server ssh sia in esecuzione, inoltre la porta ssh è chiusa con delle regole di firewall. Con un opportuno hack si apre la porta 22 TCP e si avvia il demone ssh [[http://matt.ucc.asn.au/dropbear/dropbear.html|dropbear]]. Avendo una release **0.7.1-1** del firmware ho usato queste [[http://www.zarrelli.org/blog/index.php/2006/11/23/hacking-la-fonera-step-by-step-guide/|istruzioni]] (qui una **[[hacking_la_fonera|copia locale]]**).
Anche in assenza di un DHCP server la Fonera imposta un indirizzp IP **169.254.255.1** su **eth0:1**. Dopo aver aperto il firewall sulla porta 22 ed aver attivato il server dropbear in modo permanente ([[hacking_la_fonera#mantain_ssh_access_after_reboot|qui le istruzioni]]) si può accedere via **ssh**. La password di default per l'utente **root** è **admin**:
# ssh root@169.254.255.1
root@169.254.255.1's password: admin
BusyBox v1.1.3 (2006.11.21-19:49+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
_______ _______ _______
| ____|| || _ |
| ____|| - || | | |
| | |_______||__| |__|
|___|
Fonera Firmware (Version 0.7.1 rev 1) -------------
*
* Based on OpenWrt - http://openwrt.org
* Powered by FON - http://www.fon.com
---------------------------------------------------
root@OpenWrt:~# id
uid=0(root) gid=0(root)
root@OpenWrt:~#
Le eventuali authorized_keys vanno messe in **''/etc/dropbear/authorized_keys''**.
===== Entrare via seriale in RedBoot =====
**[[http://sources.redhat.com/redboot/|RedBoot]]** è il software utilizzato da La Fonera per il bootstrap. Questo dispone anche di un ambiente //command line// utilizzabile per aggiornare il contenuto della memoria flash, per configurare il processo stesso di boot, ecc. Purtroppo pare che il prompt di RedBoot non sia raggiungibile ne La Fonera standard via porta Ethernet; è necessario accedere alla porta seriale integrata ne La Fonera.
{{ .:fonera:fonera_serial.jpg?50}} Per raggiungere la porta seriale bisogna aprire la Fonera togliendo le due viti nascoste dai piedini di gomma, lato led. La seriale è a 3.3 volt quindi c'è bisogno di un adattatore per collegarla al PC, di quelli basati sul chip MAX232. Nella foto c'è la piedinatura della seriale, qui trovate un [[http://itfonblog.wordpress.com/2006/12/29/il-collegamento-seriale-per-la-fonera/|articolo dettagliato]] sulla procedura. La Fonera imposta la seriale a **9600 8N1** senza controllo di flusso, sul PC collegato è possibile utilizzare il programma minicom.
Avviando la Fonera, sulla seriale appare la sequenza di boot che è interrompibile con **Ctrl-C** per arrivare al prompt **RedBoot>**.
In questo esempio viene riconfigurato il processo di boot, in particolare si aumenta la pausa di attesa da 1 a 5 secondi, si configura un indirizzo IP di default (indirizzo IP **utilizzato da RedBoot**, non dal sistema quando La Fonera è avviata!), ecc:
RedBoot> fconfig
Run script at boot: true
Boot script:
.. fis load -l vmlinux.bin.l7
.. exec
Enter script, terminate with empty line
>> fis load -l vmlinux.bin.l7
>> exec
>>
Boot script timeout (1000ms resolution): 10
Use BOOTP for network configuration: false
Gateway IP address:
Local IP address: 169.254.255.1
Local IP address mask: 255.255.0.0
Default server IP address: 169.254.255.46
Console baud rate: 9600
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot>
La configurazione di RedBoot può essere salvata come file binario entrando via ssh su una Fonera avviata normalmente. Anzitutto verificare le **label** delle immagini disponibili e i corrispondenti **device MTD** (memory technology device):
root@OpenWrt:~# cat /proc/mtd
dev: size erasesize name
mtd0: 00030000 00010000 "RedBoot"
mtd1: 006f0000 00010000 "rootfs"
mtd2: 00570000 00010000 "rootfs1"
mtd3: 00010000 00010000 "config"
mtd4: 000b0000 00010000 "vmlinux.bin.l7"
mtd5: 0000f000 00010000 "FIS directory"
mtd6: 00001000 00010000 "RedBoot config"
mtd7: 00010000 00010000 "board_config"
Quindi copiare l'intero block device in un file temporaneo:
root@OpenWrt:~# dd if=/dev/mtdblock/6 of=/tmp/RedBoot_config
Il file ottenuto - che è una copia esatta dell'immagine flash - può essere trasferito via **scp**.
FIXME Come modificare l'immagine entrando via ssh invece che dal prompt RedBoot? Per ogni futura evenienza qui abbiamo i file compressi della configurazione RedBoot originale **{{.:fonera:redboot_config.orig.gz|redboot_config.orig.gz}}**) e di quella modificata - indirizzo IP e altro come riportato sopra **{{.:fonera:redboot_config.gz|redboot_config.gz}}**. Scompattarli prima di usarli.
Qui alcuni appunti su come **[[la_fonera_openwrt|sostituire il firmware]]** de La Fonera.
===== Gestione web =====
Le pagine di gestione web **non rispondono** via **Ethernet** all'indirizzo IP ottenuto via DHCP (eth0), rispondono invece all'indirizzo predefinito **%%http://169.254.255.1/%%**.
L'account/password predefiniti per l'accesso sono **admin**/**admin**.
===== Auto update (la Fonera calling home) =====
In questa [[la_fonera_tcpdump|pagina un'analisi parziale]] di cosa fa La Fonera appena accesa.
Allo scoccare di ogni ora - come previsto da ''/etc/crontabs/root'' - La Fonera esegue lo script
**''/bin/thinclient cron''**. Tramite una connessione ssh invia al server **download.fon.com** alcune informazioni sulla Fonera stessa, preleva lo script **''/tmp/.thinclient.sh''** e lo esegue. Le informazioni inviate sono il MAC address della scheda Ethernet e di quella Wifi, la versione del firmware. Ecco in pratica il comando che esegue lo scambio dati:
echo "mode='cron' wlmac='$WLMAC' mac='$ETMAC' fonrev='$FONREV' firmware='$FIRMWARE'" \
| ssh -T -p 1937 -i /etc/dropbear/key openwrt@download.fon.com \
> /tmp/.thinclient.sh
Grazie all'hack visto in precedenza **lo script ''/tmp/.thinclient.sh'' non verrà eseguito**.
Le azioni che avrebbe eseguito di volta in volta sono **l'aggiornamento del firmware**, la **modifica di alcuni parametri di configurazione**, ecc.
Interessante è la modalità di aggiornamento della configurazione:
- L'utente fonero si collega a www.fon.com da una qualunque connessione internet.
- Effettua il login con le proprie credenziali.
- Imposta nuovi parametri di configurazione del proprio access point Fonera.
- Al successivo "calling home" de La Fonera, questa preleva lo script e lo esegue, rendendo attiva la nuova configurazione.
Qui di seguito alcuni estratti dallo script ''/tmp/.thinclient.sh'' che ho potuto osservare.
==== Download e installazione di un aggiornamento ====
Poiché esiste una versione aggiornata del software, automaticamente viene tentato l'aggiornamento:
cd /tmp
wget http://download.fon.com/firmware/update/0.7.1/1/upgrade.fon
/bin/fonverify /etc/public_fon_rsa_key.der /tmp/upgrade.fon
rm -f /tmp/.thinclient.sh
exit
==== Modifica del portale pubblico ====
Dal portale **www.fon.con**, sezione **Personalize your FON Access Portal**, ho impostato il sito web che voglio rendere accessibile da La Fonera anche agli utenti non autenticati. Dopo qualche minuto La Fonera ha ricevuto la nuova configurazione:
# begin # set /etc/chilli.conf
if [ -L /etc/chilli.conf ]
then
rm -f /etc/chilli.conf
cp /rom/etc/chilli.conf /etc/chilli.conf
echo "uamallowed login.fon.com,88.57.16.26" >> /etc/chilli.conf
else
grep "^uamallowed login.fon.com" /etc/chilli.conf
CHECK=$?
if [ "0" -eq "$CHECK" ]
then
sed -e 's/^uamallowed login.fon.com,.*$/uamallowed \
login.fon.com,88.57.16.26/' /etc/chilli.conf > /tmp/chilli.conf
mv /tmp/chilli.conf /etc/chilli.conf
elif [ "1" -eq "$CHECK" ]
then
echo "uamallowed login.fon.com,88.57.16.26" >> /etc/chilli.conf
fi
fi
killall -HUP chilli
# end
In pratica viene aggiornato il contenuto del file **''/etc/chilli.conf''**.
Se si desidera aggiungere **uno o più siti internet navigabili liberamente** collegandosi alla Fonera senza fare login, bisogna aggiungere una riga al file ''/etc/chilli.conf'' tutte le volte che viene rigenerato dallo script **''/etc/init.d/N50chillispot''**. Ad esempio si aggiunge alla **riga 93**:
cat /etc/chilli.conf.local >> $TMP_C
e si fornisce un file **''/etc/chilli.conf.local''** che contiene:
uamallowed www.beppegrillo.it,it.wikipedia.org,en.wikipedia.org,www.openstreetmap.org
==== Aggiorna la banda condivisa ====
Sempre da www.fon.com, sezione **Configure your FON Social Router**, ho impostato la quantità di banda da condividere con altri foneri, dopo pochi minuti ecco arrivare la nuova configurazione:
# begin # set bandwidth
awk -v cfgfile="/etc/config/qos" \
-v updatestr="hotspot.enabled=1;hotspot.upload=512;hotspot.download=128" \
-f /usr/lib/webif/uci-update.awk -f - > /etc/config/qos.new <
In pratica viene modificato il file **''/etc/config/qos''** nella sezione
config interface hotspot
option classgroup "Default"
option enabled 1
option upload 512
option download 128
option device tun0
==== Change Public and Private SSID ====
The private and public ssid are store into **''/etc/config/fon''**:
# begin # setssidprivate
awk -v cfgfile="/etc/config/fon" -v "updatestr=private.essid=MyPlace" \
-f /usr/lib/webif/uci-update.awk -f - > /etc/config/fon.new < /etc/config/fon.new <
The relevant section into **''/etc/config/fon''**:
config wifi public
option essid 'PIPPO'
config wifi private
option essid 'MyPlace'
option encryption 'wpa'
option wpa_crypto 'tkip'
option password 'mySecret'
# option password $(get_serial)
==== Riconfigura il client RADIUS ====
Riconfigura il client radius utilizzato da Chillispot, la configurazione viene salvata in **''/etc/chilli.conf''**:
# begin setwurl065
/etc/init.d/N50chillispot radconfig
killall -HUP chilli
# end setwurl065
==== Aggiunta di un account locale ====
Gli account locali per l'access point pubblico (sul portale Fon sono chiamati **Amici e Famiglia**) vengono messi nel file **''/etc/localusers''**, sia il nome che la password sono criptati. Dalla **versione 0.7.2** in poi invece gli account vengono messi in **''/etc/config/localusers''** e sono **memorizzati in chiaro**:
version=$(cat /etc/fon_version)
rm -f /etc/localusers
if [ "$version" = "0.7.0" ] || [ "$version" = "0.7.1" ]
then
echo "\$1\$\$O2DI1tGtZpa27q.GYFA791:\$1\$\$m/T7G8T7wTfKprlS15Dwk0" >> /etc/localusers
else
echo "ospite:SuperSecret" >> /etc/config/localusers
fi
killall -HUP chilli > /dev/null 2>&1
==== Structure of a FON archive ====
Questo è uno dei file **{{.:fonera:upgrade.fon.gz|upgrade.fon}}** (19 kb) che La Fonera avrebbe scaricato e installato; la dimensione limitata del file, ma soprattutto i primi 4 byte del file che contengono la stringa **FON4**, identificano il file come un **FON hotfix v2 archive**.
Invece dal sito [[http://www.fon.com/it/download|www.fon.com]] si può scaricare il firmware 0.7.1.2, l'ho copiato qui **{{.:fonera:fonera_0.7.1.2.fon.gz|fonera_0.7.1.2.fon}}** (1.8 Mb), ma non l'ho installato visto che non contiene miglioramenti significativi. I primi 4 byte del file contengono la stringa **FON3**, che lo identifica come **FON reflash v2 archive**.
Entrambi i file sono degli archivi .tar.gz, firmati con chiave rsa e alcune informazioni aggiuntive in testa al file:
A **FON archive** contains the following data:
^ Offset ^ Bytes ^ Contents ^ Note ^
| 0 | 4 | Fon archive type | **FON3** = FON reflash v2 archive, **FON4** = FON hotfix v2 archive |
| 4 | 3 | Offset | Offset of actual data (length of the signature) |
| 7 | $OFFSET | Signature | RSA signature |
| $OFFSET + 7 | To end | Data | Archive in tar gzip format |
The .tar.gz archive is checked against the FON public RSA key with the following command:
foncheckrsa /etc/public_fon_rsa_key.der $SIGNATURE_FILE $TAR_FILE
If the check is successfull, the archive is extracted and the ''**upgrade**'' script contained in it, is executed.
Here it is also the original signed **{{.:fonera:fonera_0.7.1.1.fon.gz|fonera_0.7.1.1.fon}}** firmware. If your firmware cannot be unlocked, you can try to downgrade to 7.1.1 in some way. This is left as an exercise for the reader :-)
Here you can find a simple shell script **[[fon_unpack]]**, which extracts the signature and the .tar.gz archive from a .fon file.
===== Interfacce di rete =====
In condizioni normali di funzionamento queste sono le interfacce di rete attive su La Fonera:
^ Ifname ^ Default IP ^ Note ^
^ ath0 | | Wireless pubblico (ESSID **FON_AP**). Viene attivato solo dopo che ha funzionato l'heartbeat con **download.fon.com**. L'hotspot in realtà funziona sull'interfaccia **tun0**. |
^ ath1 | 192.168.10.1/24 | Wireless privato (ESSID **MyPlace**) protetto da WPA. Sempre attivo. |
^ eth0 | 10.0.1.225/16 | Interfaccia Ethernet, configurata dal server DHCP nel nostro caso. |
^ eth0:1 | 169.254.255.1/16 | Indirizzo alternati vo su Ethernet, sempre attivo. |
^ lo | 127.0.0.1/8 | Indirizzo loopback |
^ tun0 | 192.168.182.1/24 | Viene attivata quando La Fonera ha accesso a internet, è l'interfaccia //uplink// di Chillispot usata per consentire la navigazione tramite l'hotspot pubblico. Su questa interfaccia è attivo un DHCP server per i client dell'hotspot. |
^ wifi0 | | Il contatore RX/TX si incrementa quando c'è traffico sul wireless. |
/------ ath1 (Private WiFi, 192.168.10.1/24, DHCP server)
|
|------ tun0 (Public WiFi, 192.168.182.1/24, DHCP server)
|
|
+--------+
| |
| Fonera |------ eth0 (WAN Internet connection, DHCP client or static address)
| | |
+--------+ \--- eth0:1 (169.254.255.1/16)
===== Configurazione WPA =====
La configurazione WPA è contenuta nel file **''/tmp/hostapd.conf''**:
interface=ath1
driver=madwifi
debug=0
eapol_key_index_workaround=1
wpa=1
wpa_pairwise=TKIP
wpa_passphrase=**********
wpa_group_rekey=3600
==== Collegamento di un client ====
Abbiamo provato come client un **Asus EeePC**, configurando la connessione dal pannello //Connessioni di rete//. Tutto funziona bene impostando i parametri:
^ Modalità | Infrastructure |
^ Canale | Any |
^ Tipo di codifica | WPA |
^ Key | %%*********%% |
^ Metodo di config. | DHCP |
La gestione della chiave WPA viene affidata al programma **wpa_supplicant** e al file di configurazione **''/etc/wpa_supplicant.conf.ath0''**, il cui contenuto è qualcosa del genere:
ctrl_interface=/var/tmp/wpa_supplicant
network={
ssid="MyPlace"
key_mgmt=WPA-PSK
psk=**********************
}
Il significato dei parametri utilizzati sono:
^ ctrl_interface | Socket di controllo per comunicare col programma, usato ad esempio dal programma **''wpa_cli(1)''**. |
^ ssid | [[wp>SSID|SSID]] of the access point to associate to. |
^ key_mgmt | Key management method: WPA-PSK, WPA-EAP, IEEE8021X, NONE. |
^ psk | Pre shared key. |
I comandi che vengono eseguiti dall'interfaccia grafica sono più o meno questi:
wpa_passphrase MyPlace ******** > /etc/wpa_supplicant.conf.ath0
# Add ctrl_interface and key_mgmt to /etc/wpa_supplicant.conf.ath0:
vi /etc/wpa_supplicant.conf.ath0
iwconfig ath0 mode Managed
wpa_supplicant -Bt -i ath0 -c /etc/wpa_supplicant.conf.ath0 -D madwifi -dd
From the ''wpa_supplicant(8)'' man page:
^ -Bt | Be daemon and include timestamp into log. |
^ -i ath0 | Use interface ath0. |
^ -D madwifi | Use madwifi driver. |
^ -dd | Be more verbose. |
===== Problema WPA: EAPOL versione 2 =====
La funzione di access point de La Fonera è gestita dal software **[[http://hostap.epitest.fi/|hostap]]**. Un problema comunemente riscontrato è che la versione di EAPOL ([[wp>Extensible_Authentication_Protocol|Extensible Authentication Protocol]]) annunciata è la 2; molti dei software client (WPA supplicant) implementano solo la versione 1 e non gestiscono correttamente questa situazione, di fatto non riuscendo a stabilire una connessione.
===== Configuration files =====
=== /etc/config/fon ===
Network interface configuration, WiFi configuration, etc. In this excerpt the section relative to the Ethernet interface (called WAN because it connects with the internet) configured with a static IP address:
config network wan
option mode 'static'
option ipaddr '192.168.2.16'
option netmask '255.255.255.0'
option gateway '192.168.2.2'
option dns '192.168.2.2'
Configuring the Fonera for a dynamic (DHCP) IP address we have this configuration file:
config network wan
option mode 'dhcp'
option ipaddr '192.168.2.16'
option netmask '255.255.255.0'
option gateway '192.168.2.2'
option dns '192.168.2.2'
===== Accesso WiFi pubblico =====
La funzione di accesso WiFi pubblico su La Fonera viene gestito tramite il software [[http://www.chillispot.org/|ChilliSpot]]. L'access point con SSID pubblico (nome predefinito **FON_AP**) è aperto a tutti senza protezione, fornisce automaticamente - tramite servizio DHCP - un indirizzo IP, il default gateway e un server DNS a tutti i client WiFi che si associano. Tuttavia ogni servizio viene inibito fino a che il client non ha effettuato login su un server radius. Ogni tentativo di navigazione web viene intercettato e rediretto automaticamente su una apposita pagina web (captive portal) che richiede appunto le credenziali di login.
===== File Download =====
Every archive is compressed with gzip for easy storing in this Wiki. Expand it with ''**gunzip(1)**''.
* **{{.:fonera:upgrade.fon.gz|upgrade.fon}}** Hotfix upgrade to **7.1.2**
* **{{.:fonera:upgrade_0713.fon.gz|upgrade_0713.fon}}** Hotfix upgrade to **7.1.3**
* **{{.:fonera:fonera_0.7.1.1.fon.gz|fonera_0.7.1.1.fon}}** Firmware originale Fon
* **{{.:fonera:fonera_0.7.1.2.fon.gz|fonera_0.7.1.2.fon}}** Firmware originale Fon
* **{{.:fonera:fonera_0.7.1.3.fon.gz|fonera_0.7.1.3.fon}}** Firmware originale Fon (kernel e rootfs)
* **{{.:fonera:fonera_0.7.1.5.fon.gz|fonera_0.7.1.5.fon}}** Firmware originale Fon (solo rootfs)
Additional packages from the **OpenWrt Kamikaze Mips** distribution can be downloaded from:
* **[[http://downloads.openwrt.org/kamikaze/7.09/atheros-2.6/packages/|kamikaze/7.09/atheros-2.6/packages/]]**
* **[[http://downloads.openwrt.org/kamikaze/7.09/packages/mips/|kamikaze/7.09/packages/mips/]]**
here a local copy of some packages I installed:
* **{{.:fonera:wol_0.7.1-2_mips.ipk.gz|wol_0.7.1-2_mips.ipk}}** Wake-on-lan package
* **{{.:fonera:tcpdump_3.9.4-1_mips.ipk.gz|tcpdump_3.9.4-1_mips.ipk}}** Tcpdump
* **{{.:fonera:libpcap_0.9.4-1_mips.ipk.gz|libpcap_0.9.4-1_mips.ipk}}** Library required by tcpdump
* **{{.:fonera:ip_2.6.20-070313-1_mips.ipk.gz|ip_2.6.20-070313-1_mips.ipk}}** show / manipulate routing, devices, policy routing and tunnels
===== Link web =====
==== Haking la Fonera ====
=== Prima puntata ===
* [[http://stefans.datenbruch.de/lafonera/]]
* [[http://www.andreabeggi.net/2006/11/05/hacking-de-la-fonera/]]
* [[http://www.zarrelli.org/blog/index.php/2006/11/06/aprire-ssh-su-la-fonera-senza-aprirla/]]
=== Seconda puntata ===
* [[http://bingobommel.blogspot.com/2006/11/hacking-la-fonera-part-ii.html]]
* [[http://stefans.datenbruch.de/lafonera/#fondue]]
* [[http://www.andreabeggi.net/2006/11/20/hacking-de-la-fonera2/]]
=== Terza puntata ===
* [[http://www.notmart.org/index.php/BlaBla/Hacking_la_fonera..._part_III]]
* [[http://www.zarrelli.org/blog/index.php/2006/11/23/hacking-la-fonera-step-by-step-guide/]]
* [[http://stefans.datenbruch.de/lafonera/#kolofonium]]
=== Altri hack ===
* [[http://www.blogin.it/howtoponte2/index.html|La Fonera come ponte e Access Point]]
==== Altri link ====
* [[http://it.fon.wikia.com/|Fon Italia WIKI]]
* [[http://technet2.microsoft.com/WindowsServer/en/library/370b019f-711f-4d5a-8b1e-4289db0bcafd1033.mspx?mfr=true|How 802.11 Wireless Works]]
* [[http://www.accton.com/products/product_range/21_weap/MR3201A.htm|MR3201A 1 Port Mini Router]], dallo stesso [[http://www.accton.com/index.htm|produttore]] de La Fonera.
* [[http://wiki.ninux.org/moin.cgi/LaFoneraDallaScatolaAOpenWrt|La Fonera: dalla scatola a Open-Wrt]]
* [[http://wiki.ninux.org/moin.cgi/OpenWRTCompile|Cross-compile OpenWrt per La Fonera]]
* **[[http://download.fon.com/firmware/fonera/latest/fonera.tar.bz2|fonera.tar.bz2]]** La Fonera open source code.
* [[http://wiki.openwrt.org/OpenWrtDocs/Hardware/Fon/Fonera|Come installare OpenWrt standard su La Fonera]]