1932933

Fritzbox-Hacks: Der Router als Webserver

10.07.2014 | 11:09 Uhr |

Nur für den Einsatz als Router ist die Fritzbox eigentlich zu schade. Erforschen Sie die Fritzbox über einen Webzugang und erweitern Sie den Router mit alternativer Firmware.

Die Fritzbox von AVM ist der in Deutschland mit Abstand am weitesten verbreitete DSL-Router. Die AVM-Hardware steckt auch in Geräten von 1&1, etwa der Surf & Phone Box oder dem Homeserver, und in Routern der Telekom (Speedport).

Das Gerät stellt – je nach Modell – den Zugang zum Internet über Kabel oder WLAN bereit und kann auch als Telefonanlage dienen. Als Betriebssystem kommt Linux zu Einsatz, der Quellcode der Open-Source-Komponenten wird von AVM veröffentlicht. Durch die große Verbreitung der AVM-Geräte gibt es eine besonders aktive Community, die sich mit den Interna der Fritzbox beschäftigt und Modifikationen entwickelt. Sie können dann beispielsweise Web-, Mail- oder Streaming-Server auf Ihrer Fritzbox betreiben oder beliebige anderer Programme ausführen.

Wichtige Hinweise: Eingriffe in die Software der Fritzbox sind nicht ganz ohne Risiko. Wenn dabei etwas schiefgeht, funktioniert das Gerät möglicherweise nicht mehr. Suchen Sie daher im Internet nach Erfahrungen anderer Benutzer mit dem von Ihnen verwendeten Fritzbox- Modell. Denn nicht jede Modifikation funktioniert auch mit jedem Gerät.

Beachten Sie außerdem, das Sie wahrscheinlich die Gewährleistung verlieren, wenn Sie Fritzbox-Hacks durchführen.

Wir haben die Tipps in diesem Beitrag auf einer Fritzbox 7390 mit der zurzeit aktuellen Firmware-Version 84.06.01 (Fritz-OS 6.01) nachvollzogen. Bei anderen Modellen können die Menüpunkte anders beschriftet sein. Die prinzipielle Vorgehensweise ist jedoch bei allen Geräten ähnlich.

Geniale Tools & Apps für Ihre Fritzbox

Der erste Schritt bei Experimenten mit der Fritzbox: Sichern Sie die aktuellen Einstellungen des Routers. Bei Bedarf können Sie die Sicherungsdatei mit einem Kennwort schützen. Bei Problemen stellen Sie die Einstellungen aus der Kopie wieder her.
Vergrößern Der erste Schritt bei Experimenten mit der Fritzbox: Sichern Sie die aktuellen Einstellungen des Routers. Bei Bedarf können Sie die Sicherungsdatei mit einem Kennwort schützen. Bei Problemen stellen Sie die Einstellungen aus der Kopie wieder her.

1. Daten-Backup und Vorsichtsmaßnahmen

Die Konfigurationsoberfläche der Fritzbox erreichen Sie im Browser standardmäßig über http://192.178.0.1 oder http://fritz.box. Gehen Sie im Menü der Fritzbox auf „System > Sicherung“, und klicken Sie auf „Sichern“. Speichern Sie die Datei auf der Festplatte. Sie können die Datei mit einem Kennwort sichern, damit sie niemand unerlaubt einsehen kann. Um die gesicherte Konfiguration wieder auf den Router zu bekommen, gehen Sie auf „System > Sicherung“ und auf den Reiter „Wiederherstellen“. Nach einem Klick auf „Durchsuchen“ wählen Sie die Sicherungsdatei aus. Der Router liest sie ein und startet anschließend neu.

Recovery für die Fritzbox: Damit Sie die Sicherungsdatei wieder auf die Fritzbox bekommen, muss der Router natürlich erreichbar sein. Komplizierter wird es, wenn Sie das Konfigurationsmenü der Fritzbox nicht mehr aufrufen können. Nur in diesem Fall sollten Sie auf das Recovery-Tool von AVM zurückgreifen. Sie können das Programm über ftp://ftp.avm.de/fritz.box herunterladen. Suchen Sie dort das Verzeichnis für Ihr Fritzbox-Modell. Im Ordner Ihres Modells gehen Sie ins Verzeichnis „x_ misc/deutsch“ und laden die aktuellste Version der dort aufgeführten EXE-Dateien, um den Download zu starten.

Schließen Sie die Fritzbox per LAN-Kabel an einen Rechner an. Am Router stecken Sie das Kabel in den Port 1. Sonst darf keine Verbindung zur Fritzbox bestehen, entfernen Sie auch das Kabel vom DSL-Anschluss.

Anschließend deaktivieren Sie auf dem Rechner alle Firewalls: Vergessen Sie nicht, sie nach erfolgreicher Wiederbelebung der Fritzbox wieder einzuschalten. Per Doppelklick auf die heruntergeladene EXE-Datei starten Sie nun den Recovery-Vorgang. Folgen Sie den Anweisungen auf dem Bildschirm. Nach Abschluss des Vorgangs konfigurieren Sie die Fritzbox neu, oder Sie verwenden die Sicherungsdatei für die Wiederherstellung.

Kein Telefon an der Fritzbox: Erstellen Sie Telefonbucheinträge, um Telnet zu aktivieren und zu deaktivieren. Diese verwenden Sie dann in der Weboberfläche über die „Wählhilfe“.
Vergrößern Kein Telefon an der Fritzbox: Erstellen Sie Telefonbucheinträge, um Telnet zu aktivieren und zu deaktivieren. Diese verwenden Sie dann in der Weboberfläche über die „Wählhilfe“.

2. Telnet-Zugang zur Fritzbox einrichten

Der Zugriff auf die Interna der Fritzbox kann per Telnet erfolgen. Dabei handelt es sich um ein Netzwerkprotokoll beziehungsweise Programm, worüber Sie eine Linux-Kommandozeile über das Netzwerk nutzen können.

Um Telnet für die Fritzbox zu nutzen, müssen Sie den Telnet-Dienst des Routers aktivieren: Das erledigen Sie am einfachsten durch ein Telefon, das an der Fritzbox angeschlossen ist. Mit der Tastenfolge #96*7* startet Telnet, mit #96*8* beenden Sie den Dienst.

Das funktioniert auch, wenn Sie kein Telefon an der Fritzbox angeschlossen haben. Sie müssen dann vorher eines im Konfigurationsmenü einrichten: Das erledigen Sie über „Telefonie > Telefoniegeräte > Neues Gerät einrichten“. Aktivieren Sie die Option „Telefon (mit und ohne Anrufbeantworter)“, und klicken Sie auf „Weiter“. Wählen Sie anschließend „FON 1“ und vergeben einen beliebigen Namen für das Telefon. Bei der anschließenden Frage der Fritzbox, ob das Telefon klingelt, klicken Sie auf „Ja“. Nun tragen Sie noch eine Fantasienummer für die ausgehenden Gespräche des Telefons ein und wählen, dass das Telefon alle ankommenden Gespräche annehmen soll. Bestätigen Sie die Eingaben per Klick auf „Übernehmen“.

Wechseln Sie anschließend zum Telefonbuch: Dort erstellen Sie einen Eintrag mit dem Namen „Telnet einschalten“ und der Rufnummer #96*7*. Ein weiterer Eintrag erhält den Namen „Telnet ausschalten“ und die Rufnummer #96*8*. Gehen Sie auf den Reiter „Wählhilfe“, setzen Sie ein Häkchen vor „Wählhilfe verwenden“ und wählen dafür das gerade eingerichtete Telefon aus. Damit Sie die Wählhilfe verwenden können, muss das Konfigurationsmenü der Fritzbox mit einem Passwort geschützt sein – das gehört ohnehin zu den grundlegenden Sicherheitsregeln beim Umgang mit dem Router. Nun aktivieren oder deaktivieren Sie Telnet einfach, indem Sie auf die Nummer im Telefonbuch klicken.

Wenn Sie eine ältere Fritzbox ohne Telefonfunktion besitzen, können Sie Telnet auch über eine Firmware-Modifikation nachrüsten (> Punkt 4 und 5).

Alleskönner Fritzbox - reizen Sie Ihren Router voll aus

Befehle eingeben: Im Telnet- Fenster arbeiten Sie auf der Linux-Kommandozeile. Mit dem Befehl cat /proc/sys/urlader/environment beispielsweise lassen sich Infos zur Fritzbox ausgeben.
Vergrößern Befehle eingeben: Im Telnet- Fenster arbeiten Sie auf der Linux-Kommandozeile. Mit dem Befehl cat /proc/sys/urlader/environment beispielsweise lassen sich Infos zur Fritzbox ausgeben.

3. Telnet-Fernzugang zur Fritzbox nutzen

Telnet verwenden Sie unter Windows am besten über das kostenlose Programm Putty . Es beherrscht auch verschlüsselte Verbindungen über SSH (Secure Shell). Kopieren Sie das Programm in ein beliebiges Verzeichnis, und starten Sie es. Geben Sie unter „Host Name (or IP address)“ den Namen oder die IP-Nummer der Fritzbox ein. Standardmäßig ist das 192.168.178.1. Bei „Connection type“ wählen Sie die Option „Telnet“, und unter „Saved Session“ tippen Sie eine Bezeichnung ein, beispielsweise Fritzbox. Klicken Sie auf „Save“ und dann auf „Open“. Tippen Sie das Passwort ein, das Sie auch für die Weboberfläche der Fritzbox vergeben haben, und drücken Sie die Enter-Taste. Das Passwort wird – wie bei Linux-Terminals üblich – bei der Eingabe nicht angezeigt, und es gibt auch keine Sternchen als Hilfe.

Sie sehen jetzt die Linux-Kommandozeile Ihrer Fritzbox. Mit cd können Sie hier in ein anderes Verzeichnis wechseln, und ls zeigt Ihnen den Inhalt eines Verzeichnisses an. Die Befehlseingabe schließen Sie immer mit der Enter-Taste ab. Eine Übersicht mit den wichtigsten Befehlen für Einsteiger finden Sie beispielsweise über diese Webseite .

Über den Telnet-Zugang können Sie der Fritzbox ein paar Geheimnisse über ihr Innenleben entlocken: Der Befehl free beispielsweise zeigt den gesamten, den belegten und den freien Arbeitsspeicher des Routers in KByte an. Mit mpstat bekommen Sie heraus, wie hoch die CPU-Last ist, und top zeigt die laufenden Prozesse an und wie viel Speicher und CPU-Zeit sie verbrauchen.

Mit der Zeile

cat /proc/sys/urlader/environment  

erhalten Sie eine längere Liste mit Angaben zu Ihrer Fritzbox. Welche Angaben in dieser Liste stehen, hängt vom Modell der Fritzbox ab.

cat /proc/meminfo

liefert Angaben zur Speichergröße und Belegung und cat /proc/cpuinfo zum Prozessor-Typ. Viel Sinnvolles können Sie über Telnet noch nicht erreichen. Dazu müssen Sie erst eigene Programme auf der Fritzbox installieren.

Freetz-Source-Code: Die Freetz-Dateien laden Sie sich über svn aus dem Repositorium der Entwickler herunter (checkout). Im Trunk-Zweig sind immer die neuesten Versionen zu finden.
Vergrößern Freetz-Source-Code: Die Freetz-Dateien laden Sie sich über svn aus dem Repositorium der Entwickler herunter (checkout). Im Trunk-Zweig sind immer die neuesten Versionen zu finden.

4. Entwicklungsumgebung Freetz einrichten

Freetz ist ein Entwickler-Framework für die Fritzbox. Damit erstellen Sie Firmware-Modifikationen oder eigene Programme für den AVM-Router. Freetz stellt eine Cross-Compiler-Umgebung für Linux bereit, mit der Sie Programme für die MIPS-CPUs der Fritzbox erzeugen. Das ist zwar unter jedem beliebigen Linux- System möglich, aber die nötigen Tools sind nicht leicht einzurichten. Deshalb ist es besser, das vorbereitete System Freetz-Linux in Virtualbox zu verwenden. Nach der Installation von Virtualbox öffnen Sie die OVA-Datei von Freetz-Linux per Doppelklick. Es öffnet sich ein Virtualbox- Fenster, in dem Sie auf „Importieren“ klicken. Danach klicken Sie in der Konfigurations-Übersicht von Virtualbox auf „Netzwerk“. Stellen Sie hinter „Angeschlossen an“ den Eintrag „Netzwerkbrücke“ ein, und wählen Sie hinter „Name“ den aktiven Netzwerkadapter. Per Klick auf „Starten“ starten Sie den virtuellen PC. Als Benutzernamen und Passwort geben Sie für die Anmeldung jeweils freetz ein.

Sie könnten jetzt im Fenster der virtuellen Maschine weiterarbeiten. Es ist jedoch komfortabler, dafür Putty zu verwenden. Die IP-Nummer des virtuellen PCs bekommen Sie über den Befehl ifconfig heraus. Konfigurieren Sie dann Putty wie in Punkt 3 beschrieben. Setzen Sie aber diesmal unter „Connection type“ die Option „SSH“, und klicken Sie auf „Open“. Tippen Sie hinter „login as:“ den Benutzernamen freetz ein und als Passwort ebenfalls freetz.

Danach aktualisieren Sie zuerst das virtuelle System mit den drei Zeilen

sudo apt-get update  sudo apt-get upgrade  sudo apt-get install libacl1-dev libcap-dev  

nach der ersten Zeile geben Sie als root-Passwort (Administrator) freetz ein, die Download- Abfrage bestätigen Sie mit der Enter-Taste.

Nach diesen Vorbereitungen laden Sie den Freetz-Source-Code herunter. Da sich das System in einer fortlaufenden Entwicklung befindet, gibt es einen stabilen und damit bewährten Entwicklungszweig, in den allerdings Änderungen für neue Fritzbox-Modelle und Fritz-OS-Versionen noch nicht eingeflossen sind. Über http://freetz.org/browser/branches können Sie sich jeweils per Klick auf „freetzstable- 2.0 “ und dann auf „FIRMWARES“ eine Liste der unterstützten Modelle und Firmware- Versionen von AVM anzeigen lassen. Sollte das Gewünschte nicht dabei sein, verwenden Sie den Entwicklerzweig http://freetz.org/browser/trunk , den auch wir für die Fritzbox 7390 und Fritz-OS 6.01 eingesetzt haben. Wie immer bei neuer Software besteht hier allerdings die Gefahr, das nicht alles perfekt funktioniert und die Dokumentation bei http://freetz.org der Entwicklung hinterherhinkt. Der Download der Dateien erfolgt in diesem Fall über die Zeile

svn checkout http://svn.freetz.org/trunk freetz-devel  

Wenn Sie die stabile Variante einsetzen wollen, verwenden Sie

svn checkout http://svn.freetz.org/branches/freetz-stable-2.0  

Wir beziehen uns jedoch in diesem Artikel auf den Trunk-Zweig der Freetz-Entwicklung.

Die besten Gratis-Downloads für Ihre Fritzbox

Konfiguration der Freetz-Entwicklungsumgebung: Sie erfolgt menügeführt. Unter „Packages“ wählen Sie, welche Programme Sie in die Firmware integrieren möchten.
Vergrößern Konfiguration der Freetz-Entwicklungsumgebung: Sie erfolgt menügeführt. Unter „Packages“ wählen Sie, welche Programme Sie in die Firmware integrieren möchten.

5. Mit Freetz Programme für die Fritzbox erstellen

Nach dem Download geben Sie die zwei Zeilen

cd freetz-devel make menuconfig  

ein. Es erscheint ein Konfigurationsmenü, durch das Sie mit den Cursor-Tasten steuern und mit der Enter-Taste bestätigen. Mit der Leertaste wählen Sie eine Option aus, und mit der Tab-Taste wechseln Sie zwischen Optionen oder Menüpunkten. Stellen Sie unter „Hardware type“ das Modell Ihrer Fritzbox und unter „Firmware version“ die Fritz-OS-Version ein. In der Zeile „Firmware language“ muss „de – deutsch“ stehen. Ändern Sie außerdem unter „Level of user competence“ die Einstellung auf „Expert“.

Über „Packages > Packages“ wählen Sie Tools aus, die Sie in die Firmware einbauen wollen. Je nach Router-Modell stehen unterschiedliche Programme zur Auswahl. Da nur 8 oder 16 MB Platz für das Firmware-Image zur Verfügung stehen, müssen Sie die meisten Zusatzprogramme auf einen USB-Stick auslagern, den Sie an die Fritzbox anschließen. Wählen Sie für einen ersten Test beispielsweise nur den Dateimanager „Midnight Commander“ („mc“) und darunter bei „Configuration“ alle verfügbaren Module aus. Gehen Sie danach im Hauptmenü auf „External processing“, und aktivieren Sie hier „mc“ und alle Module unter „libraries“. Aktivieren Sie im Hauptmenü außerdem „Replace kernel“. Danach beenden Sie die Konfiguration mit „Exit“ und bestätigen das Speichern mit „Yes“.

Zurück auf der Kommandozeile geben Sie make ein, um den Build-Prozess zu starten. Beim ersten Durchlauf kann das eine längere Zeit dauern, und Freetz muss noch etliche Dateien herunterladen. Wenn Sie später weitere Pakete hinzufügen, geht es deutlich schneller. Zum Schluss liegen im Verzeichnis „images“ zwei neue Dateien: Die eine mit der Endung „.image“ ist die neue Firmware. Die andere trägt die Endung „.external“ und enthält die Dateien für den USB-Stick.

Freetz-Firmware-Datei flashen: Das geht über den Update-Mechanismus der Fritzbox. Nach dem Neustart erreichen Sie die neuen Funktionen über den Menüpunkt „Freetz“.
Vergrößern Freetz-Firmware-Datei flashen: Das geht über den Update-Mechanismus der Fritzbox. Nach dem Neustart erreichen Sie die neuen Funktionen über den Menüpunkt „Freetz“.

6. Neue Firmware auf die Fritzbox flashen

Geben Sie in die Adresszeile des Windows- Explorers beispielsweise \\192.168.178.33 ein, und bestätigen Sie mit der Enter-Taste. Ersetzen Sie die IP-Nummer durch die in Punkt 4 per ifconfig für die virtuelle Maschine ermittelten Nummer. Damit verbinden Sie sich mit der Netzwerkfreigabe der virtuellen Maschine (Benutzername/Passwort: freetz). Wechseln Sie in den Ordner „freetz-devel\images“, und kopieren Sie die Dateien in ein beliebiges Verzeichnis auf Ihrem PC. Öffnen Sie im Browser die Weboberfläche der Fritzbox, und gehen Sie auf „System > Update“. Wechseln Sie auf die Registerkarte „Fritz!OS-Datei“, klicken Sie auf „Neues FRITZ!OS suchen“, und geben Sie die Datei mit der Endung „.images“ an. Klicken Sie auf „Update starten“. Die Warnmeldung übergehen Sie mit „Update fortsetzen“.

Wenn der Vorgang abgeschlossen ist, melden Sie sich erneut bei der Weboberfläche der Fritzbox an. Verbinden Sie einen USB-Stick mit der Fritzbox. Dieser sollte unter „Heimnetz > USB-Geräte“ angezeigt werden. Klicken Sie links unten auf „Freetz“. Zum Anmelden verwenden Sie den Benutzernamen admin und das Passwort freetz. Gehen Sie auf „System à Firmware-Update“, klicken Sie auf „external- Datei hochladen (optional)“ und wählen über „Durchsuchen“ die Datei mit der Endung „.external“ aus. Klicken Sie auf „Datei hochladen“. Loggen Sie sich über Putty auf der Fritzbox ein. Als Benutzername geben Sie root ein, das Passwort ist freetz. Sie werden danach aufgefordert, das Passwort zu ändern. Mit dem Befehl mc starten Sie den Dateimanager Midnight Commander vom USB-Stick.

Wenn alles funktioniert, fügen Sie wie in à Punkt 5 beschrieben weitere Pakete hinzu und flashen die neue erstellte Image- und External-Datei. Bei einigen Paketen ist eine zusätzlich Konfiguration erforderlich. Anleitungen dazu finden Sie im Wiki von http://freetz.org .

Eigene Programme erstellen

Nachdem Sie Freetz wie in à Punkt 4 und 5 beschrieben eingerichtet haben, können Sie auch einzelne Programme erstellen, ohne die Freetz-Firmware vorher zu flashen. Für ein kleines Beispiel legen Sie in einem Editor eine Textdatei mit folgenden vier Zeilen an:

#include <stdio.h>  int main(int argc, char *argv)  {printf("Hallo Fritzbox.\n"); return(0);}  

Speichern Sie die Datei unter dem Namen „hello.c“, und kopieren Sie sie auf die Netzwerkfreigabe der virtuellen Freetz-Maschine. Führen Sie hier folgende zwei Zeilen aus:

export PATH=~/freetz-devel/toolchain/build/mips_gcc-4.7.3_ uClibc-0.9.33.2-nptl/mips-linux-uclibc/bin:$PATH  
mips-linux-gcc hello.c -o hello  

Die resultierende Datei „hello“ kopieren Sie auf den USB-Stick der Fritzbox. Öffnen Sie über Telnet ein Kommandozeile auf der Fritzbox, und wechseln Sie in das Verzeichnis „/var/media/ftp“ und hier in das Verzeichnis mit dem Namen des USB-Sticks. Starten Sie das Programm mit ./hello. Es gibt dann „Hallo Fritzbox.“ aus.

Alternative Firmware für andere Router

Alternative Firmware-Versionen für Router bringen auch alten Geräten neue Fähigkeiten bei und bieten Funktionen und Einstellungen, die sonst nur in deutlich teureren High-End-Geräten zu finden sind. Relativ weit entwickelt ist DD-WRT , das sich auf zahlreichen Routern etwa von Asus, Buffalo oder Netgear einsetzen lässt. Ein weiteres System ist Open-WRT . Diese Variante erinnert mehr an eine Linux-Distribution und bietet einen eigenen Paketmanager, um gezielt Fähigkeiten nachzurüsten. Eine Liste der unterstützten Router-Modelle gibt es auf der Open- WRT-Website. Tomato-USB läuft auf vielen Routern mit Broadcom-Chipsatz von Linksys, Asus oder Buffalo. Die Tool ist ebenfalls modular aufgebaut und hat nachrüstbare Funktionen anhand von Zusatzpaketen mit an Bord. Ansonsten unterscheidet es sich im Wesentlichen nur durch eine andere Weboberfläche von den anderen Projekten.

0 Kommentare zu diesem Artikel
1932933