Fritz!Box-Hack

Tuning und Hacks für die Fritz!Box

14.02.2014 von Albert Lauchner
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 über die Webadministration anbietet.

Aus aktuellem Anlass 11.02.2014 weisen wir darauf hin, dass viele Fritz!Box-Router einen Sicherheitsleck besitzen und ein Update der Firmware zwingend erforderlich ist. Weitere Informationen erhalten Sie in dem Beitrag: Sicherheitslücke in der FritzBox jetzt schließen - Updates verfügbar.

Bitte beachten Sie: Seit Anfang 2007 hat AVM grundlegende Änderungen an der Firmware der Fritz!Box vorgenommen. Daher haben wir diesen Beitrag komplett überarbeitet. Die weiteren Teile unserer Fritz!Box-Serie werden wir in den nächsten Wochen aktualisieren. Bis dahin kann es sein, dass die dort gezeigten Screenshots und die Vorgehensweisen von den jetzt nötigen abweichen.

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 Fritz!Box hat weit mehr Potenzial, als AVM den normalen Kunden ahnen lässt. In ihrem Inneren läuft ein Linux-System, das nur darauf wartet, mit zusätzlichen Aufgaben gefüttert zu werden. Inzwischen hat sich eine aktive Community der Fritz!Box angenommen und entwickelt neue Features für den DSL-Router. So kann man einen Least-Cost-Router in die Telefonanlage der Fritz!Box integrieren, der automatisch die günstigsten Vorwahlnummern wählt. Oder man schaltet zwei getrennte Netzwerke über eine VPN-Kopplung über das Internet zu einem zusammen.

Tuning und Hacks für die Fritz!Box
Fritz!Box Hack
Drei Klicks: Diese Firmware 29.04.29 ist veraltet. Im Webinterface der Fritz!Box ist das Firmware-Update jedoch komfortabel integriert und die Box mit wenigen Klicks auf dem neuesten Stand. <P> <a href="http://www.tecchannel.de/server/extra/432803/tuning_hacks_fritzbox_fritz_box_erweiterungen_ftp_telnet/" target="_blank">Tuning und Hacks für die Fritz!Box</a> </P>
Fritz!Box Hack
Coole Sache: Die Firmware ab 29.04.33 enthält bei etlichen Modellen umfassende Energiesparfunktionen und erlaubt das Abschalten nicht benötigter Komponenten.
Fritz!Box Hack
USB-Port: Mit jedem Firmware-Update erhöht AVM auch die Kompatibilität zu Druckern und Massenspeichern am USB-Port der „großen“ Fritz!Box-Modelle.
Fritz!Box Hack
Keine Angst: Ignorieren Sie die Warnmeldung, und installieren Sie die Erweiterung.
Fritz!Box Hack
Nicht unterstützte Änderung: Ab sofort erhalten Sie im Browserinterface eine Warnmeldung.
Fritz!Box Hack
Alles okay: Der FTP-Server wurde von www.tecchannel.de nachgeladen und ist gestartet.
Fritz!Box Hack
Tipp: Über Bearbeiten – Einfügen gibt es keine Tippfehler.
Fritz!Box Hack
Komplett: newenv startet ein Busybox mit mehr Komfort.

Einige der Erweiterungen lassen sich einfach im laufenden Betrieb nachrüsten, ohne die Firmware der Box zu verändern. Andere erfordern ein komplett modifiziertes Image. Im Folgenden gehen wir nur auf Erweiterungen ein, die im laufenden Betrieb nachgeladen werden. Dadurch ist das Risiko eines dauerhaften Schadens minimal. Mehr als das Ziehen des Stromsteckers mussten wir bei unseren Experimenten nie als Wiederbelebung durchführen.

Doch wenn sich die Fritz!Box plötzlich nicht mehr meldet, kann man nicht auf einen Garantiefall plädieren oder auf Kulanz hoffen. AVM stellt sich strikt gegen Modifikationen, wohl, um nicht in Support-Anfragen zu ertrinken. Aber keine Angst: Im Teil fünf unserer Serie, Rettung für die ’tote’ Fritz!Box, finden Sie Lösungen selbst für die schlimmsten Katastrophen.

TecChannel Special zur AVM Fritz!Box

Teil 1: Tuning und Hacks für die Fritz!Box

Teil 2: Fritz!Box-Hack: Computer über das Internet starten und fernsteuern

Teil 3: Die Fritz!Box als Least Cost Router

Teil 4: VPN-Direktkopplung mit der Fritz!Box

Teil 5: Rettung für die defekte Fritz!Box

Teil 6: Eigene Firmware mit Freetz erstellen

Teil 7: Billiger telefonieren trotz Flatrate

Firmware-Update

In regelmäßigen Abständen erweitert AVM die integrierten Features der diversen Fritz!Box-Modelle durch Firmware-Updates. Dabei fixt der Hersteller auch Bugs in der Firmware und erhöht die Sicherheit durch neue Versionen des Linux-Kernels. 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 Einstellungen – System – Firmware-Update.

Drei Klicks: Diese Firmware 29.04.29 ist veraltet. Im Webinterface der Fritz!Box ist das Firmware-Update jedoch komfortabel integriert und die Box mit wenigen Klicks auf dem neuesten Stand.

Per Klick gelangen Sie zur aktuellen Firmware bei AVM, die Sie auf Ihrer Festplatte speichern. Anschließend wählen Sie mit „Durchsuchen“ die Datei aus und gehen auf „Update“.

Coole Sache: Die Firmware ab 29.04.33 enthält bei etlichen Modellen umfassende Energiesparfunktionen und erlaubt das Abschalten nicht benötigter Komponenten.

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

USB-Port: Mit jedem Firmware-Update erhöht AVM auch die Kompatibilität zu Druckern und Massenspeichern am USB-Port der „großen“ Fritz!Box-Modelle.

Im Folgenden beziehen wir uns auf die Firmware 29.04.33 der Fritz!Box 7170 und 14.04.33 der Fritz!Box Fon WLAN 7050. Beide stammen aus dem zweiten Quartal 2007. Bis auf hardwarespezifische Features wie etwa die Unterstützung des USB-Ports gibt es bei den Firmware-Versionen x.04.33 keinen Unterschied für die nachladbaren Modifikationen. Lediglich die Bearbeitung von Konfigurationsdateien unterscheidet sich, da die „kleinen“ Fritz!Box-Modelle keinen eingebauten vi-Editor mehr in der Firmware enthalten.

Wichtig: Grundlegendes Know-how für alle Modifikationen

Werkseitig kann die Fritz!Box nur über den Webbrowser angesprochen werden. Für den direkten Zugriff auf das Linux-Betriebssystem muss man sich daher erst einen telnet-Zugang auf die Kommandozeile der Fritz!Box schaffen.

Bevor wir aber damit starten, noch eine kleine Einführung in das Prinzip sämtlicher nachladbarer Modifikationen der Fritz!Box. Zunächst steht man vor dem Problem, überhaupt eine eigenes Linux-Kommando auf der Fritz!Box auszuführen und damit die Box zu modifizieren. Findige Mitglieder der Community haben dazu die Images der Firmware-Updates analysiert. Dabei zeigt sich, dass AVM alle Updates in ein einfaches tar-Archiv verpackt. Die Updates enthalten darin im Verzeichnis /var ein Script namens install, das die Shell der Box beim Update ausführt. Normalerweise bestimmt AVM den Ablauf des Updates über dieses Script. Ersetzt man jedoch das Script durch ein eigenes, kann man durch einen simulierten Firmware-Update jeden beliebigen Linux-Befehl auf der Fritz!Box ausführen.

Dies ist jedoch nur die halbe Miete. Denn nach einem Reboot der Fritz!Box wären alle Änderungen verloren. Aber es gibt auf der Fritz!Box eine zentrale Datei, die folgende Kriterien erfüllt:

Diese Datei namens debug.cfg, die sich im Verzeichnis /var/flash befindet, ist der Dreh- und Angelpunkt sämtlicher Modifikationen der Fritz!Box. Befehle, die man in die debug.cfg einfügt, wie etwa den Start des telnet-Daemons, bleiben permanent in den Startprozess der Fritz!Box eingebunden und ermöglichen so erst eine Erweiterung der Funktionalität.

Doch Vorsicht: Wer schwere Fehler in die debug.cfg einbaut, die die Box beim Booten abstürzen lassen, hat auf einfachem Weg keinen Zugriff mehr. Hier hilft dann nur noch unser Beitrag Workshop: Rettung für die Fritz!Box.

.

Zugang verschaffen über telnet

Die Firmware-Versionen x.04.33 enthalten wieder einen telnet-Daemon, der lediglich aktiviert werden muss. Im April 2007 hatte AVM den Daemon aus Platzgründen bei den kleinen Modellen wie der Fritz!Box Fon WLAN 7050 entfernt. Doch scheinbar hat man jetzt wieder etwas freien Speicher gefunden und so die Klagen der Community beendet.

Für einen ersten Test kann man den telnet-Zugang über ein analoges Telefon temporär freischalten. Dazu genügt es, das Telefon an die Fritz!Box anzuschließen und durch die Eingabe von „#96*7*“ den Daemon zu starten. Die Box quittiert diese Tastenkombination mit einem kurzen „Tut“ im Telefon. Öffnet man nun ein cmd-Fenster in Windows und startet telnet 192.168.1.1 (oder die entsprechende IP-Adresse der Fritz!Box), sollte sich der Linux-Prompt schon melden. Abschalten kann man den Daemon übrigens über die „Telefonnummer“ „#96*8*“.

Hier gleich ein wichtiger Tipp: Mitunter stört die Fritz!Box das Arbeiten auf dem telnet-Prompt, da sie zwischendurch Statusausgaben auf den Bildschirm schreibt. Hier hilft es, einfach ein zweites telnet-Fenster zu starten und darin zu schreiben. Die Statusmeldungen erscheinen dann nur in der ersten telnet-Sitzung.

In unserer Testumgebung haben wir den DSL-Routern in unserer Fritz!Box-Farm unterschiedliche Namen und IP-Adressen gegeben. Diese werden bei einigen der Screenshots angezeigt. Lassen Sie sich dadurch aber nicht verwirren, und nutzen Sie stets die IP-Adresse Ihres DSL-Routers.

telnet permanent einbinden

Die Lösung über die Telefonaktivierung ist beim nächsten Booten der Fritz!Box wieder verschwunden. Um telnet auch nach dem Reboot zur Verfügung zu haben, müssen Sie daher den Start des Daemons in die Datei debug.cfg eintragen. Zum besseren Verständnis beschreiben wir dies zunächst auf dem manuellen Weg. Auf den nächsten Seiten lesen Sie dann, wie Sie das Eintragen einfacher erledigen oder vorgehen, wenn Sie telnet nicht schon vorab per Telefoncode aktiviert haben.

Zum Start von telnet muss lediglich der Befehl /usr/sbin/telnetd -l /sbin/ar7login ausgeführt werden. Dieser verwendet zum Zugangsschutz das Programm ar7login, das nach einem Passwort verlangt. Dabei kommt dasselbe Passwort zum Tragen, das auch die Konfiguration der Fritz!Box über das Webinterface absichert. Falls Sie noch keines vergeben haben, sollten Sie das im Webbrowser auf der Fritz!Box unter Einstellungen – System – Fritz!Box-Kennwort umgehend nachholen.

Auf Dateien mit dem Kürzel AR7 werden Sie noch öfter stoßen. Dieser Name geht auf den AR7-Prozessor von Texas Instruments zurück, der in der Box seinen Dienst verrichtet. Der hoch integrierte Chip enthält eine MIPS-4KEc-CPU, einen TI DSP für das ADSL-Interface, das USB-Slave-Interface, IO-Ports beispielsweise zur LED-Ansteuerung und den Ethernet-Controller.

Wechseln Sie mit cd /var/flash zunächst das Verzeichnis. Hier finden Sie alle Konfigurationsdateien der Fritz!Box, die ihren Inhalt auch nach einem Reboot behalten. Mit dem Befehl

echo "/usr/sbin/telnetd -l /sbin/ar7login" > /var/flash/debug.cfg

schreiben Sie den Start des telnet-Daemons in die debug.cfg und binden ihn so fest in den Bootvorgang der Fritz!Box ein. Kontrollieren Sie den Eintrag mit einem cat debug.cfg . Dann können Sie die Fritz!Box mit /sbin/reboot neu starten, und der telnet-Login sollte anschließend immer noch möglich sein.

Abschließend stellt sich noch die Frage, wie man den telnet-Daemon bei Bedarf wieder loswird. Denn selbst bei einem echten Firmware-Update überschreibt die Fritz!Box die Datei debug.cfg nicht. Wechseln Sie daher zum Löschen auf dem telnet-Prompt einfach wieder in das Verzeichnis /var/flash, und leeren Sie die Datei mit

echo > debug.cfg

Der bessere Weg per simuliertem Firmware-Update

Einfacher als das direkte Einfügen der Änderung ist es, die debug.cfg durch ein simuliertes Firmware-Update zu verändern. Zum einen sind Tippfehler ausgeschlossen, wenn man eine getestete Datei verwendet. Zum anderen sind komplexere Einträge möglich, wenn man das Bearbeiten der Datei am PC mit einem richtigen Editor erledigt.

Für den Start des telnet-Daemons hat Harald Becker vom Telefonsparbuch.de eine elegante Startlösung entwickelt. Dazu müssen Sie lediglich die Datei TelefonSparbuch_Telnet04.30.tar herunterladen, auf Ihrem PC zwischenspeichern und dann als Firmware-Update einspielen.

Beim Update erschein dabei eine Warnung, dass dies keine Firmware-Datei von AVM ist. Ignorieren Sie die Warnung, und setzen Sie das Update fort.

Keine Angst: Ignorieren Sie die Warnmeldung, und installieren Sie die Erweiterung.

Nach einem Reboot sollten Sie sich auf der Fritz!Box mit telnet einloggen können. Wenn Sie sich ab jetzt per Browser auf die Box einloggen, bemerken Sie eine Änderung: Hier erinnert Sie die Fritz!Box mit einer Warnung daran, dass sie nicht mehr im Originalzustand ist.

Nicht unterstützte Änderung: Ab sofort erhalten Sie im Browserinterface eine Warnmeldung.

Das Script im Detail

Im Folgenden haben wir das Script abgebildet, das der simulierte Firmware-Update in die debug.cfg einträgt. Einige Dinge sind dabei bemerkenswert.

Der cat -Befehl in Zeile drei erledigt die eigentliche Arbeit und trägt den darauf folgenden Text bis zur Zeile 24 (EOF) in die debug.cfg ein. Das Script, das ab dann bei jedem Reboot der Fritz!Box startet, prüft zunächst in Zeile 6, ob ein telnet-Daemon zur Verfügung steht. Falls ja, wird dieser gestartet. Sollte AVM den Daemon in einer zukünftigen Firmware-Version wieder aus der Fritz!Box entfernen, lädt das Script einfach die nötige Software per wget von lcr.telefonsparbuch.de nach (dazu gleich mehr). Vorher wartet es allerdings in einer ping-Schleife (Zeile 10) so lange, bis der Zugriff zum Internet aufgebaut ist.

Wenn Sie nach der Installation in der debug.cfg die Zeilen 14 bis 16 aktivieren (#-Zeichen entfernen) und die Zeilen 19 und 20 mit einer „#“ auskommentieren, erfolgt der telnet-Zugang immer ungeschützt ohne Passwortabfrage.

#!/bin/sh

cat > /var/flash/debug.cfg << 'EOF'
#!/bin/sh
#>>TELNET
if [ "$(busybox | grep -c ' telnetd,')" = "1" ];then
/bin/busybox telnetd -l /sbin/ar7login
else
{
while !(ping -c 1 lcr.telefonsparbuch.de); do sleep 5; done
wget -qO /var/utelnetd http://lcr.telefonsparbuch.de/software/fritzbox/utelnetd

# Ohne Kennwort-Abfrage
# echo "root::0:0:root:/var/tmp:/bin/sh" > /etc/passwd
# chmod +x /var/utelnetd
# /var/utelnetd -d -l /bin/sh

# Mit Kennwort-Abfrage
chmod +x /var/utelnetd
/var/utelnetd -d -l /sbin/ar7login
} &
fi
#<<TELNET
EOF

exit 1

Falls Sie eigene Scripts über ein tar-Archiv per Firmware-Update einspielen wollen, 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 Firmware-Update 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.

FTP-Server einbinden

Das Durchstöbern der Fritz!Box mittels telnet ist jetzt 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 grafischen FTP-Client vom PC aus auf Schatzsuche geht. Auch fällt das Bearbeiten von Konfigurationsdateien auf dem PC deutlich leichter.

Allerdings findet sich unter den Dateien der Original-AVM-Firmware kein FTP-Server. Als ein Ausweg bietet sich das Nachladen der benötigten Software an. Bis auf den Speicher für Konfigurationsdateien und Logs bietet die Fritz!Box aber keinen Speicherplatz, in dem man Erweiterungen dauerhaft ablegen könnte. Die Idee ist nun, die benötigten Dateien dynamisch bei jedem 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.cfg lassen sich durch einen Reboot nicht beheben.

FTP nachladen

Der von uns ausgewählte bftpd-Server für die Fritz!Box besteht aus zwei Dateien, einer Binärdatei und einer Konfigurationsdatei. Diese haben wir im Verzeichnis http://www.tecchannel.de/download/fritz.box auf unserem Webserver abgelegt. Zum Download auf die Fritz!Box kommt das Linux-Kommando wget zum Einsatz, das Dateien über das Internetprotokoll und HTTP überträgt. Als Ziel dient das Verzeichnis /var/tmp, das die Box im reichlich bemessenen Arbeitsspeicher mappt. Dessen Inhalt geht zwar bei jedem Neustart verloren. Doch da wir später den Download fest in den Bootvorgang einbinden, ist das nicht weiter tragisch.

Der Download erfolgt über folgende drei Befehle:

cd /var/tmp
wget http://www.tecchannel.de/download/fritz.box/bftpd.conf
wget http://www.tecchannel.de/download/fritz.box/bftpd

Anschließend müssen Sie noch die Rechte passend setzen und damit die Binärdatei ausführbar machen. Das erledigt

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.

Alles okay: Der FTP-Server wurde von www.tecchannel.de nachgeladen und ist gestartet.

Achten Sie darauf, dass die heruntergeladenen Dateien rund 830 und 64.500 Byte groß sind. Zeigt Ihnen wget eine deutlich andere Größe an, haben Sie sich beim Dateinamen vertippt und statt der gewünschten Datei eine Fehlermeldung unseres Servers heruntergeladen.

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 User-Name und ein verschlüsselter Hashcode des Passworts zur Authentifizierung angelegt als auch der für den jeweiligen User sichtbare Bereich des Dateibaums.

Im Beispiel wählen wir als User „albert“ und als Passwort „otto“. Für diese Kombination müssen wir zunächst den zugehörigen Hash-Wert 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 hinzugefügt werden. Um nicht mit dem integrierten Editor vi kämpfen zu müssen, nutzen wir dazu erneut 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" >> /var/tmp/passwd

gibt das komplette Dateiverzeichnis für den User „albert“ frei.

Tipp: Über Bearbeiten – Einfügen gibt es keine Tippfehler.

Kleiner Tipp: Markieren Sie die Codezeile, und kopieren Sie sie mit Strg-C in die Zwischenablage. Dann können Sie über das Kontextmenü des cmd-Fensters über Bearbeiten – Einfügen den Text fehlerfrei übertragen.

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 enthält diese Datei nur die Befehle, 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. Auch verweigert die Fritz!Box das direkte Bearbeiten dieser Datei mit dem integrierten Editor vi oder das Kopieren mit cp. Selbst der FTP-Server zeigt die Dateien im Verzeichnis /var/flash nicht korrekt an.

Dieses Verhalten entsteht, da die Fritz!Box Teile des vier MByte großen Flash-Speichers für Konfigurationsdateien und permanente Variablen unter /var/flash in das Dateisystem mappt. Dieser Flash verliert seinen Inhalt selbst bei einem Stromausfall nicht, benötigt aber spezielle Routinen zum Beschreiben.

Bearbeiten über Umwege

Zum Bearbeiten des erweiterten Startscripts 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 bearbeitete 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 Textdateien. Wenn Sie eine Datei auf Ihren PC kopieren und unter DOS/Windows bearbeiten, nutzen Sie unbedingt einen Editor, der im Unix-Format speichern kann. Nur dann wird eine bearbeitete Config-Datei nach dem Zurückkopieren von der Fritz!Box korrekt abgearbeitet.

Eine weitere Falle, die den Autor viele Stunden Arbeit und Nerven gekostet hat, liegt bei ZIP-Archiven. Speichert 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 lediglich um folgende Zeilen erweitern:

cd /var/tmp
wget http://www.tecchannel.de/download/fritz.box/bftpd.conf
wget http://www.tecchannel.de/download/fritz.box/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 in debug.cfg den FTP-Server vom Web nach und startet ihn. Anschließend erfolgt noch ein Eintrag in die Passwortdatei für das FTP-Login. Wer nicht albert / otto für den Benutzer und das Passwort nutzen möchte, muss dabei wie beschrieben einen anderen Hash eintragen.

Nach dem Erstellen einer temporären Arbeitskopie könnte man die Datei debug.cfg mittels echo >> um die entsprechenden Zeilen erweitern. Angenehmer ist aber die Bearbeitung mit dem integrierten Editor vi. Dazu genügen minimale Kenntnisse, die unser Beitrag Crash-Kurs: Arbeiten mit vi bereits auf den ersten zwei Seiten vermittelt. Einen Wehrmutstropfen gibt es aber dabei: vi ist nur noch in der Firmware der „großen“ Fritz!Boxen enthalten. In der alten Fritz!Box 7050 fand sich wohl kein Speicherplatz mehr dafür. Aber auf den nächsten Seiten erfahren Sie, wie Sie dieses Manko durch eine entsprechende Modifikation wieder ausgleichen.

Vereinfachungen

Um sich das umständliche Kopieren von var/flash nach var/tmp und zurück beim Bearbeiten von Konfigurationsdateien zu ersparen, gibt es ein spezielles Script auf jeder Fritz!Box. Das Kommando nvi ist ein Wrapper rund um vi. Dabei wird die zu editierende Datei auf die temporäre Datei /var/nvi.tmp umkopiert und vi für die temporäre Datei aufgerufen. Nach erfolgreicher vi-Sitzung wird die temporäre Datei über die Originaldatei zurückkopiert und die temporäre Datei gelöscht.

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/fritz.box/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 – außer mit nvi – 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 dabei 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 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, sichern 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 Start-Script ü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 benutzten Codecs für VoIP festlegen. Zudem lassen sich einige Parameter bestimmen, die die Sprachqualität festlegen.

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

Mehr Komfort für die alte Fritz!Box

Bei älteren Fritz!Box-Modellen wie der 7050 mit ihrem kleinen Flash-Speicher hat AVM die in der sogenannten Busybox gekapselten Hilfsprogramme stark abgespeckt und verzichtet wichtige Funktionen und Features. So fehlt dort etwa der Editor vi und sein Wrapper nvi. Auch der telnet-Zugang ist sehr rudimentär und beherrscht weder die Filename-Completion über die Tab-Taste noch eine Kommandozeilen-History. Alles Features, die man nicht missen möchte, wenn man schon einmal auf einer moderneren Fritz!Box wie der 7170 gearbeitet hat.

Komplett: newenv startet ein Busybox mit mehr Komfort.

Auch hier bietet es sich an, diese Features nachzuladen. Dazu muss man sich aber die komplette Busybox ein zweites Mal in den Speicher laden, was angesichts der knapp 600 KByte recht heftig ist. Das unten abgebildete Script erledigt diese Aufgabe, wenn es in die debug.cfg eingebunden ist. Will man anschließend komfortabel arbeiten, muss man nach dem telnet-Login das Script /var/tmp/bin/newenv aufrufen, und schon hat man den vollen Feature-Satz der großen Boxen zur Verfügung.

Einbinden der vollwertigen Busybox

Zur einfacheren Installation haben wir auch die hierfür nötige debug.cfg auf unserem Server abgelegt. Laden Sie sich auf dem telnet-Prompt mit wget die Datei debug1.cfg herunter und überschreiben Sie Ihre alte debug.cfg. Beachten Sie dabei das Umbenennen von debug1.cfg nach debug.cfg beim Copy-Befehl. Nach einem Reboot steht Ihnen das Script zum Start der Busybox dann unter /var/tmp/bin/newenv zur Verfügung.

cd /var/tmp
wget http://www.tecchannel.de/download/fritz.box/debug1.cfg
cp /var/tmp/debug1.cfg /var/flash/debug.cfg

Diese Erweiterung bindet eine komplette Busybox mit vi und vernünftigem telnet ein:

#>>VI,SH
mkdir /var/tmp/bin
if [ "$(busybox | grep -c ' vi,')" = "0" ];then
{
while !(ping -c 1 www.tecchannel.de); do sleep 5; done
wget -qO /var/tmp/busybox http://www.tecchannel.de/download/fritz.box/busybox
chmod +x /var/tmp/busybox
ln -s /var/tmp/busybox /var/tmp/bin/vi
ln -s /var/tmp/busybox /var/tmp/bin/sh
} &
fi
#<<VI,SH






# newenv-script
echo "export PATH=/var/tmp/bin:$PATH" >/var/tmp/bin/newenv
echo "sh" >>/var/tmp/bin/newenv
chmod +x /var/tmp/bin/newenv

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.

Der bisher geschaffte Zugang via telnet und FTP öffnet zwar die Fritz!Box, ist aber eigentlich eher ein Mittel zum Zweck. Wirklich nützliche Anwendung finden Sie in den weiteren Teilen unserer Serie. Im Beitrag Fritz!Box-Hacks: PCs mit ssh und Wake on LAN über das Internet starten erfahren Sie etwa, wie Sie über die Fritz!Box Ihren PC über das Internet starten und fernwarten. Durch den Einsatz von ssh bleibt dabei auch die Sicherheit nicht auf der Strecke. Aber beachten Sie bitte: Die Beiträge sind noch nicht an die aktuelle Firmware-Version angepasst, sodass sich mitunter Abweichungen bei den Screenshots ergeben können.

Wer mehr mit seiner Fritz!Box machen will, dem sei das Forum www.ip-phone-forum.de empfohlen. Darin wird über modifizierte Firmware diskutiert, die die Funktionen der Fritz!Box erheblich erweitert. Eine hilfreiche Quelle rund um die DSL-Router von AVM findet sich auch unter www.wehavemorefun.de/fritzbox. (ala)

TecChannel Special zur AVM Fritz!Box

Teil 1: Tuning und Hacks für die Fritz!Box

Teil 2: Fritz!Box-Hack: Computer über das Internet starten und fernsteuern

Teil 3: Die Fritz!Box als Least Cost Router

Teil 4: VPN-Direktkopplung mit der Fritz!Box

Teil 5: Rettung für die defekte Fritz!Box

Teil 6: Eigene Firmware mit Freetz erstellen

Teil 7: Billiger telefonieren trotz Flatrate