zur Navigation springen


Fritz!Box

erstellt 06.2006

Nach dem ich gehört habe das meine Fritz!Box Fon WLAN 7050 mit Linux betrieben wird, wollte ich natürlich mal drauf schauen.

Dieses ist keine Anleitung, sondern nur eine Zusammenfassung meiner Ergebnisse.
ACHTUNG!!!
Es kann zu Hardware-Schäden kommen.


Einleitung

Die Fritz!Box zählt zu den beliebtesten und weit verbreitetsten DSL-Routern, die ihren Linux-Kern hinter einer schmucken Weboberfläche verbirgt. Leider schränkt die Fritz!Box den Anwender an vielen Stellen sehr ein und weitere Funktionen haben noch nie geschadet.
Anschließend werde ich meine Versuche kurz beschreiben die das originale Betriebssystem der Fritz!Box verändern. Doch Achtung: Geht etwas schief, darf man nicht auf eine Garantie plädieren oder auf Kulanz hoffen. AVM toleriert keine Modifikationen, wie sollten sie auch noch Support leisten können.

NO GAME OVER

Telnetzugang

Der Einstieg in die Fritz!Box - Welt beginnt über einen Telnetzugang.
Im Folgenden beziehe ich mich auf die Firmware-Version 14.04.06. Die Modifikationen sind aber so allgemein, dass sie auch auf anderen Konfigurationen laufen sollten.
Auf der Fritz!Box ist bereits ein Linux telnet-Daemon vorhanden, dieser wird über das eingeschleuste install - script im Verzeichnis /var gestartet

#! /bin/sh  
/usr/sbin/telnetd -l /sbin/ar7login  
exit 0 

Dieses script wird über die Datei telnetstart.tar der Firmware-Update Funktion der Fritz!Box (Einstellungen/System) installiert. Bei der Installation erscheint ein Fehler

      Achtung!
      Die angegebene Datei enthält keine von AVM für dieses Gerät freigegebene Firmware.

Klicken Sie jetzt auf "Update fortsetzten".

            Nach dem Neustart der Fritz!Box erscheint im Info Fenster

            FRITZ!Box Fon WLAN 7050 (UI), Firmware-Version 14.04.06

            In Ihrer FRITZ!Box wurden vom Hersteller nicht unterstützte Änderungen durchgeführt.
            Weitere Informationen.

            Unter Weitere Informationen ist folgendes zu finden:

            Die FRITZ!Box wird momentan mit einer von AVM nicht freigegebenen Firmware
            betrieben oder die Konfiguration wurde möglicherweise über vom Hersteller
            nicht vorgesehene Wege verändert (z.B. telnet). In diesem Zustand kann AVM
            für die korrekte Funktion Ihrer FRITZ!Box nicht mehr garantieren.

            Sie haben die Möglichkeit, das Gerät wieder in den Auslieferungszustand zurück
            zu setzen. Starten Sie dafür das Recover von Ihrer FRITZ!Box-CD (\Software\X_Misc).

            Nach dem Wiederherstellen des Auslieferungszustandes wird Ihre FRITZ!Box wieder
            vollständig von AVM unterstützt.

Sollten Sie bis jetzt noch kein Passwort unter Einstellungen / System / Fritz!Box-Kennwort vergeben haben, so muss dieses jetzt nachgeholt werden.

Über telnet kann jetzt auf die Fritz!Box zugegriffen werden.
z.B.:

telnet 10.2.0.1
Fritz!Box web password: geheim

CONFIG_UBIK2='y'
CONFIG_UPNP='y'
CONFIG_USB='y'
CONFIG_USB_HOST_AVM='n'
CONFIG_USB_HOST_TI='n'
CONFIG_USB_PRINT_SERV='n'
CONFIG_USB_STORAGE='n'
CONFIG_USB_WLAN_AUTH='n'
CONFIG_VDSL='n'
CONFIG_VERSION='04.06'
CONFIG_VERSION_MAJOR='14'
CONFIG_VLYNQ='y'
CONFIG_VLYNQ0='1'
CONFIG_VLYNQ1='0'
CONFIG_VPN='n'
CONFIG_WLAN='y'
CONFIG_WLAN_1130TNET='y'
CONFIG_WLAN_1350TNET='n'
CONFIG_WLAN_GREEN='n'
CONFIG_WLAN_WDS='y'
CONFIG_XILINX='n'
ermittle die aktuelle TTY
tty is "/dev/pts/0"
Console Ausgaben auf dieses Terminal umgelenkt
#exit

Geschafft, jetzt kann über Telnet die Fritz!Box zugegriffen werden.

Wird die Fritz!Box gebootet wird der Telnet-Daemon nicht gestartet.
Um dieses zu erreichen muss man

telnet permanent einbinden.

auf dem Telnet-prompt folgendes eingeben
cat /var/flash/debug.cfg > /var/tmp/debug.tmp
echo "/usr/sbin/telnetd -l /sbin/ar7login" > /var/tmp/debug.tmp
cat /var/tmp/debug.tmp > /var/flash/debug.cfg
/sbin/reboot

debug.cfg

Die debug.cfg wird bei der Fritz!Box bei jedem Start ausgeführt und hat somit die gleiche Funktion wie die Autoexec.bat von DOS. Da diese Datei eine zentrale Bedeutung hat, ist sie vor Änderungen geschützt. Um diesen Schutz zu umgehen wird die Datei mit dem Befehl cat /var/flash/debug.cfg > /var/tmp/debug.tmp in den RAM Bereich kopiert. Hier kann sie editiert werden z.B.: mit dem Befehl echo "/usr/sbin/telnetd -l /sbin/ar7login" > /var/tmp/debug.tmp neu beschrieben werden. Es kann auch der vi zur Bearbeitung verwendet werden. Mit dem Befehl echo > /var/tmp/debug.tmp wird sie gelehrt. Nach der Bearbeitung kann die Datei mit dem Befehl cat /var/tmp/debug.tmp > /var/flash/debug.cfg zurück kopiert werden. Mit dem Befehl /sbin/reboot wird die Fritz!Box neu gestartet und die Änderungen werden in Kraft gesetzt.

Da bei einigen Versuchen es schon mal brenzlig werden kann, das unsere schöne Fritz!Box das Leben aus gehaucht wird, habe ich eine rudimentäre Sicherung eingebaut.
Die debug.cfg schaut folgend aus.

# ======================================
# M. Wulff                    10.06.2006
# ======================================

# ====== Start des telnet-daemons
/usr/sbin/telnetd -l /sbin/ar7login

# ====== rudimentaere Sicherung
while !(ping -c 1 www.m-wulff.de); do
sleep 5
done

# ====== Weiteres

Bevor das Script etwas Sinnvolles tut, bleibt es bei gezogener DSL-Verbindung in der Endlosschleife hängen und ich kann die Fehler über Telnet beheben.

Bei den Änderungen muss immer darauf geachtet werden, das das zu ändernde Script aus dem ROM- Bereich in den RAM- Bereich copiert wird und nach Bearbeitung wieder zurück geschrieben wird. Sicherungen sind natürlich erlaubt. Die grundlegenden Befehle des VI sollten bekannt sein. Anschließend der obligatorische Restart.
cat /var/flash/debug.cfg > /var/tmp/debug.tmp
vi /var/tmp/debug.tmp
cat /var/tmp/debug.tmp > /var/flash/debug.cfg
/sbin/reboot

FTP-Server

Irgendwie ist langweilig im Verzeichnis mit cd und ls in den Verzeichnissen hangeln und mit cat die Dateien anschauen. Ein FTP-Server bietet einen gewissen Komfort.

Ein kleiner FTP-Server für Mips Prozessoren ist bftpd. Eine fertig konfigurierter Server kann mit wget geladen werden. Anschließende müssen nur noch die passenden Rechte gesetzt werden und der Server gestartet werden.

Starten wir das ganze mal von Hand:
cd /var/tmp
wget http://www.tecchannel.de/download/432803/bftpd.conf
wget http://www.tecchannel.de/download/432803/bftpd
chmod +x bftpd
./bftpd -d -c /var/tmp/bftpd.conf
Der Befehl ps sollte jetzt die Prozessliste mit dem FTP-Server als vorletzten Eintrag anzeigen.

Jetzt benötigen wir noch den Eintrag in die passwd. Hierzu muss aber noch das Password generiert werden. Über die Webseite www.flash.net/cgi-bin/pw.pl ist dieses ganz einfach möglich. Es wird nur der Benutzername und Passwort eingetragen und als Ergebnis erscheint der benötigte verschlüsselte Hashcode. Dieser wird mit den Befehl
echo "wulff:fC64IeXxIxoQc:0:0:root:/:null" >> /var/tmp/passwd
an die passwd angehängt.
Jetzt sollte mit einem FTP-Programm auf die Fritz!Box zugegriffen werden können.

Klappt alles können die Installationen permanent gemacht werden.
Alle Angaben die per Hand durchgeführt wurden müssen jetzt nur noch in die debug.cfg eingetragen werden.

Die /var/flush/debug.cfg schaut jetzt so aus
# =====================================
# M. Wulff                     09.06.06
# =====================================

# ====== Telnet starten
/usr/sbin/telnetd -l /sbin/ar7login

# ====== rudimentaere Sicherung
while !(ping -c 1 www.m-wulff.de); do
sleep 5
done

# ====== Debug.cfg kopieren
cat /var/flash/debug.cfg > /var/tmp/debug.tmp

# ====== FTP - Server
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 "wulff:xxxxxxxxxxxxx:0:0:root:/:null" >> /var/tmp/passwd
./bftpd -d -c /var/tmp/bftpd.conf

(Die letzte Leerzeile war bei mir notwendig)

Jetzt haben wir das Grundrüstzeug um die Fritz!Box zu untersuchen. Leider sind die wichtigen Dateien die unter /var/flash/ liegen geschützt und müssen erst auf /var/tmp kopiert werden um diese einsehen zu können oder per FTP geladen werden können.
Natürlich können Sie diese auch bearbeiten und anschließend zurück kopieren, wenn Sie wissen was Sie tun.
· Eine interessante Datei ist /var/flash/ar7.cfg die sehr viele Einstellungen beinhaltet.
· In der /var/flash/voip.cfg sind alle VoIP- Spezifika abgelegt, wie Sprachqualität usw.. .
· In der /var/flash/stat.cfg sind die Verbrauchsstatistiken zu finden.

VPN über die Fritz!Box

Werden zwei Rechner über eine VPN-Strecke gekoppelt muss diese auf beiden Rechnern eingerichtet werden. Wird eine Kopplung der Netze über die Router vorgenommen, können die User ohne Veränderung des Netzwerks auf die Ressourcen des anderen Netzes zugreifen.
Ein Geschwindigkeitsrausch wird sich unter DSL aber nicht einstellen, da bei DSL der Server (Sender) z.B.: bei einer DSL2000 nur mit 192kbit/s senden kann.

Für dieses wird OpenVPN eingesetzt da es für die Mips-Plattform der Fritzbox sowie für Windows und Linux Versionen gibt. Die SSL/TLS-Protokoll ist einfacher zu konfigurieren als IPSec und bei weitem nicht so Leistungshungrig. Die aktive Community IP-Fone-Forum könnte vielleicht behilflich sein.

Wie bei Netzwerkkopplungen üblich ist, müssen die Netzwerke verschiedene Subnetze liegen (Verschieden Netzwerkklassen stellen kein Problembar).
Sollte dieses nicht der Fall sein, sollte der kleine Standort seinen IP-Bereich ändert. Feste IP-Adressen sollten zu erst geändert werden und anschließend die DHCP- Clients über den Server.
(Viel Spaß! in meinem Unternehmen hatte der kleine Standort geschätzte 80 Knoten. Davon waren 30 Feste IP's von denen 25 Fremdfirmen vergeben haben, 8 Firmen gab es nicht mehr.) Bei der Key-Datei ist eine einfacher statischer (preshared) Key vollkommen ausreichend. Da keiner über eine Fritz!Box ein Schlüsselmanagement laufen lässt.
Eine VPN-Key-Datei wird unter www.The-Construct.com/functions/create_secret.php erzeugt, speichern Sie die erzeugte Datei vorerst auf Ihren Rechner.

Netzbeispiel:
      Server                 Client
      Firma                   Home
192.168.1.0          192.168.100.0
255.255.255.0       255.255.255.0

Fritz!Box als VPN-Server einrichten

Da ich dieses mit einem Firmenserver erledigt habe, kann ich nur theoretisch darauf eingehen.

Die Konfigurationsdatei:
dev tun0
dev-node /dev/misc/net/tun
ifconfig 192.168.200.2 192.168.200.1
tun-mtu 1500
float
mssfix

#Pfad zum Key File
secret /var/tmp/secret.key

#Protokoll auf TCP und Port 1194
proto tcp-server
port 1194

#Protokollierung auf 4
verb 4

#Routen setzen, bei route Subnetz des Clients
# bei push Subnetz des eigenen Servers eintragen
route 192.168.1.0 255.255.255.0
push "route 192.168.100.0 255.255.255.0"

#Verbindung erhalten
ping 15
push "ping 15"
ping-restart 120
push "ping-restart 120"
Ändern Sie Ihre IP`s den Gegebenheiten an ab.



Gute Links:

Sichere VPN Verbindung
IP-Fone-Forum
Wiki des IP-Fone-Forum
Recover Images
Windows XP VPN


Viel Spass

Matthias Wulff



Seitenanfang