Telnet auf FritzBox 7490 mit FRITZ!OS 6.30 dauerhaft reaktivieren

Neulich musste ich feststellen, dass 1&1 hinter meinem Rücken wohl per TR-069 meine FritzBox 7490 von FritzOS 6.24 auf 6.30 aktualisiert und damit meine intelligente Anrufweiterleitungsfunktion mit FHEM zerstört hat. Falls auch Sie Telnet auf Ihrer FritzBox 7490 nach dem 6.30er Update schmerzlich vermissen, hier eine Möglichkeit um es wieder zu aktivieren:

Zuerst das FritzBox 6.24 Downgrade Image herunterladen. Es scheint zur Zeit nicht mehr auf dem offiziellen FTP zu sein, evtl. mir eine Email schreiben dann sehe ich was ich tun kann. Ein Backup machen und mit Kennwort versehen. Das Kennwort ist besonders wichtig, weil ohne ging der Reimport dann nicht mehr. Danach das Image wie gewohnt einspielen. Auf FritzOS 6.24 dann die Internetverbindung auf der FritzBox wiederherstellen, die Telefonie einrichten und mit einem angeschlossenen Handgerät #96*7* wählen um den telnetd zu aktivieren.

Telnetd sollte nun wieder erreichbar sein:

telnet fritz.box
Trying 192.168.181.1...
Connected to fritz.box.
Escape character is '^]'.
password:

BusyBox v1.20.2 (2014-09-26 13:25:19 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

Nun kann ein Update auf 6.30 mit einigen Modifikationen per modfs vorgenommen werden:

mkdir -p /var/mod;cd /var/mod;wget -qO- http://yourfritz.de/7490/modfs.tgz | gunzip -c | tar x;./modfs update

Ermitteln der Hardware-Version ... OK
Prüfen, ob die Hardware-Version unterstützt wird ... OK
Suchen der Einstellung zur Umschaltung auf das alternative System ... OK
Prüfen der aktuell zu startenden Systemversion ... OK
Suchen der aktuellen Kernel-Partition ... OK
Suchen der alternativen Kernel-Partition ... OK
Vergleich der Systeme in den Kernel-Partitionen ... übersprungen
Suchen der aktuellen Dateisystem-Partition ... OK
Suchen der alternativen Dateisystem-Partition ... OK
Überprüfen des zur Verfügung stehenden Speicherplatzes im RAM ... OK
Überprüfen des freien Speicherplatzes für das Auspacken des Dateisystems ... OK

Das System erfüllt die Voraussetzungen zur Modifikation des root-Dateisystems.

Im Moment läuft auf der Box die Version: 113.06.24

Die Auswahl des 'update'-Modus erfordert eine neuere Firmware-Version vom
FTP-Server des Herstellers.

Ermitteln der neuesten Version durch Suche auf dem FTP-Server ... OK
Es wurde eine neuere Version (113.06.30) auf dem FTP-Server gefunden.
Download eines aktuellen Firmware-Images vom FTP-Server des Herstellers ... OK
Extrahieren des neuen Kernel-Images aus dem Firmware-Image ... OK
Extrahieren des Flash-Filesystems aus dem Firmware-Image ... OK
Extrahieren des Wurzeldateisystems aus dem Flash-Filesystem ... OK
Löschen des geladenen Firmware-Images ... OK
Entpacken des root-Dateisystem für die Modifikationen ... OK

Das entpackte Dateisystem ist jetzt bereit für die Modifikationen.

Verzeichnis des root-Dateisystems : /var/media/ftp/1447338623/squashfs-root

Die Modifikation 'enable system selection from GUI' wird verarbeitet ...
Überprüfen der unterstützten Sprachen ... OK
Überprüfen der Voraussetzungen für die Modifikation ... OK
Modifikation wird ausgeführt ... OK
Überprüfen des Erfolgs der Modifikation ... OK

Die Modifikation 'enable system selection from GUI' wurde angewendet, Fehlercode = 0.

Die Modifikation 'enable rc.user execution' wird verarbeitet ...
Überprüfen der unterstützten Sprachen ... OK
Überprüfen der Voraussetzungen für die Modifikation ... OK
Modifikation wird ausgeführt ... OK
Überprüfen des Erfolgs der Modifikation ... OK

Die Modifikation 'enable rc.user execution' wurde angewendet, Fehlercode = 0.

Die Modifikation 'create edit_rcuser command' wird verarbeitet ...
Überprüfen der unterstützten Sprachen ... OK
Soll die Modifikation 'create edit_rcuser command' mit folgender Beschreibung
Es wird ein zusätzliches Kommando 'edit_rcuser' erzeugt, mit dem die Kommandos
in der Datei 'rc.user' sicher bearbeitet werden können, ohne daß man sich um
die Besonderheiten des TFFS kümmern muß.
angewendet werden ? (j/N) N

Die Modifikation '(re)enable telnet daemon' wird verarbeitet ...
Überprüfen der unterstützten Sprachen ... OK
Soll die Modifikation '(re)enable telnet daemon' mit folgender Beschreibung
Erstellen eines Symlinks, um die Ausführung des telnetd-Applets der
Busybox wieder zu ermöglicen
angewendet werden ? (j/N) j
Überprüfen der Voraussetzungen für die Modifikation ... OK
Modifikation wird ausgeführt ... OK
Überprüfen des Erfolgs der Modifikation ... OK

Die Modifikation '(re)enable telnet daemon' wurde angewendet, Fehlercode = 0.

Die Modifikation 'enable custom profile extension' wird verarbeitet ...
Überprüfen der unterstützten Sprachen ... OK
Soll die Modifikation 'enable custom profile extension' mit folgender Beschreibung
/etc/profile modifizieren, um die Kommandos in /var/custom/profile am Ende
zusätzlich auszuführen, wenn diese Datei existiert
angewendet werden ? (j/N) N

Das ist die letzte Chance zum manuellen Modifizieren des Dateisystems in /var/media/ftp/1447338623/squashfs-root.

Die Eingabetaste drücken, um mit dem Packen des neuen root-Dateisystems zu beginnen
oder 'q' eingeben, um die letzte Möglichkeit zum Abbruch zu nutzen :

Packen des neuen root-Dateisystems ... /

Die Optionen wie oben gezeigt wählen und mit Enter quittieren. Danach einen reboot durchführen.

Damit einem nicht wieder der Netzbetreiber heimlich updates einspielen kann empfiehlt es sich den tr-069 zu deaktivieren. Dies kann einfach per ctlmgr_ctl erreicht werden:

Bei dem Mod kann auch die debug.cfg wieder reaktiviert werden.
Danach kann die debug.cfg wieder wie gewohnt mit nvi editiert werden:

Falls man fhem mit https auf FRITZ!OS 6.20 betreiben möchte, kommt es beim Starten zu folgendem Fehler:

weil AVM die OpenSSL von 0.9.8j auf 1.0.1h angehoben hat.

Ein Workaround ist die Verwendung der alten Libraries:

Auch können die fehlenden Programme netcat und socat über eine unbeschnittene Busybox nachinstalliert werden:

Danach ist netcat wieder verfügbar unter:

FritzBox debug.cfg editieren

Wenn man Befehle bei jedem FritzBox Start ausführen mag z.B. eigene Programme nachinstallieren, FritzLoad! oder FHEM kann man dies in der debug.cfg tun.

Das geht ganz einfach mit dem vi Derivat nvi:

dann vi typisch:

  • i für insert
  • dd um Zeile zu löschen
  • esc+:q zum abbrechen
  • esc+:wq zum speichern

Um zum Beispiel FHEM als root zu starten müsste die Zeile:

/var/InternerSpeicher/fhem/startfhemAsRoot

eingefügt werden. Das Ganze geht allerdings auch noch einfacher als One-Liner: