Starten von telnetd

From Fritz!Box
Jump to: navigation, search

AVM Wiki >> Tipps+Tricks >> Starten von telnetd @ whmf   -   IRC-Chat   -   hu nl it English
Community Modelle Zubehör Environment Konfiguration Shell-Befehle Software Freetz Lexikon Tipps+Tricks Bilder

Hardware-Tipps System-Tipps Netzwerk-Tipps Telefonie-Tipps Software-Tipps Sonstige Tipps Todo

Contents

Kein Shell-Zugang per telnet mehr ab ???.06.35-Firmwares

Anfang Juli 2015:
Wer auf eine solche Firmware updatet, kommt auf den unten beschriebenen Wegen nicht mehr zum Ziel. AVM kündigte zu diesen Firmwares an, dass es den Shell-Zugang per telnet nicht mehr unterstützt und setzte das auch radikal durch. Bislang ist telnetd aber noch in der Busybox vorhanden (Stand: 07/2015 Quelle: [1]).

2015-07-31:
Tobias Rieder erklärt in einem Blog-Artikel, wie man den telnetd über ein Pseudo-Firmware-Update-Image (auch einfach Pseudo-Image genannt) und die Update-Funktion der FRITZ!Box zur Zeit (Stand: 2015-07-31) noch gestartet bekommt; er stellt das Pseudo-Image auch zur Verfügung (siehe Artikel!) [2]; das gepflegte var/install findet man eigentlich hier: [3].

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, oder 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! Eine Möglichkeit, die Warnung wieder zu entfernen, ist das Einspielen einer Recovery-Firmware.

Passwort

Das Passwort für den Telnet-Zugang ist das FRITZ!Box-Kennwort 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. notwendig, das Telefon direkt an die Anlage anzuschließen, d.h. ohne T/A Adapter oder TK-Anlage.

Dies soll ab Firmware xx.yy.101 möglich sein (seit Anfang 2006). Außerdem merkt sich bei neuerer Firmware die Box die Telnet Einstellung und telnetd wird dann auch nach Neustart 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.

... via Telefonbucheintrag

Vorbereitung:
Telefonie -> Telefonbuch einen Eintrag mit der Nummer #96*7* für das Einschalten erstellen, ein weiteren mit der Telefonnummer #96*8* für das abschalten Eintragen.
Telefonie -> Telefonbuch -> Wählhilfe -> Wählhilfe verwenden anhaken -> Drop down Telefon auswählen -> übernehmen.

Telnet Einschlalten:
Telefonie -> Telefonbuch -> #96*7* anklicken. Fenster mit Ja Bestätigen. Telnet sollte jetzt eingeschaltet sein.
Für das abschalten den Eintrag #96*8* anklicken und bestätigen. Telnet sollte jetzt ausgeschaltet sein.

Die Einstellung 'überlebt' einen Neustart.

Der Trick ist, die Box ruft sich sebst über die Wahlhilfe an.
(Getestet mit 7390 Firmware 84.05.05)

... mit Pseudo-Firmware-Update

Warnung (Stand Juli/August 2015): So einfach, wie in diesem Abschnitt beschrieben, geht es leider inzwischen nicht mehr. Bitte den Hinweis mit dem Namen Kein Shell-Zugang per telnet mehr ab ???.06.35-Firmwares am Anfang des Artikels beachten!

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 Neustart wieder gelöscht. Entsprechend muss der telnetd nach jedem Neustart neu gestartet werden. Soll der telnetd nach jedem Neustart 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:

  • Fritz!Box SL (Workaround siehe unten)
  • Fritz!Box 2110 (Workaround siehe unten)
  • FRITZ!Box Fon WLAN 7050 (UI), Firmware-Version 14.04.15 (Kein Telnet nach Update)
  • Eumex 300IP mit AVM-Firmware 15.04.15 (haveaniceday), Telnet bleibt aus nach Image Methode
  • FRITZ!Box Fon WLAN 7050, Firmware-Version 14.04.30 (Update entfernt telnetd, telnet.image funktioniert nicht mehr) (Workaround siehe unten)

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 durchführen muss.

Workaround Fritz!Box 2110

Bei der FRITZ!Box 2110 (Firmware 63.04.51) funktioniert der einfache Trick ebenfalls nicht. Der Workaround für die FRITZ!Box SL klappt dafür auch hier.

Workaround Fritz!Box 7050 - Firmware 14.04.30

Bei der FRITZ!Box Fon WLAN 7050 mit Firmware 14.04.30 ist im Univeral-Binary busybox der Telnet-Daemon telnetd nicht einkompiliert. Deshalb klappt das Aktivieren von Telnet weder über den Tastencode   #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 FRITZ!Box-Kennwort 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:

  • erfolgreicher Test mit Firmware 14.04.30
  • der Benutzer ThSteffens berichtet, dass dies ebenso mit der Firmware 14.04.31 funktioniert. --Goodgirl 18:10, 20 July 2007 (CEST)
  • Funktioniert ebenfalls mit der Firmware 14.04.33. --Mgoeben 16:25, 02 October 2007 (CEST)
  • Beim Firefox 5.0 gibt es ein Problem, es kommt die Meldung Bitte den vollständigen Pfad angeben. Mit dem IE funktioniert es. (7050 Firmware 14.04.33) --oh-mark 14:07, 10 September 2011 (CEST)

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 Neustart 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.

htpasswd als Online Tool

Wenn man mal zufälligerweise kein htpasswd hat, kann man das auch online machen (google htpasswd). Allerdings sollte sich hierbei immer überlegt werden, ob das eigene Passwort online übertragen und an den Serverbetreiber übermittelt werden soll.

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:
- startet telnetd (default pw: avm; sofort aendern!)
- setzt hostname (default: fritz)
- setzt Eintrag in "/etc/hosts": 192.168.77.254 fritz
- aktiviert remote syslog (default syslog-host: 192.168.77.1)
- aktiviert debug output vom dsld (macht REJECT, DROP etc. per remote syslog sichtbar)
- 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).
- 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 Neustart aktiviert.
default-Werte koennen modifiziert werden, wenn das fboxTF.img selbst erzeugt wird.

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

Siehe auch

Telnet: (8)