Technik & Know-how: Tuning und Hacks für die Fritz Box

08.03.2006
Die "Fritz Box" zählt zu den beliebtesten DSL-Routern in Deutschland. Gut abgeschirmt vom Anwender werkelt in ihrem Inneren Linux als Betriebssystem. Verschafft man sich dazu einen Zugang, stehen weit mehr Optionen zur Verfügung, als AVM unter der Weboberfläche anbietet.

Der Erfolg der Fritz Box liegt neben den Hardware-Features in ihrer einfachen Administration begründet. Eine komfortable Weboberfläche erledigt für den Anwender vieles mit einem Klick und lässt kaum eine Fehlkonfiguration zu. Deshalb ist die Fritz Box-Serie der Berliner Firma AVM auch bei den DSL-Providern beliebt und wird stark subventioniert unter das Volk gebracht.

Doch die einfache Konfiguration schränkt den Anwender an vielen Stellen unnötig ein. Bis zum großen Firmwareupdate für alle Modelle im Oktober und November 2005 war es beispielsweise nicht möglich, einen ganzen Portbereich zur Weiterleitung frei zu geben. Wer einen Block von TCP- oder UDP-Ports in der Firewall frei geben wollte, musste jede Nummer einzeln angeben.

Inzwischen hat sich eine aktive Community der Fritz Box angenommen und bietet zahlreiche neue Features. Etliche davon lassen sich einfach im laufenden Betrieb nachrüsten. Aber für Fritz Box existieren auch komplett modifizierte Images.

Im Folgenden gehen wir auf Erweiterungen ein, die zum originalen Betriebssystem der Fritz Box zugefügt werden können. Doch selbst damit gilt: Geht etwas schief, darf man nicht auf einen Garantie plädieren oder auf Kulanz hoffen. AVM stellt sich strikt gegen Modifikationen, wohl um nicht in Supportanfragen zu ertrinken. Allerdings zeigte sich die Fritz Box bei unseren Versuchen als sehr tolerant. Mehr als den Stromstecker zu ziehen mussten wir nie als Wiederbelebung durchführen.

Firmware-Update

Im Oktober und November 2005 hat AVM die Konfigurationsmöglichkeiten der meisten Modelle aus der Fritz Box-Serie deutlich erweitert. Deshalb sollten Sie vor irgendwelchen Modifikationen zunächst die aktuelle Firmware in Ihre Box einspielen. Gehen Sie dazu einfach mit dem Webbrowser in der Konfiguration Ihrer Box auf den Punkt System/Firmware-Update.

Per Klick gelangen Sie zur aktuellen Firmware bei AVM, die Sie auf Ihre Festplatte speichern. Anschließend wählen Sie mit durchsuchen die Datei aus und wählen "Update".

Nach einigen Minuten ist die Box wieder online und stellt Ihnen die neuen Features zur Verfügung. Dabei bleibt Ihre Konfiguration erhalten, so dass Sie beispielsweise die DSL-Zugangsdaten und Ihre Portfreigaben nicht nochmals eingeben müssen.

Im Folgenden beziehen wir uns auf die Firmware 14.3.86 und die Fritz Box Fon WLAN 7050. Die Modifikationen sind aber so allgemein, dass sie auch auf anderen Konfigurationen laufen sollten.

Zugang verschaffen über Telnet

Werksseitig kann die Fritz Box nur über den Webbrowser angesprochen werden. Für den direkten Zugriff auf das Betriebssystem muss man sich daher erst einen Telnet-Zugang schaffen.

Das Linux der Fritz Box enthält bereits einen Telnet-Daemon. Nur wird dieser im Normalfall nicht gestartet. Es gilt also zunächst einen Weg zu finden, diesen Daemon zum Laufen zu bekommen. Hat man erst einmal Telnet, hat man die Box unter Kontrolle.

Findige Mitglieder der Community haben dazu die Images der Firmwareupdates analysiert. Dabei zeigt sich, dass die Fritz Box alle Updates in eine einfache "tar"-Datei verpackt. Dabei zeigt sich, dass die Updates im Verzeichnis "/var" ein Skript namens "install" enthalten, in dem AVM den Ablauf des Updates bestimmt. Legt man nun ein eigenes tar-File an, das im Verzeichnis /var ein Skript enthält, das Telnet startet, ist nach einem Firmwareupdate mit dieser Datei die Box übernommen.

Mini-Firmware-Update

Auf www.tecChannel.de finden Sie unter dem Webcode 432803 einen Link zur Datei "Telnetstart". Dieses tar-Archiv enthält lediglich im Verzeichnis /var eine einzige Datei mit folgendem Skript:
#! /bin/sh
/usr/sbin/Telnetd -l /sbin/ar7login
exit 0

Es startet den Telnet-Daemon und nutzt zum Zugangsschutz das Programm "ar7login", das nach einem Passwort verlangt. Dabei kommt dasselbe Passwort zum Tragen, dass auch die Konfiguration über das Webinterface absichert. Sollten Sie noch keines vergeben haben, sollten Sie das im Webbrowser auf der Fritz Box unter "System/Fritz Box-Kennwort" umgehend nachholen.

Legen Sie dieses tar-Archiv auf Ihrer Festplatte ab und wechseln Sie dann im Webbrowser zum Firmwareupdate der Fritz Box. Wählen Sie mit "Durchsuchen" die Datei aus und starten Sie das Update. Zwar meldet die Box daraufhin, das Update sei fehlgeschlagen, aber es sei kein Fehler aufgetreten. Das ist auch richtig so, denn Telnetstart hat lediglich ein Script eingeschleust und nichts upgedatet.

Starten Sie die Box jetzt nicht neu, denn der Telnet-Daemon läuft nur temporär. Auch kann es passieren, dass das Webinterface nicht mehr reagiert. Das ist aber normal, da ein Firmwareupdate immer nach einem Reboot verlangt.

Falls Sie eigene tar-Archive zum Update der Firmware erzeugen möchten, eine Warnung vorweg. Die Fritz Box zeigt sich an dieser Stelle sehr zickig. Tar-Archive, die mit Windows-Programmen erzeugt wurden, verweigert die Box als Firmwareupdate meistens. Erzeugt man die Archive jedoch auf einem Linux-Rechner, treten keine Probleme auf. Neben der tar-Version sorgen auch die unter Windows nicht vorhandenen Gruppen und Rechte für diese Inkompatibilität.

Telnet permanent einbinden

Wechseln Sie auf einen Commandpromt von Windows oder Linux und starten Sie Telnet mit der IP-Adresse der Box, bei uns mit "telnet 192.178.178.100". Dann sollte sich das BusyBox-Linux der Box mit seinem Prompt melden.

Um Telnet auch nach dem Reboot zur Verfügung zu haben, wechseln Sie auf der Fritz Box in das Verzeichnis "/var/flash". Darin befindet sich - neben zahlreichen, äußerst interessanten Konfigurationsdateien - die Datei "debug.cfg", die die Fritz Box bei jedem Reboot ausführt. Mit dem Befehl
echo "/usr/sbin/telnetd -l /sbin/ar7login" > /var/flash/debug.cfg
binden Sie den Start des Telnet-Daemons fest in den Bootvorgang der Fritz Box ein. Jetzt können Sie die Box mit
/sbin/reboot
neu starten.

Abschließend stellt sich noch die Frage, wie man den Daemon bei Bedarf wieder los wird. Denn selbst bei einem Firmwareupdate überschreibt die Fritz Box die Datei debug.cfg nicht. Wechseln Sie daher zum Löschen auf dem Telnet-Promt einfach wieder in das Verzeichnis /var/flash und leeren Sie die Datei mit
echo > debug.cfg

FTP-Server einbinden

Das Durchstöbern der Fritz Box mittels Telnet ist zwar prinzipiell möglich. Doch es macht wenig Freude, mit
cd
in ein neues Verzeichnis zu wechseln, mit
ls
den Inhalt zu durchsuchen und mit
cat
die Dateien am Bildschirm auszugeben. Viel einfacher geht die Erforschung, wenn man einen FTP-Server auf der Box startet und dann mit einem vernünftigen Werkzeug auf Schatzsuche geht.

Allerdings findet sich unter den Dateien der Original-Firmware kein FTP-Server. Als ein Ausweg bietet sich die Installation einer modifizierten Firmware an. Es geht aber auch auf einem sichereren Weg.

Bis auf den Speicher für Konfigurationsdateien und Logs bietet die Fritz Box keinen Speicherplatz, in dem man Erweiterungen nachträglich ablegen könnte. Die Idee ist nun, die benötigten Dateien beim Boot aus dem Internet in den Arbeitsspeicher der Box nachzuladen. Die dazu nötigen Schritte trägt man wie schon bei Telnet in der debug.cfg ein.

Bevor Sie die Kommandos allerdings final eintragen, sollten Sie sie zunächst einmal alle manuell vom Telnet-Prompt aus durchführen. Denn Fehler in "debug.conf" lassen sich durch einen Reboot nicht beheben.

FTP nachladen

Der von uns ausgewählte bftpd-Server besteht aus zwei Dateien, einer Binärdatei und einer Konfigurationsdatei. Diese haben wir unter http://www.tecchannel.de/download/432803 abgelegt. Zum Download auf die Fritz Box kommt das Linux-Kommando
wget
zum Einsatz. Als Ziel dient das Verzeichnis "/var/tmp", das die Box im Arbeitsspeicher mappt. Der Download erfolgt über folgende drei Befehle:
cd /var/tmp
wget http://www.tecchannel.de/download/432803/bftpd.conf
wget http://www.tecchannel.de/download/432803/bftpd

Anschließend müssen Sie noch die Rechte passend setzen und damit die Binärdatei ausführbar machen. Das erledigt ein
chmod +x bftpd
Ein Aufruf von
./bftpd -d -c /var/tmp/bftpd.conf
startet den FTP-Server mit der entsprechenden Konfigurationsdatei. Überprüfen Sie zum Test den Start mit dem Befehl
ps
. Der FTP-Server sollte jetzt in der Prozessliste auftauchen und Ihr Bildschirm analog dem Screenshot aussehen.

FTP-User anlegen

Nun sind wir fast am Ziel. Der FTP-Server benötigt lediglich noch einen Eintrag in der Datei "passwd". Darin werden sowohl der Username und ein Hashcode des Passworts zur Authentifizierung angelegt als auch der sichtbare Bereich des Dateibaums.

Im Beispiel wählen wir als User den "albert" und als Passwort "otto". Für diese Kombination müssen wir zunächst zugehörigen Hashwert errechnen. Komfortabel erledigt dies die Webseite www.flash.net/cgi-bin/pw.pl.

Jetzt muss nur noch eine neue Zeile mit den passenden Daten in der passwd-Datei im Verzeichnis "/var/tmp" zugefügt werden. Um nicht mit dem integrieretn Editor "vi" kämpfen zu müssen nutzen wir dazu den echo-Befehl. Achten Sie auf die beiden ">>"-Zeichen, damit unsere Zeile nur angefügt wird und nicht die bestehenden Einträge überschreibt.
echo "albert:Wrrsi4PbgAAMA:0:0:root:/:null" >> passwd
gibt das komplette Dateiverzeichnis für den User "albert" frei.

FTP permanent einbinden

Versuchen Sie jetzt, sich mit einem FTP-Client auf der Fritz Box einzuloggen. Treten dabei keine Probleme auf, können Sie die nötigen Befehle zum Einbinden des FTP-Servers permanent in die Datei debug.cfg einbinden.

Bislang besteht diese Datei nur aus einer Zeile, die den Telnet-Daemon startet. Diese haben wir ganz einfach mit echo und der Umleitung mittels ">" erzeugt. Wer jetzt versucht, analog dazu diese Datei durch erneute Echo-Befehle und ">>" zu erweitern, der scheitert jedoch. Auch verweigert die Fritz Box das direkte bearbeiten dieser Datei mit dem integrierten Editor
vi
oder das Kopieren mit
cp
. Auch der FTP-Server zeigt die Dateien im Verzeichnis "/var/flash" nicht korrekt an.

Zum Bearbeiten des erweiterten Startskripts müssen Sie die debug.cfg stets mittels
cat /var/flash/debug.cfg > /var/tmp/debug.cfg
zunächst im tmp-Verzeichnis neu anlegen. Dort können Sie die Datei dann bearbeiten. Anschließend müssen Sie die bearbeitet Datei mit
cp /var/tmp/debug.cfg /var/flash/debug.cfg
wieder zurückspielen.

Noch eine weitere Warnung vorweg. Linux reagiert kritisch, wenn Sie eine Datei mit einem Windows-Editor bearbeiten. Beide Systeme nutzen eine unterschiedliche Kodierung des Zeilenendes in Text-Dateien. Wenn Sie eine Datei unter DOS/Windows bearbeiten, nutzen Sie unbedingt einen Editor, der im Unix-Format speichern kann.

Eine weitere Falle liegt bei ZIP-Archiven, die den Autor viele Stunden Arbeit und Nerven gekostet hat. Speicher man eine Unix-kodierte Textdatei in ein ZIP-Archiv und entpackt dieses dann wieder auf einem Windows-System, wandelt Winzip die Datei ohne Nachfragen in das DOS-Format um. Handelt es sich etwa um eine Konfigurationsdatei, die man anschließend per FTP auf die Fritz Box kopiert, ist der Ärger vorprogrammiert.

Erweiterte debug.cfg

Im Prinzip müssen Sie jetzt die Datei debug.cfg ledig auf folgende Zeilen erweitern:
/usr/sbin/Telnetd -l /sbin/ar7login

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 "albert:Wrrsi4PbgAAMA:0:0:root:/:null" >> /var/tmp/passwd
/var/tmp/bftpd -d -c /var/tmp/bftpd.conf

Nach dem Start von Telnet lädt das Script den FTP-Server nach und startet ihn. Anschließend erfolgt noch ein Eintrag in die Passwort-Datei für den FTP-Login. Wer nicht albert/otto nutzen möchte, muss dabei wie beschrieben einen anderen Hash eintragen.

Nach dem Erstellen einer temporären Arbeitskopie könnte man die Datei mittels
echo >>
um die entsprechenden Zeilen erweitern. Angenehmer ist aber die Bearbeitung mit dem integrierten Editor
vi
. Sie können die erweiterte debug.cfg aber auch direkt von unserem tecCHANNEL-Server auf die Fritz Box downloaden. Wechseln Sie dazu in das tmp-Verzeichnis. Die Datei laden Sie mit wget herunter, anschließend kopieren Sie sie an ihren finalen Ort. Dazu müssen Sie auf dem Telnet-prompt lediglich folgende drei Zeilen eingeben:
cd /var/tmp
wget http://www.tecchannel.de/download/432803/debug.cfg
cp /var/tmp/debug.cfg /var/flash/debug.cfg
Nach einem Reboot ist der FTP-Server permanent in Ihre Fritz Box eingebunden.

Config-Dateien bearbeiten

Mit den jetzt installierten Tools Telnet und FTP lassen sich die Konfigurationsdateien der Fritz Box bequem analysieren und verändern. Alle interessanten Dateien legt die Box im wieder beschreibbaren Flash-Speicher ab, der in das Dateisystem unter /var/flash gemappt ist. Allerdings kann auf diese Dateien nicht direkt zugegriffen werden. Wie schon bei der debug.cfg müssen Sie zum Bearbeiten die Dateien zunächst mittels
cat
in das tmp-Verzeichnis übertragen. Dann können Sie die Dateien mit FTP auf den PC übertragen, bearbeiten und ausdrucken.

Interessant ist zunächst die Datei "ar7.cfg". Mit
cat /var/flash/ar7.cfg > /var/tmp/ar7.cfg
legen Sie eine temporäre Kopie davon an. Kopieren Sie diese Datei dann auf ihren PC. Darin finden Sie dann beispielsweise die Regeln der Firewall, Ihre DSL-Konfiguration und die Parameter für interessante Features wie einen automatischen täglichen Statusbericht per E-Mail.

Editieren Sie die Datei nach belieben auf dem PC, speichern Sie sie im Unix-Format, kopieren Sie sie in das tmp-Verzeichnis zurück und überschreiben Sie dann die ursprüngliche Version mit
cp /var/tmp/ar7.cfg /var/flash/ar7.cfg
Führt man abschließend das Startscript über
exec /etc/init.d/rc.net reload
aus, kann man das Syslog beim restart der Box mit den geänderten Parametern sogar mitlesen.

Weitere Config-Dateien

Ein weiteres spannendes Betätigungsfeld bietet die Datei "voip.cfg". Darüber können Sie die benutzen Codecs für VoIP bestimmen. Zudem lassen sich einige Parameter festlegen, die die Sprachqualität festlegen.

Informativ zeigt sich die Datei "stat.cfg". Darin finden Sie die Statistik der mit Daten oder VoIP übertragenen Bytes.

Fazit

Wer sich einen direkten Zugang zur Fritz Box verschafft, kann zahlreiche Features und Parameter verändern, die über das Webinterface nicht zugänglich sind. Zudem ist es einfach interessant, den Ingenieuren von AVM etwas über die Schulter zu schauen.

Wem das nicht genügt, dem sie das Forum www.ip-fon-forum.de empfohlen. Darin gibt es Diskussionen zu modifizierter Firmware, die die Funktionen der Fritz Box dramatisch erweitern. Eine hilfreiche Quelle rund um die DSL-Router von AVM findet sich auch unter www.wehavemorefun.de/fritzbox. (Albert Lauchner, tecChannel.de/)