Fonera: Unterschied zwischen den Versionen

Aus FunkFeuer Wiki
Wechseln zu: Navigation, Suche
K (FONERA Hacking Part IV by datacop :-): downgrade auf Firmware Version 0.7.0 r4)
(Die Version von FreiFunk (Sven Ola))
 
(45 dazwischenliegende Versionen von 13 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''ACHTUNG, diese Seite ist noch längst nicht ausgereift und soll (erst) nur einen Anhaltspunkt sein'''
+
<google>WIKI</google>
  
 +
=About=
 
Adrian Dabrowski hat auf der Funkfeuer Convention am 24.11.2006 einen Vortrag über Hardware Hacking gehalten, in dem es auch um die Fonera ging. Die Folien kann man hier downloaden:  
 
Adrian Dabrowski hat auf der Funkfeuer Convention am 24.11.2006 einen Vortrag über Hardware Hacking gehalten, in dem es auch um die Fonera ging. Die Folien kann man hier downloaden:  
  
 
http://convention.funkfeuer.at/wp-content/uploads/funkfeuer-convention-hardware-hacking-adrian-dabrowski.pdf
 
http://convention.funkfeuer.at/wp-content/uploads/funkfeuer-convention-hardware-hacking-adrian-dabrowski.pdf
  
=About=
+
 
 +
 
 
Die Fonera ist ein Wlan Router, der von http://www.fon.com verwendet wird, um mit dem Internetzugang anderer Leute Geld zu verdienen.
 
Die Fonera ist ein Wlan Router, der von http://www.fon.com verwendet wird, um mit dem Internetzugang anderer Leute Geld zu verdienen.
  
Die Fonera kostet $/€ 29,95 und ist damit eigendlich recht günstig.
+
Die Fonera kostet € 34,44 und ist damit im Bereich der günstigeren Router
  
  
Zeile 48: Zeile 50:
 
* Low Cost
 
* Low Cost
  
=Hacking=
+
=Flashen=
es gibt 2 wesentliche Methoden, wie man in die Fonera kommt, das Ziel ist aber immer das Gleiche:
+
==Die Version von FreiFunk (Sven Ola)==
 +
'''es wurde bereits eine ausgereifte Version von FreiFunk entwickelt'''
 +
hier zu finden:
  
eine Konsole mit root-Rechten zu erhalten
+
[http://ipkg.funkfeuer.at/freifunk/fonera/ http://ipkg.funkfeuer.at/freifunk/fonera/]  [http://ipkg.funkfeuer.at/freifunk/fonera/README.txt README]
  
Es ist nützlich, sich zuerst die Methoden anzusehen, und dann eine auszuwählen.
+
bzw.
  
beide haben Vor- und Nachteile.
+
[http://download.berlin.freifunk.net/fonera/ http://download.berlin.freifunk.net/fonera/] [http://download.berlin.freifunk.net/fonera/README.txt README]
==Übersicht==
+
FON hat in die Fonera einiges an Software hineingepackt, die "nach Hause telefoniert", um Updates einzuspielen, und als Heartbeat, das gilt es erst mal zu deaktivieren, FON könnte ja Updates einspielen.
+
  
==Serielle Console==
 
  
Vorteile:
+
'''GUTES HOW-TO dazu: http://wiki.freifunk-hannover.de/Fonera_mit_OLSR'''
* dieser Hack wird wohl immer funktionieren, da er über die Hardware der Fonera geht
+
Nachteile:
+
* man muss sich erst eine Schaltung bauen bzw. von jemandem der bereits eine hat ausborgen.
+
  
die Fonera hat im Inneren eine Stiftleiste, auf der eine Serielle Konsole mit 3,3V pegel liegt.
+
Wichtig: Aktivierung von '''IPv4Broadcast''':
  
[[Bild:Fonera_serial.jpg]]
+
mit z.b WinSCP auf dem Router einloggen und /etc/init.d/S83olsrd oder mit einem
* VCC (3.3V) – red
+
beliebigen Texteditor bearbeiten. zb vi
* GND – blue
+
* RX – white
+
* TX – orange
+
  
 +
bei
  
Aufgrund der 3,3V kann man die Fonera nicht direkt an einen PC anstecken, man braucht dazu erst einen Level Shifter.
+
Interface $FF_DEVS
 +
{
 +
        HelloInterval          6.0
 +
          ~
  
Geeignet ist der '''MAX3232'''
+
ändern auf
 +
 +
Interface $FF_DEVS
 +
  {     
 +
        Ip4Broadcast 255.255.255.255
 +
        HelloInterval          6.0
 +
        ~
  
Schaltbild:
+
KANAL13 freischalten (fonera geht am besten auf den untersten kanälen auf 13 oft recht schlecht)
  
[[Bild:Serial-max3232.gif]]
+
in /etc/modules.d/20-madwifi
 +
ath_ahb
 +
ändern auf
 +
ath_ahb countrycode=276
  
der MAX232, der einen konsolenpegel von 5V auf die Pegel des PCs bringt, funktioniert auch,
+
UND kanal 13 im webif einstellbar machen:
  man muss nur Vcc auf die 5V des netzteils anstatt der 3,3V der Stiftleiste legen
+
  eventuell kann man aber nur empfangen? die Fonera hat meinen ENTERs zumindest nicht Folge geleistet ;-)
+
  
und nun starten wir auf dem PC/Laptop etc einen seriellen Konsolenclient mit den Einstellungen:
+
in /www/cgi-bin/webif/adv_wifi.sh
Speed 9600,n,8,1
+
  
* Windows:
+
nach channels= suchen und folgendes ändern/hinzufuegen
  Start>Programme>Zubehoer>Kommunikation>HyperTerminal
+
 
  und dann eine neue Verbindung mit den obigen Einstellungen
+
#autokonfig disabled as it won`t work (reliable), and we don`t need all channels,..
 +
#channels=
 +
#for ch in $(iwlist ath1 freq | grep 'Channel ' | grep -v "reque" | awk '{print $2}'); do
 +
#      channels="${channels:+$channels$N}option|$ch|$ch"
 +
  #done
 +
 
 +
  #check if channel 13 was enabled
 +
cc=`cat /etc/modules.d/20-madwifi|grep -c 276`
 +
c=`cat /etc/modules.d/20-madwifi|grep -c ath_ahb`
 +
if [ "$cc" -eq "1" ]; then
 +
if [ "$c" -eq "1" ]; then
 +
w13="option|13|13"
 +
fi
 +
fi
 +
# fallback
 +
channels="${channels:-
 +
option|01|01
 +
option|04|04
 +
option|07|07
 +
option|10|10
 +
$w13}"
  
* Linux:
+
==Experimentelle 0xFF Firmware auf OpenWRT Basis==
picocom -b 9600 /dev/ttyUSB0
+
Es gibt für die Fonera und Fonera+ eine experimentelle Firmware, die im Wesentlichen aus einem kamikaze + 0xFF spezifischer Konfiguration besteht. Details sind auf der Seite der [[Arbeitsgruppe_FoneraPlus]] zu finden.
gilt bei USB-RS232 Kabel. Gegebenenfalls /dev/ttyS0 ... bei seriellem Kabel.
+
  
Jetzt, wo wir Shell Zugriff haben, was machen wir nun?
+
Vorteil: Alle Sachen wie Ip4Broadcast, Kanal 13, etc funktionieren bereits mehr oder weniger out of the Box.
===SSH Server===
+
als Erstes starten wir den SSH Server
+
/etc/init.d/dropbear start
+
Autostart für SSH Server einrichten
+
mv /etc/init.d/dropbear /etc/init.d/S50dropbear
+
===Firewall===
+
nun editieren wir die Firewall:
+
vi /etc/firewall.user
+
  
mit '''i''' in den Insert-Mode gehen
+
Nachteil: Es gibt kein Webinterface. Um die Benutzung von ssh und einem Texteditor kommt man nicht herum.
  
die # vor den folgenden Zeilen wegnehmen:
+
= Power over Ethernet =
iptables -t nat -A prerouting_rule -i $WAN -p tcp—dport 22 -j ACCEPT
+
iptables -A input_rule -i $WAN -p tcp—dport 22 -j ACCEPT
+
'''ESC''' drücken, ''':wq''' eingeben und '''ENTER''' zum Speichern und den Editor zu verlassen
+
  
nun machen wir die Änderungen an der Firewall Aktiv:
+
die 2. Version der Fonera (2200 siehe Rückseite) mit 7,5V Stromanschluss (und schwarzem LAN Anschluss und dünnem Stecker)
/etc/firewall.user
+
===nach Hause telefonieren Teil 1===
+
Die Updatefunktion muss natürlich ausgeschaltet werden
+
  
hier editieren wir das Shell-Script, das das erledigt
+
kann ohne Probleme mit bis zu 13V betrieben werden, da sie intern einen Schaltregler hat, der sehr effizient arbeitet und auch bei höheren Spannungen nicht viel Wärme erzeugt.
  
vi /bin/thinclient
 
  
und machen bei der letzten Zeile ein # davor
+
Achtung beim Stecker, der markierte Draht ist Masse, am besten aber nochmal nachmessen.
# . /tmp/.thinclient.sh
+
  
das script startet sich ausserdem noch beim Systemstart,
 
  
also /etc/init.d/N40thinclient in z.b /etc/init.d/noN40thinclient umbenennen
+
'''Die 1. Version (2100) kann nicht so einfach per POE betrieben werden, der Längsregler würde wahscheinlich sofort durchbrennen.'''
 
+
mv /etc/init.d/N40thinclient /etc/init.d/noN40thinclient
+
 
+
===nach Hause telefonieren Teil 2===
+
unser editiertes Shellscript wird jede Stunde aufgerufen, unser Edit hilft aber nur, das eigendliche Script, was der Server schickt zu deaktivieren.
+
 
+
wer sehen will, was FON mit der Fonera anstellen wollte, kann das was jetzt kommt gerne weglassen,
+
ich persöhnlich hasse allerdings Spionage.
+
 
+
also editieren wir den cronjob:
+
 
+
in der Datei '''/etc/crontabs/root''' ist original folgendes eingetragen:
+
 
+
0 * * * * /bin/thinclient cron
+
 
+
EDIT: seit einiger Zeit ist auch schon ein NTP Client dabei, der von ntp1.linuxmedialabs.com updatet.
+
Ev. auf '''at.pool.ntp.org''' ändern. (Das ist ein Serverpool, siehe http://pool.ntp.org)
+
 
+
das editieren wir zu
+
#0 * * * * /bin/thinclient cron
+
oder löschen den Eintrag ganz hinaus
+
 
+
wir könnten zwar auch den crond stoppen, allerdings braucht Sven-Ola's OLSR paket einen cronjob
+
===nach Hause telefonieren Teil 3===
+
ja, die FON-Leute sind echt nervend ;-)
+
es verbirgt sich noch ein kleiner Heartbeat in '''/etc/init.d/N10conncheck'''
+
 
+
also
+
vi /etc/init.d/N10conncheck
+
 
+
und folgende Zeilen auskommentieren oder löschen:
+
 
+
while [ -z "$(/usr/bin/wget "http://download.fon.com/heartbeat.php" -O-)" ]; do
+
sleep 1
+
done
+
 
+
==Webinterface==
+
Vorteile:
+
* der Hack kommt ohne Zugriff auf die Hardware aus.
+
Nachteile:
+
* Fon kann und wird bei neuen Patches die Sicherheitslöcher immer weider zustopfen, also weis man nicht ob das mit neuen Foneras funktionieren wird.
+
 
+
''getestet mit 0.7.0 r4''
+
 
+
ACHTUNG: ich habe unlängst den Hack mit Version 0.7.1 r1 durchzuführen, hat nicht mehr funktioniert.
+
FON hat anscheinend (endlich, je nachdem wie man es sieht ^^) einen Patch dagegen aufgespielt
+
dieser hack funktioniert somit nur mit alten Versionen, am Besten ausprobieren
+
ansonsten kann man auch beim FONERA Hacking Part IV weiter gehn, das ging bei meiner Fonera.
+
Wie lang es dauert bis FON den bug gefixt kann keiner sagen, bei mir hats funktioniert (Mitte Jan 2007)
+
Bei höheren Firmware-Versionen den [[Fonera Hard Reset]] probieren
+
 
+
hier nutzen wir einen Bug im AdminInterface
+
 
+
der Trick ist, dass wir hier einen Bug ausnützen.
+
wir können nämlich in Eingabefeldern Befehle hineinschreiben, ohne dass die software das erkennt und abbricht.
+
 
+
bei einem marktreifen Produkt sollte sowas wirklich nicht sein!!
+
 
+
nahut, gehn wirs an.
+
 
+
dazu erstellen wir uns erst einmal 2 HTML files:
+
 
+
'''seite1.html:'''
+
 
+
<code><nowiki>
+
  <html>
+
  <head></head><body><center>
+
  <form method="post" action="http://169.254.255.1/cgi-bin/webif/connection.sh" enctype="multipart/form-data">
+
  <input name="username" value="$(/usr/sbin/iptables -I INPUT 1 -p tcp –dport 22 -j ACCEPT)" size="68" />
+
  <input type="submit" name="submit" value="Submit" />
+
  </form>
+
  </center></body></html>
+
</nowiki></code>
+
 
+
'''seite2.html:'''
+
 
+
<code><nowiki>
+
  <html>
+
  <head></head><body><center>
+
  <form method="post" action="http://169.254.255.1/cgi-bin/webif/connection.sh" enctype="multipart/form-data">
+
  <input name="username" value="$(/etc/init.d/dropbear)" size="68" ><input type="submit" name="submit" value="Submit" />
+
  </form>
+
  </center></body></html>
+
</nowiki></code>
+
 
+
nun stellen wir die LAN-Verbindung des PC/Laptops ein:
+
IP: 169.254.255.2
+
Subnet mask: 255.255.255.0
+
 
+
nun kann es losgehen:
+
 
+
'''Seite 1''' aufrufen und auf Submit drücken.
+
 
+
am FON router einloggen
+
Default Login:
+
username: admin
+
passwort: admin
+
 
+
nun sieht man wahrscheinlich HTML quelltext im browser, auch das permission denied ganz oben ist normal.
+
 
+
 
+
nun '''Seite2''' aufrufen und auf Submit drücken.
+
===SSH Server===
+
wenn nun alles geklappt hat kann man mit putty auf '''169.254.255.1''' connecten.
+
dort als root und mit dem Passwort einloggen.
+
 
+
nun kommt im Grunde fast das Selbe wie bei Serieller Verbindung, nur dass wir einiges eben gerade eh schon gestartet haben.
+
 
+
Autostart für SSH Server einrichten
+
mv /etc/init.d/dropbear /etc/init.d/S50dropbear
+
===Firewall===
+
nun editieren wir die Firewall:
+
vi /etc/firewall.user
+
 
+
mit i in den Insert-Mode gehen
+
 
+
die # vor den folgenden Zeilen wegnehmen:
+
iptables -t nat -A prerouting_rule -i $WAN -p tcp—dport 22 -j ACCEPT
+
iptables -A input_rule -i $WAN -p tcp—dport 22 -j ACCEPT
+
ESC drücken, :wq eingeben und ENTER zum Speichern und den Editor zu verlassen
+
 
+
nun machen wir die Änderungen an der Firewall Aktiv:
+
/etc/firewall.user
+
===nach Hause telefonieren Teil 1===
+
Die Updatefunktion muss natürlich ausgeschaltet werden
+
 
+
hier editieren wir das Shell-Script, das das erledigt
+
 
+
vi /bin/thinclient
+
 
+
und machen bei der letzten Zeile ein # davor
+
# . /tmp/.thinclient.sh
+
 
+
 
+
das Script startet sich ausserdem noch beim Systemstart,
+
 
+
also /etc/init.d/N40thinclient in z.b /etc/init.d/noN40thinclient umbenennen
+
 
+
===nach Hause telefonieren Teil 2===
+
unser editiertes Shellscript wird jede Stunde aufgerufen, unser Edit hilft aber nur, das eigendliche Script, was der Server schickt zu deaktivieren.
+
 
+
wer sehen will, was FON mit der Fonera anstellen wollte, kann das was jetzt kommt gerne weglassen,
+
ich persöhnlich hasse allerdings Spionage.
+
 
+
also editieren wir den cronjob:
+
 
+
in der Datei '''/etc/crontabs/root''' ist original folgendes eingetragen:
+
 
+
0 * * * * /bin/thinclient cron
+
 
+
EDIT: seit einiger Zeit ist auch schon ein NTP Client dabei, der von ntp1.linuxmedialabs.com updatet.
+
Ev. auf '''at.pool.ntp.org''' ändern. (Das ist ein Serverpool, siehe http://pool.ntp.org)
+
 
+
das editieren wir zu
+
#0 * * * * /bin/thinclient cron
+
oder löschen den Eintrag ganz hinaus
+
 
+
wir könnten zwar auch den crond stoppen, allerdings braucht Sven-Ola's OLSR paket einen cronjob.
+
 
+
===nach Hause telefonieren Teil 3===
+
ja, die FON-Leute sind echt nervend ;-)
+
es verbirgt sich noch ein kleiner Heartbeat in '''/etc/init.d/N10conncheck'''
+
 
+
also
+
vi /etc/init.d/N10conncheck
+
 
+
und folgende Zeilen auskommentieren oder löschen:
+
 
+
while [ -z "$(/usr/bin/wget "http://download.fon.com/heartbeat.php" -O-)" ]; do
+
sleep 1
+
done
+
 
+
==FONERA Hacking Part IV by datacop :-)==
+
 
+
''getestet mit 0.7.1 r1''<br>
+
''geht nicht mehr mit 0.7.1 r2'' -> downgrade auf Firmware Version 0.7.0 r4 mittels [[Fonera Hard Reset]]
+
 
+
ich hab durch ausprobieren einen weiteren Bug gefunden, der sehr elegant ist :-)
+
 
+
Addresseinstellungen wie bei obigen Hack:
+
IP: 169.254.255.2
+
Subnet mask: 255.255.255.0
+
 
+
der Trick:
+
 
+
bei Public Wireless Settings einfach in die SSID folgendes eintragen:
+
 
+
$(/etc/init.d/dropbear)
+
 
+
dann abschicken und schon kann man beim Webinterfacehack bei SSH Server weiter machen.
+
 
+
= OLSR =
+
'''Achtung: der untere Abschnitt dieser Seite kann noch einige bis viele Fehler enthalten ;-)'''
+
 
+
um die Fonera im FunkFeuer Netzwerk verwenden zu können, muss das routing Protokoll OLSR installiert werden.
+
 
+
== Vorarbeit ==
+
=== am Router ===
+
hier wird erst mal alles deaktiviert, was wir auf der Fonera eindeutig nicht brauchen können / haben wollen.
+
 
+
das wäre zum Ersten der '''Chillispot (Public WLAN)''', also
+
/etc/init.d/N50chillispot
+
z.b wie oben in noN50chillispot umbenennen
+
 
+
somit hätten wir das Public WLAN deaktiviert.
+
 
+
nun kommt das '''Private WLAN''' dran.
+
dies ist momentan nötig, da der WLAN driver einige Bugs hat, und das leider vor Allem im Ad-Hoc modus.
+
 
+
also öffnen wir ''/sbin/ifup'' im Editor und editieren folgende Zeilen (ziemlich am Ende):
+
 
+
case "$1" in
+
mgmt)
+
setup_management eth0
+
;;
+
lan|lan_noinet)
+
ifdown lan
+
#setup_lan_wifi                            << auskommentieren, so wie hier
+
ifconfig ath1 >/dev/null 2>/dev/null && {
+
setup_interface lan ath1
+
}
+
nun sollte nichts mehr im Wege stehen, OLSR und Ad-Hoc zu installieren / konfigurieren
+
 
+
natürlich muss zum installieren eine Internetverbindung aufgebaut sein, also sind die Schritte oben wichtig, dass man sich durch ein automatisches Update nicht selbst wieder aussperrt.
+
 
+
=== an Dokumentation ===
+
 
+
bevor man irgendwas an der Fonera installiert sollte man sich zu erst mal anschaun was das Ding eigendlich macht ;-)
+
 
+
also http://olsrexperiment.de/sven-ola/fonera/readme.txt durchlesen
+
 
+
ein sehr guter Rat:
+
 
+
'''!!! No warranties, no complaints. This is experimental stuff. If you want to remove the ff-fonera-pack, issue "rm -r /jffs/*" and reboot by pulling the plug. This restores the standard FON router function. !!!'''
+
 
+
== Installieren ==
+
 
+
erst prüfen wir, ob auch wirklich Internet und DNS funktionieren:
+
ping google.at
+
 
+
nun Sven-Ola's OLSR Pakete installieren:
+
 
+
ipkg install http://olsrexperiment.de/sven-ola/fonera/ff-fonera-pack_0.2-1_mips.ipk
+
 
+
das braucht reichlich Zeit, also wirklich abwarten bis alles fertig ist ;-)
+
 
+
zudem versucht die Fonera durch einen Falscheintrag in /etc/ipkg.conf auf 169.254.255.2 zu connecten (was natürlich nicht geht, da das eine Private IP ist):
+
 
+
src sven-ola ftp://169.254.255.2/upload/fonera
+
 
+
nach dem
+
Configuring kmod-madwifi...Done.
+
 
+
sollte die Fonera fertig sein, lieber noch eine Minute warten (zur Sicherheit) , und dann ist das Installieren fertig :-)
+
 
+
dadurch, dass die Prozesse im Hintergrund gestartet wurden wird man root@OpenWrt:~# erst sehen wenn man ENTER drückt.
+
 
+
== Konfigurieren ==
+
 
+
=== S20madwifi-freifunk ===
+
 
+
als erstes öffnen wir ''/etc/init.d/S20madwifi-freifunk'' im Editor
+
 
+
nun ändern wir am Beginn IP, Netzmaske und BSSID.
+
 
+
export FF_IP=193.238.15x.x/22
+
export FF_BSSID=aa:bb:cc:dd:ee:ff
+
 
+
nun schaun wir uns die letzte Zeile an:
+
 
+
für eine Omni auf Kanal 1 würde das so aussehen:
+
iwconfig $FREIDEV mode ad-hoc essid freiesnetz.funkfeuer.at channel 1 key off frag off rts 250 ap $FF_BSSID
+
 
+
=== OLSR selbst ===
+
 
+
da es nicht sinnvoll ist, die OLSR Startdatei/Config bei jeder Fonera zu bearbeiten, machen wir unser eigenes Startscript:
+
 
+
erst benennen wir die originale ''/etc/init.d/S53olsrd'' in noS53olsrd um, damit nicht 2 OLSRds beim Booten starten (hat sehr interessante Auswirkungen ;-))
+
 
+
nun erstellen wir in ''/etc/init.d/'' eine Datei namens '''S81olsrd'''
+
 
+
Inhalt:
+
 
+
#!/bin/sh
+
test -n "$FAILSAFE" && exit
+
WIFIDEV=$(l=$(grep : /proc/net/wireless);echo ${l%%:*})
+
test -z "$WIFIDEV" && echo "No Wifi!">&2 && exit
+
+
test -d /etc/crontabs && cdir=/etc/crontabs
+
test -d /var/spool/cron/crontabs && cdir=/var/spool/cron/crontabs
+
+
case $1 in
+
start)
+
echo "Starting olsrd..."
+
+
test -d /var/etc || mkdir -p /var/etc
+
cat>>/var/etc/olsrd.conf<<EOF
+
DebugLevel 0
+
IpVersion 4
+
AllowNoInt yes
+
Pollrate 0.1
+
TcRedundancy 2
+
MprCoverage 7
+
LinkQualityFishEye 1
+
LinkQualityWinSize 50
+
LinkQualityDijkstraLimit 0 5.0
+
LoadPlugin "olsrd_txtinfo.so.0.1"
+
{
+
PlParam "Accept" "192.168.0.0/24"
+
}
+
IpcConnect
+
{
+
MaxConnections 1
+
Host 127.0.0.1
+
Net 192.168.0.0 255.255.255.0
+
}
+
LinkQualityLevel 2
+
UseHysteresis no
+
Interface "$WIFIDEV"
+
{
+
HelloInterval 5.0
+
HelloValidityTime 90.0
+
TcInterval 5.0
+
TcValidityTime 270.0
+
MidInterval 15.0
+
MidValidityTime 90.0
+
HnaInterval 15.0
+
HnaValidityTime 90.0
+
}
+
EOF
+
olsrd -f /var/etc/olsrd.conf
+
+
if [ -n "$cdir" ] && ! grep -q cron.olsrd $cdir/root; then
+
echo "0-59/1 * * * * /usr/sbin/cron.olsrd">>$cdir/root
+
echo "root" >> $cdir/cron.update
+
fi
+
;;
+
stop)
+
echo "Stopping olsrd..."
+
+
if [ -n "$cdir" ]; then
+
sed $cdir/root -e "/cron.olsrd/d">>$cdir/root.$$
+
mv $cdir/root.$$ $cdir/root
+
echo "root" >> $cdir/cron.update
+
fi
+
+
killall olsrd
+
;;
+
restart)
+
$0 stop
+
$0 start
+
;;
+
*)
+
echo "Usage: $0 start|stop|restart"
+
;;
+
esac
+
 
+
wenn alles funktioniert hat, ist die Fonera nun bereit, in das MeshNetz integriert zu werden.
+
 
+
aber Achung: immer schaun, dass der OLSR nur die externe IP per WLAN verbreitet, dass kann sonst üble Auswirkungen auf das ganze Netz haben.
+
  
 
=Über den Ethernet-Port der Fonera ins Netz - Dirty Hack=
 
=Über den Ethernet-Port der Fonera ins Netz - Dirty Hack=
Zeile 511: Zeile 158:
 
         option netmask  '255.255.255.0'
 
         option netmask  '255.255.255.0'
 
   #    option gateway  '192.168.0.1'
 
   #    option gateway  '192.168.0.1'
         option dns      '193.238.156.2'
+
         option dns      '193.238.157.16'
  
 
== Client Konfiguration ==
 
== Client Konfiguration ==
Zeile 517: Zeile 164:
 
   Netmask: 255.255.255.0
 
   Netmask: 255.255.255.0
 
   Gateway: 192.168.0.1
 
   Gateway: 192.168.0.1
   DNS: 193.238.156.2
+
   DNS: 193.238.157.16
  
 
Voilá!
 
Voilá!
 +
 +
== Zwei Router im Verbund ==
 +
Um 2 Router per Kabel miteinander zu verbinden einfach die IP Adresse des WLAN Interfaces auch für das WAN verwenden.
 +
 +
Nun per ssh auf den ersten Router verbinden und die Datei /etc/config/fon editieren.
 +
#config network lan
 +
#      option  mode    static
 +
#      option  ipaddr  192.168.10.1
 +
#      option  netmask 255.255.255.0
 +
#      option  dhcp    1
 +
 +
config network wan
 +
      option mode    'static'
 +
      option ipaddr  '193.238.156.X' (Funkfeuer Adresse des Routers)
 +
      option netmask  '255.255.252.0' (oder auch 255.255.255.0 bei einer 78.41.112.X Addresse)
 +
#    option gateway  '193.238.0.1'
 +
      option dns      '193.238.157.16'
 +
      option gateway  ''
 +
 +
Nun muss noch eine Firewall Regel erstellt werden die den Tarffic ungefilter weiterleitet.
 +
Dazu die Datei /etc/firewall.user um die folgenden Zeilen ergänzen.
 +
 +
iptables -I INPUT  -i eth0 -j ACCEPT
 +
iptables -I OUTPUT -o eth0 -j ACCEPT
 +
 +
Jetzt fehlt nur noch OLSR auf dem WAN Port zu aktivieren.
 +
 +
Dazu wird das Skript /etc/init.d/S83olsrd editiert.
 +
 +
Interface $FF_DEVS "eth0"
 +
{
 +
 +
Nun muss der ganze Vorgang noch für den zweiten Router wiederholt werden.
  
 
=Links=
 
=Links=
Zeile 543: Zeile 223:
  
 
http://www.easy2design.de/bla/?page_id=98 - Wenn der Fonera die KernelPanic-Krankheit hat: Debricking and more :)
 
http://www.easy2design.de/bla/?page_id=98 - Wenn der Fonera die KernelPanic-Krankheit hat: Debricking and more :)
 +
 +
http://www.dd-wrt.com/wiki/index.php/LaFonera_Software_Flashing#Flashing - Fonera auf DD-WRT flashen (expert section)
 +
 +
http://mrmuh.blogspot.com/2006/11/updates-explained-and-bridging-mode.html - Brigding mit der Fonera (Interessant für Nutzung als WLAN-AP oder im Client-Mode (bridge) )
 +
 +
http://www.dd-wrt.com/wiki/index.php/LaFonera_Hardware_32MB_SDRAM_MOD - Nette sahe fuer bastler ;o)
 +
 +
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=14747&highlight=olsr - DD-WRT mit OLSR !
 +
ich hab OLSR mit DD-WRT nicht zum Laufen gebracht, Erfahrungsberichte? --[[Benutzer:Datacop|datacop]] 14:46, 21. Okt 2007 (CEST)
 +
 +
[[Category:Dokumentation]]
 +
[[Category:Hardware]]

Aktuelle Version vom 10. Januar 2011, 11:45 Uhr

<google>WIKI</google>

About

Adrian Dabrowski hat auf der Funkfeuer Convention am 24.11.2006 einen Vortrag über Hardware Hacking gehalten, in dem es auch um die Fonera ging. Die Folien kann man hier downloaden:

http://convention.funkfeuer.at/wp-content/uploads/funkfeuer-convention-hardware-hacking-adrian-dabrowski.pdf


Die Fonera ist ein Wlan Router, der von http://www.fon.com verwendet wird, um mit dem Internetzugang anderer Leute Geld zu verdienen.

Die Fonera kostet € 34,44 und ist damit im Bereich der günstigeren Router


es gibt schon einige Möglichkeiten die Fonera Firmware zu ändern,

zum Beispiel einfach das bestehende Betriebsystem verändern,

es gibt jedoch auch schon Lösungen die ein komplett neues Betriebssystem aufspielen.

Es wird wohl nicht mehr lange dauern, bis fertige Software zur Verfügung steht, wie es bei den Linksysen bekannt ist, die Frage ist, ob FON nicht einiges dagegen unternehmen wird, z.b Änderung der Hardware.

Wichtig ist deshalb, dass man eine neue Fonera nicht erst ins Internet lässt, sondern gleich "bearbeitet"

Nachteile

  • die Fonera ist eigendlich nicht dazu gedacht, dass man damit herumspielt, deshalb kommt man nur über Tricks hinein
  • die Fonera hat ein extrem langsames Flash, das booten dauert länger als das Flashen bei einem WRT54GL ;-)
  • die Pakete die es momentan gibt, sind fast alle experimentell, deshalb gibt es noch keine Webinterfaces etc. (es wird daran aber schon sehr intensiv gearbeit)
  • die Originalfirmware ist auf USA eingestellt, damit sind nur die Kanäle 1-11 verfügbar, es wird daran gearbeitet...

Systemeigenschaften im Originalzustand

Software

  • Linux 2.4.36
  • 2 WIFI Netze
    • Privat, WPA, Lokales LAN + Internet
    • Public, Captive Portal, nur Internet
  • Captive Portal: Chilli
  • “Phoning Home”

Hardware

  • MIPS CPU
  • Router600mA @ 5V (3W)
  • Atheros Chipset -> Linux MADWIFI
  • PSMA Antenne, 2,2dbi
  • Atheros -90/-93dbm.
 zum Vergleich: Linksys -65dBm@54Mbps, -80dBm@11Mbps
  • 8 MB Serial Flash / 16 MB Flash
  • Low Cost

Flashen

Die Version von FreiFunk (Sven Ola)

es wurde bereits eine ausgereifte Version von FreiFunk entwickelt hier zu finden:

http://ipkg.funkfeuer.at/freifunk/fonera/ README

bzw.

http://download.berlin.freifunk.net/fonera/ README


GUTES HOW-TO dazu: http://wiki.freifunk-hannover.de/Fonera_mit_OLSR

Wichtig: Aktivierung von IPv4Broadcast:

mit z.b WinSCP auf dem Router einloggen und /etc/init.d/S83olsrd oder mit einem beliebigen Texteditor bearbeiten. zb vi

bei

Interface $FF_DEVS
{
        HelloInterval           6.0
         ~
ändern auf 

Interface $FF_DEVS
  {       
       Ip4Broadcast 255.255.255.255
       HelloInterval           6.0
       ~

KANAL13 freischalten (fonera geht am besten auf den untersten kanälen auf 13 oft recht schlecht)

in /etc/modules.d/20-madwifi

ath_ahb 

ändern auf

ath_ahb countrycode=276

UND kanal 13 im webif einstellbar machen:

in /www/cgi-bin/webif/adv_wifi.sh

nach channels= suchen und folgendes ändern/hinzufuegen

#autokonfig disabled as it won`t work (reliable), and we don`t need all channels,..
#channels=
#for ch in $(iwlist ath1 freq | grep 'Channel ' | grep -v "reque" | awk '{print $2}'); do
#       channels="${channels:+$channels$N}option|$ch|$ch"
#done
 
#check if channel 13 was enabled
cc=`cat /etc/modules.d/20-madwifi|grep -c 276`
c=`cat /etc/modules.d/20-madwifi|grep -c ath_ahb`
if [ "$cc" -eq "1" ]; then
if [ "$c" -eq "1" ]; then
w13="option|13|13"
fi
fi
# fallback
channels="${channels:-
option|01|01
option|04|04
option|07|07
option|10|10
$w13}"

Experimentelle 0xFF Firmware auf OpenWRT Basis

Es gibt für die Fonera und Fonera+ eine experimentelle Firmware, die im Wesentlichen aus einem kamikaze + 0xFF spezifischer Konfiguration besteht. Details sind auf der Seite der Arbeitsgruppe_FoneraPlus zu finden.

Vorteil: Alle Sachen wie Ip4Broadcast, Kanal 13, etc funktionieren bereits mehr oder weniger out of the Box.

Nachteil: Es gibt kein Webinterface. Um die Benutzung von ssh und einem Texteditor kommt man nicht herum.

Power over Ethernet

die 2. Version der Fonera (2200 siehe Rückseite) mit 7,5V Stromanschluss (und schwarzem LAN Anschluss und dünnem Stecker)

kann ohne Probleme mit bis zu 13V betrieben werden, da sie intern einen Schaltregler hat, der sehr effizient arbeitet und auch bei höheren Spannungen nicht viel Wärme erzeugt.


Achtung beim Stecker, der markierte Draht ist Masse, am besten aber nochmal nachmessen.


Die 1. Version (2100) kann nicht so einfach per POE betrieben werden, der Längsregler würde wahscheinlich sofort durchbrennen.

Über den Ethernet-Port der Fonera ins Netz - Dirty Hack

/etc/firewall.user

 iptables -t nat -I PREROUTING -s 192.168.0.2 -j ACCEPT     
 iptables -t nat -I POSTROUTING -s 192.168.0.2 -j MASQUERADE
 iptables -I INPUT -s 192.168.0.2 -j ACCEPT
 iptables -I FORWARD -s 192.168.0.2 -j ACCEPT

/etc/config/fon

 #config network lan
 #       option  mode    static
 #       option  ipaddr  192.168.10.1
 #       option  netmask 255.255.255.0
 #       option  dhcp    1
 
 
 config network wan
       option mode     'static'
       option ipaddr   '192.168.0.1'
       option netmask  '255.255.255.0'
 #     option gateway  '192.168.0.1'
       option dns      '193.238.157.16'

Client Konfiguration

 IP: 192.168.0.2
 Netmask: 255.255.255.0
 Gateway: 192.168.0.1
 DNS: 193.238.157.16

Voilá!

Zwei Router im Verbund

Um 2 Router per Kabel miteinander zu verbinden einfach die IP Adresse des WLAN Interfaces auch für das WAN verwenden.

Nun per ssh auf den ersten Router verbinden und die Datei /etc/config/fon editieren.

#config network lan
#       option  mode    static
#       option  ipaddr  192.168.10.1
#       option  netmask 255.255.255.0
#       option  dhcp    1
config network wan
      option mode     'static'
      option ipaddr   '193.238.156.X' (Funkfeuer Adresse des Routers)
      option netmask  '255.255.252.0' (oder auch 255.255.255.0 bei einer 78.41.112.X Addresse)
#     option gateway  '193.238.0.1'
      option dns      '193.238.157.16'
      option gateway  

Nun muss noch eine Firewall Regel erstellt werden die den Tarffic ungefilter weiterleitet. Dazu die Datei /etc/firewall.user um die folgenden Zeilen ergänzen.

iptables -I INPUT  -i eth0 -j ACCEPT
iptables -I OUTPUT -o eth0 -j ACCEPT

Jetzt fehlt nur noch OLSR auf dem WAN Port zu aktivieren.

Dazu wird das Skript /etc/init.d/S83olsrd editiert.

Interface $FF_DEVS "eth0"
{

Nun muss der ganze Vorgang noch für den zweiten Router wiederholt werden.

Links

http://jauzsi.hu/2006/10/13/inside-of-the-fonera

http://wiki.freifunk-hannover.de/Fonera_mit_OLSR - FreiFunk Hannover WIKI

http://www.mariomix.net/mariomix-blog/2006/11/hacking-la-fonera-parte-3/ - Hacking Part 3

http://www.notmart.org/index.php/BlaBla/Hacking_la_fonera..._part_III - noch eine Anleitung Hacking Part 3, englisch

http://bingobommel.blogspot.com/ - Hacking Part 2

http://olsrexperiment.de/sven-ola/fonera/ - Sven-Ola's Pakete, OLSR

http://fon.rogue.be/lafonera-0.7.0-rev4/

http://fon.rogue.be/lafonera/

http://fon.rogue.be/lafonera-experimental/

http://www.art-xtreme.com/blog/20061017/activar-ssh-en-la-fonera/ - Serieller Hack

http://www.easy2design.de/bla/?page_id=98 - Wenn der Fonera die KernelPanic-Krankheit hat: Debricking and more :)

http://www.dd-wrt.com/wiki/index.php/LaFonera_Software_Flashing#Flashing - Fonera auf DD-WRT flashen (expert section)

http://mrmuh.blogspot.com/2006/11/updates-explained-and-bridging-mode.html - Brigding mit der Fonera (Interessant für Nutzung als WLAN-AP oder im Client-Mode (bridge) )

http://www.dd-wrt.com/wiki/index.php/LaFonera_Hardware_32MB_SDRAM_MOD - Nette sahe fuer bastler ;o)

http://www.dd-wrt.com/phpBB2/viewtopic.php?t=14747&highlight=olsr - DD-WRT mit OLSR !

ich hab OLSR mit DD-WRT nicht zum Laufen gebracht, Erfahrungsberichte? --datacop 14:46, 21. Okt 2007 (CEST)