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.
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.
Teil 2: Fritz!Box-Hack: Computer über das Internet starten und fernsteuern |
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.
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“.
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.
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:
Sie ist in einem Flash-Speicher abgelegt und verliert ihren Inhalt selbst nach einem Stromausfall nicht.
Sie kann überschrieben und – wenn auch über einen Umweg – sogar mit dem in der Fritz!Box integrierten vi-Editor bearbeitet werden.
Die Fritz!Box arbeitet den Inhalt dieser Datei bei jedem Reboot als Skript ab.
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.
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.
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.
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.
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.
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)
Teil 2: Fritz!Box-Hack: Computer über das Internet starten und fernsteuern |