Fritz!Box
erstellt 06.2006
Nach dem ich gehört habe das meine Fritz!Box Fon WLAN 7050 mit Linux betrieben wird,
wollte ich natürlich mal drauf schauen.
Dieses ist keine Anleitung, sondern nur eine Zusammenfassung meiner Ergebnisse.
ACHTUNG!!!
Es kann zu Hardware-Schäden kommen.
Einleitung
Die Fritz!Box zählt zu den beliebtesten und weit verbreitetsten DSL-Routern, die ihren Linux-Kern
hinter einer schmucken Weboberfläche verbirgt. Leider schränkt die Fritz!Box den Anwender an
vielen Stellen sehr ein und weitere Funktionen haben noch nie geschadet.
Anschließend werde ich meine Versuche kurz beschreiben die das originale Betriebssystem der
Fritz!Box verändern. Doch Achtung: Geht etwas schief, darf man nicht auf eine Garantie
plädieren oder auf Kulanz hoffen. AVM toleriert keine Modifikationen, wie sollten sie auch
noch Support leisten können.
NO GAME OVER
Telnetzugang
Der Einstieg in die Fritz!Box - Welt beginnt über einen Telnetzugang.
Im Folgenden beziehe ich mich auf die Firmware-Version 14.04.06. Die Modifikationen sind aber so
allgemein, dass sie auch auf anderen Konfigurationen laufen sollten.
Auf der Fritz!Box ist bereits ein Linux telnet-Daemon vorhanden, dieser wird über das
eingeschleuste install - script im Verzeichnis /var gestartet
#! /bin/sh
/usr/sbin/telnetd -l /sbin/ar7login
exit 0
Dieses script wird über die Datei
telnetstart.tar
der Firmware-Update Funktion der Fritz!Box
(Einstellungen/System) installiert. Bei der Installation erscheint ein Fehler
Achtung!
Die angegebene Datei enthält keine von AVM für dieses Gerät freigegebene
Firmware.
Klicken Sie jetzt auf "Update fortsetzten".
Nach dem Neustart der Fritz!Box erscheint im Info Fenster
FRITZ!Box Fon WLAN 7050 (UI), Firmware-Version 14.04.06
In Ihrer FRITZ!Box wurden vom Hersteller nicht unterstützte Änderungen durchgeführt.
Weitere Informationen.
Unter Weitere Informationen ist folgendes zu finden:
Die FRITZ!Box wird momentan mit einer von AVM nicht freigegebenen Firmware
betrieben oder die Konfiguration wurde möglicherweise über vom Hersteller
nicht vorgesehene Wege verändert (z.B. telnet). In diesem Zustand kann AVM
für die korrekte Funktion Ihrer FRITZ!Box nicht mehr garantieren.
Sie haben die Möglichkeit, das Gerät wieder in den Auslieferungszustand zurück
zu setzen. Starten Sie dafür das Recover von Ihrer FRITZ!Box-CD (\Software\X_Misc).
Nach dem Wiederherstellen des Auslieferungszustandes wird Ihre FRITZ!Box wieder
vollständig von AVM unterstützt.
Sollten Sie bis jetzt noch kein Passwort unter Einstellungen / System /
Fritz!Box-Kennwort vergeben haben, so muss dieses jetzt nachgeholt werden.
Über telnet kann jetzt auf die Fritz!Box zugegriffen werden.
z.B.:
telnet 10.2.0.1
Fritz!Box web password: geheim
CONFIG_UBIK2='y'
CONFIG_UPNP='y'
CONFIG_USB='y'
CONFIG_USB_HOST_AVM='n'
CONFIG_USB_HOST_TI='n'
CONFIG_USB_PRINT_SERV='n'
CONFIG_USB_STORAGE='n'
CONFIG_USB_WLAN_AUTH='n'
CONFIG_VDSL='n'
CONFIG_VERSION='04.06'
CONFIG_VERSION_MAJOR='14'
CONFIG_VLYNQ='y'
CONFIG_VLYNQ0='1'
CONFIG_VLYNQ1='0'
CONFIG_VPN='n'
CONFIG_WLAN='y'
CONFIG_WLAN_1130TNET='y'
CONFIG_WLAN_1350TNET='n'
CONFIG_WLAN_GREEN='n'
CONFIG_WLAN_WDS='y'
CONFIG_XILINX='n'
ermittle die aktuelle TTY
tty is "/dev/pts/0"
Console Ausgaben auf dieses Terminal umgelenkt
#exit
Geschafft, jetzt kann über Telnet die Fritz!Box zugegriffen werden.
Wird die Fritz!Box gebootet wird der Telnet-Daemon nicht gestartet.
Um dieses zu erreichen muss man
telnet permanent einbinden.
auf dem Telnet-prompt folgendes eingeben
cat /var/flash/debug.cfg > /var/tmp/debug.tmp
echo "/usr/sbin/telnetd -l /sbin/ar7login" > /var/tmp/debug.tmp
cat /var/tmp/debug.tmp > /var/flash/debug.cfg
/sbin/reboot
debug.cfg
Die debug.cfg wird bei der Fritz!Box bei jedem Start ausgeführt und hat somit die gleiche
Funktion wie die Autoexec.bat von DOS. Da diese Datei eine zentrale Bedeutung hat, ist
sie vor Änderungen geschützt. Um diesen Schutz zu umgehen wird die Datei mit dem Befehl
cat /var/flash/debug.cfg > /var/tmp/debug.tmp in den RAM Bereich kopiert.
Hier kann sie editiert werden z.B.: mit dem Befehl
echo "/usr/sbin/telnetd -l /sbin/ar7login" > /var/tmp/debug.tmp neu beschrieben werden.
Es kann auch der vi zur Bearbeitung verwendet werden. Mit dem Befehl
echo > /var/tmp/debug.tmp wird sie gelehrt. Nach der Bearbeitung kann die Datei mit dem
Befehl cat /var/tmp/debug.tmp > /var/flash/debug.cfg zurück kopiert werden.
Mit dem Befehl /sbin/reboot wird die Fritz!Box neu gestartet und die Änderungen werden in
Kraft gesetzt.
Da bei einigen Versuchen es schon mal brenzlig werden kann, das unsere schöne Fritz!Box das
Leben aus gehaucht wird, habe ich eine rudimentäre Sicherung eingebaut.
Die debug.cfg schaut folgend aus.
# ======================================
# M. Wulff 10.06.2006
# ======================================
# ====== Start des telnet-daemons
/usr/sbin/telnetd -l /sbin/ar7login
# ====== rudimentaere Sicherung
while !(ping -c 1 www.m-wulff.de); do
sleep 5
done
# ====== Weiteres
Bevor das Script etwas Sinnvolles tut, bleibt es bei gezogener DSL-Verbindung in der
Endlosschleife hängen und ich kann die Fehler über Telnet beheben.
Bei den Änderungen muss immer darauf geachtet werden, das das zu ändernde Script aus dem ROM-
Bereich in den RAM- Bereich copiert wird und nach Bearbeitung wieder zurück geschrieben wird.
Sicherungen sind natürlich erlaubt. Die grundlegenden Befehle des VI sollten bekannt sein.
Anschließend der obligatorische Restart.
cat /var/flash/debug.cfg > /var/tmp/debug.tmp
vi /var/tmp/debug.tmp
cat /var/tmp/debug.tmp > /var/flash/debug.cfg
/sbin/reboot
FTP-Server
Irgendwie ist langweilig im Verzeichnis mit cd und ls in den Verzeichnissen hangeln und mit cat
die Dateien anschauen.
Ein FTP-Server bietet einen gewissen Komfort.
Ein kleiner FTP-Server für Mips Prozessoren ist bftpd. Eine fertig konfigurierter Server kann mit
wget geladen werden. Anschließende müssen nur noch die passenden Rechte gesetzt werden und der
Server gestartet werden.
Starten wir das ganze mal von Hand:
cd /var/tmp
wget http://www.tecchannel.de/download/432803/bftpd.conf
wget http://www.tecchannel.de/download/432803/bftpd
chmod +x bftpd
./bftpd -d -c /var/tmp/bftpd.conf
Der Befehl ps sollte jetzt die Prozessliste mit dem FTP-Server als vorletzten Eintrag anzeigen.
Jetzt benötigen wir noch den Eintrag in die passwd. Hierzu muss aber noch das Password generiert
werden. Über die Webseite
www.flash.net/cgi-bin/pw.pl
ist dieses ganz einfach möglich.
Es wird nur der Benutzername und Passwort eingetragen und als Ergebnis erscheint der benötigte
verschlüsselte Hashcode.
Dieser wird mit den Befehl
echo "wulff:fC64IeXxIxoQc:0:0:root:/:null" >> /var/tmp/passwd
an die passwd angehängt.
Jetzt sollte mit einem FTP-Programm auf die Fritz!Box zugegriffen werden können.
Klappt alles können die Installationen permanent gemacht werden.
Alle Angaben die per Hand durchgeführt wurden müssen jetzt nur noch in die debug.cfg eingetragen
werden.
Die /var/flush/debug.cfg schaut jetzt so aus
# =====================================
# M. Wulff 09.06.06
# =====================================
# ====== Telnet starten
/usr/sbin/telnetd -l /sbin/ar7login
# ====== rudimentaere Sicherung
while !(ping -c 1 www.m-wulff.de); do
sleep 5
done
# ====== Debug.cfg kopieren
cat /var/flash/debug.cfg > /var/tmp/debug.tmp
# ====== FTP - Server
cd /var/tmp
wget http://www.tecchannel.de/download/432803/bftpd.conf
wget http://www.tecchannel.de/download/432803/bftpd
chmod +x bftpd
chmod 777 bftpd.conf
echo "wulff:xxxxxxxxxxxxx:0:0:root:/:null" >> /var/tmp/passwd
./bftpd -d -c /var/tmp/bftpd.conf
(Die letzte Leerzeile war bei mir notwendig)
Jetzt haben wir das Grundrüstzeug um die Fritz!Box zu untersuchen. Leider sind die wichtigen
Dateien die unter /var/flash/ liegen geschützt und müssen erst auf /var/tmp kopiert werden um
diese einsehen zu können oder per FTP geladen werden können.
Natürlich können Sie diese auch bearbeiten und anschließend zurück kopieren, wenn Sie wissen
was Sie tun.
· Eine interessante Datei ist /var/flash/ar7.cfg die sehr viele Einstellungen beinhaltet.
· In der /var/flash/voip.cfg sind alle VoIP- Spezifika abgelegt, wie Sprachqualität usw.. .
· In der /var/flash/stat.cfg sind die Verbrauchsstatistiken zu finden.
VPN über die Fritz!Box
Werden zwei Rechner über eine VPN-Strecke gekoppelt muss diese auf beiden Rechnern eingerichtet
werden. Wird eine Kopplung der Netze über die Router vorgenommen, können die User ohne Veränderung
des Netzwerks auf die Ressourcen des anderen Netzes zugreifen.
Ein Geschwindigkeitsrausch wird sich unter DSL aber nicht einstellen, da bei DSL der Server
(Sender) z.B.: bei einer DSL2000 nur mit 192kbit/s senden kann.
Für dieses wird OpenVPN eingesetzt da es für die Mips-Plattform der Fritzbox sowie für Windows
und Linux Versionen gibt. Die SSL/TLS-Protokoll ist einfacher zu konfigurieren als IPSec und
bei weitem nicht so Leistungshungrig. Die aktive Community
IP-Fone-Forum
könnte vielleicht
behilflich sein.
Wie bei Netzwerkkopplungen üblich ist, müssen die Netzwerke verschiedene Subnetze liegen
(Verschieden Netzwerkklassen stellen kein Problembar).
Sollte dieses nicht der Fall sein, sollte der kleine Standort seinen IP-Bereich ändert.
Feste IP-Adressen sollten zu erst geändert werden und anschließend die DHCP- Clients über
den Server.
(Viel Spaß!
in meinem Unternehmen hatte der kleine Standort geschätzte 80 Knoten. Davon waren 30 Feste IP's
von denen 25 Fremdfirmen vergeben haben, 8 Firmen gab es nicht mehr.)
Bei der Key-Datei ist eine einfacher statischer (preshared) Key vollkommen ausreichend.
Da keiner über eine Fritz!Box ein Schlüsselmanagement laufen lässt.
Eine VPN-Key-Datei wird unter
www.The-Construct.com/functions/create_secret.php
erzeugt,
speichern Sie die erzeugte Datei vorerst auf Ihren Rechner.
Netzbeispiel:
Server Client
Firma Home
192.168.1.0 192.168.100.0
255.255.255.0 255.255.255.0
Fritz!Box als VPN-Server einrichten
Da ich dieses mit einem Firmenserver erledigt habe, kann ich nur theoretisch darauf eingehen.
Die Konfigurationsdatei:
dev tun0
dev-node /dev/misc/net/tun
ifconfig 192.168.200.2 192.168.200.1
tun-mtu 1500
float
mssfix
#Pfad zum Key File
secret /var/tmp/secret.key
#Protokoll auf TCP und Port 1194
proto tcp-server
port 1194
#Protokollierung auf 4
verb 4
#Routen setzen, bei route Subnetz des Clients
# bei push Subnetz des eigenen Servers eintragen
route 192.168.1.0 255.255.255.0
push "route 192.168.100.0 255.255.255.0"
#Verbindung erhalten
ping 15
push "ping 15"
ping-restart 120
push "ping-restart 120"
Ändern Sie Ihre IP`s den Gegebenheiten an ab.
Gute Links:
Seitenanfang