Freetz – Custom Firmware für die Fritz!Box

Mit der freetz Firmware ist es möglich seine Fritz!Box, mit Tools wie FTP, SSH oder OpenVPN, auszustatten.
Das freetz Projekt, früher bekannt als ds-mod, sorgt für eine erweiterte Firmware auf der Fritz!Box.

Interessant wird dies vor allem weil viele der Pakete per zusätzlichem Webinterface konfiguriert werden können.
Um eine eigene Firmware zu bauen und aufzuspielen, braucht man zunächst die aktuellste Version, momentan freetz 1.1.2. Für das erste Flashen wird empfohlen, die Custom Firmware zunächst ohne weitere Pakete zu bauen, um das neue Webinterface, das auf Port 81 zur Verfügung gestellt wird, bereitzustellen (Von diesem aus sind weitere Firmwareupdates einfacher möglich) und die Option „external“ nutzen, mit der man Pakete auf das am USB-Port angeschlossene Speichermedium auslagern kann, um Platz auf dem recht knappen Flashspeicher auf der Fritz!Box zu sparen.
Um nachzusehen, welche Pakete verwendet werden können, kann man sich hier einen Überblick holen.
Nett an freetz ist, das man die Pakete in einem kommandozeilen basierten Menü auswählen kann, somit wird das Erstellen eines angepassten Images ein Kinderspiel. Durch das Auslagern von Paketen, das ebenfalls im Menü ausgewählt werden kann, sind der angepassten Firmware kaum Grenzen gesetzt.

Um sich eine eigene Firmware zu bauen, benötigt man  zusätzliche Pakete. Diese werden unter ubuntu wie folgt installiert:

sudo apt-get -y update
sudo apt-get -y upgrade
sudo apt-get -y dist-upgrade

# Angepasst z.B. auf Ubuntu 9.04 (kein automake 1.8, "ecj" statt "ecj-bootstrap" und ergänzt um "intltool"):
sudo apt-get -y install subversion gcc g++ binutils autoconf automake automake1.9 libtool make bzip2 libncurses5-dev zlib1g-dev flex bison patch texinfo tofrodos gettext jam pkg-config jikes ecj fastjar realpath perl libstring-crc32-perl ruby ruby1.8 gawk python libusb-dev unzip intltool
# Ubuntu 9.10
sudo apt-get -y install subversion gcc g++ bzip2 binutils automake patch autoconf libtool pkg-config make libncurses5-dev zlib1g-dev flex bison patch texinfo tofrodos gettext jam pkg-config ecj fastjar realpath perl libstring-crc32-perl ruby ruby1.8 gawk python libusb-dev unzip

Für andere Systeme sowie Windows sollte man folgende Seite lesen.

Um das erste Image für die Fritz!Box zu erstellen, muss man das heruntergeladene freetz-Archiv entpacken, in diesen Ordner wechseln und durch ein

make

den Prozess starten. Sollte das Image nicht erstellt werden können, ist es nötig, Patches anzuwenden, die die Original-Firmware verkleinern. Eine Übersicht über diese findet man hier.

Um solche Patches anzuwenden, führt man

make menuconfig

aus. Nun öffnet sich ein ncurses-Menü, mit welchem die Custom Firmware konfiguriert werden kann. Hier wechselt man im unteren Teil des Menüs auf Patches und wählt die ausgesuchten Patches aus. Es ist Vorsicht geboten, denn durch unachtsames Deaktivieren wichtiger Eigenschaften der eigentlichen Firmware, wird die Box nutzlos oder verliert wichtige Funktionen. Man sollte in jedem Fall vorher nachlesen, welcher Patch welche Eigenschaft verändert und wissen was man tut.

Hat man das Image erzeugt, findet man dies im Unterordner images. Dies kann nun, wie gewohnt, im Fritz!Box-Webinterface hochgeladen werden. Nach dem Upload kommt eine Information, dass es sich um keine AVM-Firmware handelt, nach einem Klick auf Upload fortsetzen wird die Custom Firmware installiert.

Nachdem die Fritz!Box rebootet hat steht ein weiteres Webinterface unter http://fritz.box:81 zur Verfügung, dieses ist durch ein Passwort geschützt, das zunächst auf „freetz“ unter dem Benutzer „admin“ eingestellt ist. Man kann es später selbst anpassen.

Im neuen Webinterface hat man nur wenig Auswahlmöglichkeiten, da man ja zunächst ein „blankes“ Custom Image hochgeladen hat. Uploads von modifizierten Images sind problemlos durch das neue Interface möglich, dazu findet man ganz unten einen Punkt Firmware-Update, hier gibt es auch die Option external. Diese erlaubt es spezielle Pakete auf einen angeschlossenen USB-Stick auszulagern und so Speicherplatz beim Imagebau zu sparen.

Nun kann man sich nach herzenslust an den Paketen austoben und diese versuchsweise auf die Box laden. Das Flashen neuer Images ist problemlos möglich.

Wichtige Features sind bei der neuen Firmware das Interface für die AVM-Firewall, mit der sich Portweiterleitungen aber auch Portsperren etc. verwirklichen  lassen, sowie der Dropbear SSH Server, der neben dem serienmäßigen Telnet eine verschlüsselte Administration der Box sowie in Kombination mit Port Forwarding verschlüsselten Zugriff auf die Geräte hinter der Firewall erlauben. Hinzu kommen Dienste wie FTP z.B. im Paket VSFTP (mit optionalem SSL-Support) und OpenVPN für die Verbindung zweier Netzwerke, außerdem gibt es Pakete für Samba und NFS, womit die Fritzbox als Netzwerkspeicher verwendet werden kann.

Alles in allem schlummern viele gute Pakete in der Freetz-Firmware und warten darauf, der Fritz!Box ihr verstecktes Potenzial zu geben.

(mw)