Inhaltsverzeichnis

Telnet aktivieren

Quelle1)

Der Shell-Zugang per telnet

Um eigene Einstellungen, Updates, Modifikationen vorzunehmen oder um sich einfach mal auf der Box umzuschauen ist der Zugang über telnet eine grundsätzliche Methode bei der Fritz!Box. Dazu gibt es den Dienst telnetd auf der Box. Musste der Dienst früher mühsam aktiviert werden, so hat AVM reagiert und eine Funktion in die Firmware eingebaut um den telnetd über das Telefon ein- und auszuschalten.

ACHTUNG! Sicherheitshinweis:

Der Telnet-Zugang bedeutet ein Sicherheitsrisiko! Wenn du nicht genau weißt, warum du einen Telnet-Zugang brauchst, dann lass ihn deaktiviert bzw. deaktiviere ihn (Telefon-Code: #96*8*).

ACHTUNG! Betriebshinweis:

Der Telnet-Zugang kann die Stablität der Box gefährden! Mit dem Telnet-Zugang können systemrelevante Dateien und Einstellungen kompromitiert oder gelöscht werden. Ein Zugriff über Telnet kann den Betrieb deiner Box gefährden und kann dazu führen, dass deine FRITZ!Box nicht mehr vollständig von AVM unterstützt wird. Denk daran, dass du deine lauffähige Box eventuell brauchst, um über das Internet Informationen zum Betrieb der Box zu erhalten. Dies ist dann nicht mehr möglich. Hilfreiche Informationen findest du unter dem Stichwort Recovery.

Aus diesen Gründen wird in neueren Firmware-Versionen bei aktiviertem telnetd eine Warnmeldung eingeblendet, die auch nach Deaktivierung oder Firmware-Update nicht mehr verschwindet!

Passwort

Das Passwort für den Telnet-Zugang ist das Passwort des Webinterfaces.

Bei älteren Versionen besteht die Möglichkeit, Telnet auf der Box mit einer bestimmten Konfiguration zu starten (Pseudo Firmware Update/Ar7login) oder eine Passwortdatei mit einem gültigen root Passwort anzulegen (Anlegen einer /etc/passwd).

Starten

... mit Telefoncode

Hat man eine Fritz!Box Fon mit neuerer Firmware, so wählt man einfach #96*7* zum An- bzw. #96*8* zum Ausschalten des telnetd. Hierzu ist es lediglich nötig, ein Telefon (analog oder ISDN) an der Box zu betreiben. Der Erfolg der Einstellung wird mit einem kurzen Bestätigungston quittiert. Es ist evtl. nötig das Telefon direkt an die Anlage anzuschließen, D.h. ohne T/A Adapter bzw. TK-Anlage.

Dies soll ab Firmware xx.yy.101 möglich sein (seit Anfang 2006). Ausserdem merkt sich bei neuerer Firmware die Box die Telnet Einstellung und telnetd wird dann auch nach Reboot und weiterem Firmware Update weiter aktiv bleiben (–hczim 2006-08-12).

Diese Methode ist der Methode des Pseudo-Firmware-Updates vorzuziehen und sollte als erstes probiert werden.

... mit Pseudo-Firmware-Update

Wer kein Telefon an der Fritz!Box angeschlossen hat, muss den telnetd über ein Pseudo-Firmware-Upload starten.

Dazu muss man wissen, dass ein Upload aus einem Tar-Archiv besteht, in dem üblicherweise die Firmware enthalten ist. Ist in dem Tar-Archiv jedoch eine Datei /var/install enthalten, wird diese nach dem Upload auf der Fritz!Box ausgeführt.

Genau diese Technik verwendet das folgende Image: starttelnet.image. Es enthält nur eine Datei, nämlich /var/install, die den telnetd durch das folgende Kommando startet:

/usr/sbin/telnetd -l /sbin/ar7login

Davon kann man sich selbst überzeugen, in dem man die Image-Datei in z.B. starttelnet.tar umbenennt und mit einem Archiver öffnet (Winzip, PowerArchiver, usw.)

Hinweis: Neuere Firmware-Version erkennen, dass es sich beim Upload nicht um eine originale Firmware von AVM handelt und fragen deshalb nach, ob das Upload wirklich durchgeführt werden soll. In diesem Fall den Knopf Upload fortsetzen drücken.

Diese Modifikation ist nicht permanent und nach einem Reboot wieder gelöscht. Entsprechend muss der telnetd nach jedem Reboot neu gestartet werden. Soll der telnetd nach jedem Reboot automatisch gestartet werden, muss das mit Hilfe eines Init-Skriptes gemacht werden. Das Skript /etc/init.d/rc.S wird jedesmal beim Booten ausgeführt. Als letze Aktion wertet es den Inhalt von /var/flash/debug.cfg aus und führt alle darin enthaltenen Befehle aus.

Somit kann man den telnetd starten lassen, indem man obigen Aufruf in die Datei debug.cfg einträgt. Das geht bequem ohne Editor mit folgendem Kommando, das man über die Shell eingeben kann (vorausgesetzt, man hat den Telnet-Zugang aktiviert):

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

Entfernen lässt sich dieser Eintrag durch

echo > /var/flash/debug.cfg

Probleme und Inkompabilitäten

Die hier beschreibenen Methoden funktionieren nicht mit folgender Hardware / Firmware:

Workaround Fritz!Box SL

Bei der kleinen Fritz!Box SL funktioniert dieser einfache Trick nicht, weil das Verzeichnis /usr/sbin/ leer ist! Dann muss man ein Image verwenden, das einen passenden telnetd mitliefert. Das folgende Image hat auf meiner Fritz!Box SL (Firmware 10.03.93 vom 02.02.2006) funktioniert:

telnetsl.zip. telnetsl.zip enthält das Image telnet.image, mit dem man ein Update der Fritz!Box

Workaround Fritz!Box 7050 - Firmware 14.04.30

Bei der Firmware 14.04.30 ist im Univeral-Binary „busybox“ der Telnet-Daemon nicht aktiviert. Deshalb klappt das Aktivieren von Telnet weder über das Telefonkommando #96*8* noch über eines der hier vorgestellten Pseudo-Firmwareupdates. Harald Becker von http://www.telefonsparbuch.de/ stellt hier freundlicherweise eine Lösung zur Verfügung. Man lädt sich die Datei http://www.telefonsparbuch.de/software/fritzbox/TelefonSparbuch_Telnet04.30.tar herunter und lädt diese wie eine Firmware auf die Fritz!Box. Nach einem Neustart kann man sich per Telnet mit dem Passwort der Weboberfläche auf der Fritz!Box einloggen. Dies funktioniert jedoch nur bei bestehender Internetverbindung. Das Pseudofirmwareupdate überprüft auf eine funktioniernede Internetverbindung und lädt dann die Datei utelnetd nach. Dieser Telnetserver wird in „/var“ gestartet und ermöglicht den Login. Die in der Busybox verwendete Shell (ash) kann keine Tab-Completion und kennt keine Backspace-Taste. Korrekturen auf der Kommandozeile sind mit der <ENTF>-Taste möglich. Der Editor „nvi“ funktioniert in dieser Version leider auch nicht mehr, man muss also auf einer anderen *ix-Maschine editieren und per „wget“ die Dateien wieder an ihren Platz bringen.

Ergebnisse:

Warnung: Ist das Update einmal aufgespielt, und ist kein Telnet danach vorhanden, so kann dies nicht einfach rückgänig gemacht werden. Hierfür fehlt noch ein Image, welches die hinzugefügte Zeile wieder löscht. Es bleibt nur das Zurücksetzen der Box mit der ausgelieferten Software.

Anlegen einer /etc/passwd

Falls der ar7login Trick nicht benutzt werden soll, hier die Anleitung zum Anlegen der passwd:

Otte 22:42, 3 Nov 2004 (CET)

Leider hat man mit einer unmodifizierten Firmware keinen Zugriff, da das Root-Passwort standardmässig disabled ist. Ich habe für mich folgenden Workaround verwendet: folgendes in /var/rc.user schreiben:

 #! /bin/sh
 echo root:gjXi0Zpm5pRKw:0:0:root:/:/bin/sh > /var/tmp/newpasswd
 mv /var/tmp/newpasswd /var/tmp/passwd
 /usr/sbin/telnetd

und dann, wie oben beschrieben, noch ins Flash gesichert:

 cat /var/rc.user > /var/flash/debug.cfg

gjXi0Zpm5pRKw ist ein gehashtes Passwort (im Beispiel „avm“), das man sich z. B. mit 'htpasswd' erzeugen kann, wenn man 'apache' installiert hat:

  $ htpasswd -nbd root avm
  root:gjXi0Zpm5pRKw

Nach einem Reboot kann dann mit dem User „root“ und Kennwort „avm“ mit telnet auf die Fritzbox zugegriffen werden. Natürlich ist das Kennwort nur ein Beispiel …

Die /etc/shadow wird übrigens in der derzeitigen Version der Firmware nicht ausgewertet. Das ist auf einem 'single-user-root-only' System allerdings auch nicht nötig.

Alternative Images

–TraXo 21:40, 14 Apr 2005 (CEST)

Bitte obige Änderungen in neuem Image bereitstellen bzw. wo finde ich das oder wie kann ich mir das selbst erstellen?

–FFL 23:11, 17 Nov 2004 (CET)

Kannst auch das image von dieser Seite (www.Think-Future.de) ziehen. Es beinhaltet folgende Modifikationen:

  1. startet telnetd (default pw: avm; sofort aendern!)
  2. setzt hostname (default: fritz)
  3. setzt Eintrag in „/etc/hosts“: 192.168.77.254 fritz
  4. aktiviert remote syslog (default syslog-host: 192.168.77.1)
  5. aktiviert debug output vom dsld (macht REJECT, DROP etc. per remote syslog sichtbar)
  6. setzt nameserver (default: 192.168.77.254) Wichtig: diese Modifikation ist per default deaktiviert. Siehe README. (das image mit dem „./gen_tar.sh“ script selbst erzeugen, das benötigt busybox).
  7. started logging von „uptime“-Daten, die per remote syslog ausgelesen werden koennen. Damit ist die Visualisierung der fbox-Last moeglich.

Diese Modifikationen sind permanent und werden automatisch auch nach einem reboot aktiviert. default-Werte koennen modifiziert werden, wenn das fboxTF.img selbst erzeugt wird.

–Runia 20:55, 21 Mar 2005 (CET)