Busybox mit Telnet in Fritz-OS 7.2x?

damit es @Insti ggfs. auf seinem Server verwursten kann für die "nicht_so_bewanderten_UserInnen".
probiere mal. mod_multiple_fax_pages ist dabei.

Code:
root@ubuntu ~ > wget -O - -q http://insti.chickenkiller.com:1973/fritzboxbuild/7530.sh | bash                                                                                                                                                mkdir: das
Klone nach 'YourFritz' ...
remote: Enumerating objects: 114, done.
remote: Counting objects: 100% (114/114), done.
remote: Compressing objects: 100% (66/66), done.
remote: Total 3479 (delta 70), reused 85 (delta 45), pack-reused 3365
Empfange Objekte: 100% (3479/3479), 4.03 MiB | 4.66 MiB/s, Fertig.
Löse Unterschiede auf: 100% (2224/2224), Fertig.
Submodul 'bin' (https://github.com/PeterPawn/yf_bin.git) für Pfad 'bin' in die Konfiguration eingetragen.
Submodul 'first_aid' (https://github.com/PeterPawn/first_aid.git) für Pfad 'first_aid' in die Konfiguration eingetragen.
Klone nach '/opt/Fritzbox-Image/YourFritz/bin' ...
remote: Enumerating objects: 99, done.
remote: Counting objects: 100% (99/99), done.
remote: Compressing objects: 100% (78/78), done.
remote: Total 926 (delta 22), reused 90 (delta 19), pack-reused 827
Empfange Objekte: 100% (926/926), 75.25 MiB | 6.42 MiB/s, Fertig.
Löse Unterschiede auf: 100% (180/180), Fertig.
Klone nach '/opt/Fritzbox-Image/YourFritz/first_aid' ...
remote: Enumerating objects: 42, done.
remote: Total 42 (delta 0), reused 0 (delta 0), pack-reused 42
Submodul-Pfad: 'bin': '761344186579a26a7f60791f76f0f938b19b3a44' ausgecheckt
Submodul-Pfad: 'first_aid': '0359a4db07ffb555b5714184f16a2ffd7348955b' ausgecheckt
Klone nach 'modfs' ...
remote: Enumerating objects: 94, done.
remote: Counting objects: 100% (94/94), done.
remote: Compressing objects: 100% (56/56), done.
remote: Total 1699 (delta 52), reused 73 (delta 36), pack-reused 1605
Empfange Objekte: 100% (1699/1699), 17.21 MiB | 6.12 MiB/s, Fertig.
Löse Unterschiede auf: 100% (1143/1143), Fertig.
Found TI checksum (0xED68084B) at the end of the image.
Filesystem on fs.sqfs is xz compressed (4:0)
Parallel unsquashfs: Using 2 processors
8325 inodes (9284 blocks) to write


created 7631 files
created 516 directories
created 693 symlinks
created 1 devices
created 0 fifos
Running script 'gui_boot_manager_v0.6' ...
      Patching file 'usr/www/1und1/system/reboot.js' ...
      Patching file 'usr/www/1und1/system/reboot.lua' ...
      Patching file 'usr/www/avm/system/reboot.js' ...
      Patching file 'usr/www/avm/system/reboot.lua' ...
      Patching file 'usr/www/avme/system/reboot.js' ...
      Patching file 'usr/www/avme/system/reboot.lua' ...
Finished script 'gui_boot_manager_v0.6', rc=0
Running script 'mod_enable_calllog' ...
Finished script 'mod_enable_calllog', rc=0
Running script 'mod_fixed_branding' ...
Das Branding für das neue System wurde fest auf 'avm' eingestellt.
Finished script 'mod_fixed_branding', rc=0
Running script 'mod_multiple_fax_pages' ...
Finished script 'mod_multiple_fax_pages', rc=0
Running script 'mod_rc_tail_sh' ...
Finished script 'mod_rc_tail_sh', rc=0
Running script 'mod_telnet_enable' ...
Finished script 'mod_telnet_enable', rc=0
Running script 'mod_yourfritz_key' ...
Der öffentliche Schlüssel wurde als 'etc/plugin_global_key.pem' installiert.
Finished script 'mod_yourfritz_key', rc=0
Parallel mksquashfs: Using 2 processors
Creating 4.0 filesystem on fs.sqfs, block size 65536.

Exportable Squashfs 4.0 filesystem, xz compressed, data block size 65536
        compressed data, compressed metadata, compressed fragments, no xattrs
        duplicates are removed
Filesystem size 25160.51 Kbytes (24.57 Mbytes)
        21.72% of uncompressed filesystem size (115822.94 Kbytes)
Inode table size 65514 bytes (63.98 Kbytes)
        22.05% of uncompressed inode table size (297106 bytes)
Directory table size 83692 bytes (81.73 Kbytes)
        37.53% of uncompressed directory table size (223015 bytes)
Number of duplicate files found 5052
Number of inodes 8849
Number of files 7638
Number of fragments 383
Number of symbolic links  694
Number of device nodes 1
Number of fifo nodes 0
Number of socket nodes 0
Number of directories 516
Number of ids (unique uids + gids) 1
Number of uids 1
        root (0)
Number of gids 1
        root (0)
insgesamt 63376
-rw-r--r--  1 root root 28872448 Okt 28 08:21 7530_2020-10-28:08:21:08.image
-rw-r--r--  1 root root 32904192 Okt  5 06:09 7590_2020-10-05:06:09:27.image
-rw-r--r--  1 root root  3104512 Okt 28 08:20 kernel.bin
drwxr-xr-x  9 root root     4096 Okt 28 08:19 modfs
drwxr-xr-x 13 root root     4096 Okt 19 18:31 squashfs-root
drwxr-xr-x 28 root root     4096 Okt 28 08:19 YourFritz
root@ubuntu ~ >
 
  • Like
Reaktionen: Micha0815
Hat jemand Telnet mit der letzten 7.24-83272 auf der 7590 zum laufen gebracht?

http://fritz.box/cgi-bin/system_status zeigt
Code:
voipd[4945]: ready (1sec)
Phone services restarted.
aber auch #96*7* bringt "Dienst nicht möglich" und Telnet natürlich nur "Connection refused".

Modfs lief ohne Fehler durch (Symlink und telnetd_by_avm sind auch vorhanden) und zumindest den Bootmanager kann ich in der GUI sehen und die debug.cfg wird auch verarbeitet.

Die busybox scheint Telnet auch noch drin zu haben
Code:
strings busybox | grep telnet
/usr/sbin/telnetd
telnetd

Hm, nun bin ich etwas ratlos. Jemand noch eine Idee?

Edit: Habe nun Dropbear eingebaut, ist eh sinnvoller.
 
Zuletzt bearbeitet:
Durchaus möglich, daß AVM den "Inhouse-Modus" im "telefon"-Daemon geändert hat - von dessen Verarbeitung der Telefoncodes hängt ja die Umschaltung des Flags in der "fx_conf" ab und außerdem muß er noch den Telnet-Daemon anwerfen, wenn das Flag bei seinem Start gesetzt ist oder später eingeschaltet wird. Weil es schon länger Probleme mit mehrfacher Umschaltung gibt, existiert ja überhaupt nur die "telnetd_by_avm", die das praktisch nachholt.

Die Nachricht mit dem "Phone services restarted." wird von "telnetd_by_avm" (https://github.com/PeterPawn/modfs/blob/master/files/telnetd_by_avm) nur dann ausgegeben, wenn alle vier Voraussetzungen:
  • Symlink existiert
  • "telefon"-Binary ist vorhanden
  • "CONFIG_RELEASE=0" ist entweder für das ganze System gesetzt oder in der "rc.voip" taucht es auf (dabei wird davon ausgegangen, daß es schon an der richtigen Stelle sein wird)
  • das Flag in der "fx_conf" ist eingeschaltet (was praktisch nur über den Telefoncode geht, aber von einem vorherigen System stammen kann, da es persistent gespeichert wird/wurde
erfüllt sind UND kein "telnetd" läuft, aber "telefon" gestartet wurde.

Angesichts dieser ganzen Voraussetzungen für die Ausgabe der o.a. Nachricht, wird wohl das Starten des "telnetd" aus dem "telefon"-Daemon heraus nicht funktionieren - das kann vom Fehlen des Kommandos (im Binary) bis zu einer geänderten Prüfung von Voraussetzungen gehen. Das müßte man sich daher genauer ansehen ... wenn es sich als "stable" herausstellen sollte und damit als von AVM bewußt eingebaute (und nicht mehr korrigierte) Änderung.

Dann muß man sich - zwischenzeitlich oder für immer - einen anderen Weg suchen ... eine (schlechte, aber ohne weitere Änderungen bei Dir verfügbare) Option wäre dann der Start aus der "rc.user" heraus - nur muß man ggf. auf ein älteres System zurück, um den dort einzutragen.

Als Alternative hatte ich auch mal den Start über Telefoncodes ohne den "Inhouse-Mode" implementiert (https://github.com/PeterPawn/modfs/blob/master/modscripts/inactive/mod_telnet_start_as_dtrace) ... dabei wird das "dtrace"-Binary umbenannt und durch ein Shell-Skript ersetzt, das beim Start über den "telefon"-Daemon (dafür gibt es ja andere Telefoncodes, die bisher auch weiter funktionierten) stattdessen den "telnetd" anwirft und nur beim Start über die Seite für die Paketmitschnitte auch wirklich "dtrace" startet.

Die dritte Option (ebenso schlecht wie die erste, denn das Ergebnis ist ein permanent laufender "telnetd"-Prozess) ist der explizite Start eines passenden Services über den "supervisor" - für ältere Systeme, die über die "rc.S" gestartet werden, gibt es auch dafür ein Skript (https://github.com/PeterPawn/modfs/blob/master/modscripts/inactive/mod_telnet_start), aber für die neueren (das sind ja die mit dem "supervisor") nicht und ich hatte auch nicht die Absicht, eines zu erstellen.
 
  • Like
Reaktionen: LazyT
Habe wie oben ergänzt inzwischen wieder Zugriff über SSH auf die Box.

Falls ich also irgendwas testen/prüfen soll einfach Bescheid geben. Den telnetd kann ich jedenfalls manuell starten...
 
Falls ich also irgendwas testen/prüfen soll
Ich schaue es mir erst mal "im Trockentest" an, was da im "telefon"-Binary geändert wurde - wenn die Ursache etwas klarer ist, kann man sich überlegen, was man dagegen macht oder ob man (ja immer noch deutlich später als gedacht) künftig auf den Start über Telefoncodes verzichten muß - der Aufwand muß sich ja auch lohnen und Telnet ist immer nur der Notausgang - da braucht's keinen Park-Service und niemand muß die Tür aufhalten.
 
EDIT 2020-12-03:

Ich bekomme telnet nicht zum Laufen, bei mir startet das Ding mit Wählhilfe leider nicht.

Die folgenden mods wurden angewandt, am PC, nicht auf der Box:
Code:
mod_telnet_enable
mod_enable_calllog
gui_boot_manager_v0.6

Nun hab ich mir folgende Datei nach Idee aus https://www.ip-phone-forum.de/threads/modfs-squashfs-image-avm-firmware-ändern-für-nand-basierte-fritz-boxen.273304/post-2386201 erstellt:
Rich (BBCode):
/squashfs-root/lib/systemd/system$ cat telnet.service
[Service]
After=kpid.service
ExecStart=/usr/sbin/telnetd -l /sbin/ar7login

Ich weiß, das hätte einen ständigen laufenden telnetd zur Folge. Ist aber nicht schlimm, die Box ist von außen nicht erreichbar (steht hinter einem Kabelmodem) und ich bin der einzige mit Zugriff darauf.

Telnet startet trotzdem nicht. Was fehlt/ist falsch?
 
Zuletzt bearbeitet:
Hast du schon probiert das Image zu bauen mit dem Script vom Peter von hier: https://www.ip-phone-forum.de/threa...e-dann-auf-der-fritz-box.307161/#post-2371379 ?
Bei der 7520/7530, 7560 und 7580 funktioniert es. 7590 habe ich keine zum testen aber es sollte auch funktionieren.
Um nicht jedes mal alles c&p machen zu müssen habe ich das Script mal gespeichert.
Code:
wget -O - -q http://force-unleashed.firewall-gateway.net:1973/osprey/7590.sh | bash
Das fertige Image ist in /opt/Fritzbox-Image7590/ zu finden.
 
@rolex0815:
Ich bin noch nicht dazu gekommen, den Start über die Telefon-Codes zu prüfen - meine 7590 ist derzeit an anderer Stelle im Einsatz und soll ermitteln, ob dort auftretende Fehler der vorhandenen 7490 zuzurechnen sind oder ob es doch an der DSL-Leitung liegt. Erst wenn die wieder da ist, kann ich das (auf der 7590 zumindest) testen - für die 7490 (wo die neue Labor-Reihe ja seit drei Wochen auch verfügbar wäre) habe ich - im "modfs"-Thread, wo das ja am ehesten zu erwarten wäre - noch nichts gelesen, daß es da auch Probleme gäbe (vielleicht hat es auch nur niemand getestet). Ich weiß also (immer) noch nicht, was das Problem mit den Telefon-Codes sein könnte bzw. ob es das überhaupt als generelles Problem gibt. In Deinem Beitrag fehlt auch die Angabe, über welches Modell (da kann ich noch "7590" raten) und über welche Firmware-Version wir reden.

================================================

Aber bei der gezeigten Service-Datei würde ich mich fragen, ob die vom supervisor tatsächlich einer Unit (also einer "Startgruppe", wenn man mal im Bild beim systemd bleiben will, an den AVM das ja offensichtlich anlehnt) zugeordnet wird, die auch beim Systemstart angeworfen wird.

Das After=... wird (vermutlich) nur die Hinweise für die Sortierung der Services untereinander liefern - ich würde hier noch ein WantedBy=multi-user.target in die Service-Datei einbauen, damit der auch vom supervisor automatisch gestartet wird, wenn der das Target (Ziel/Zustand) multi-user "erreichen" soll - wie bei allen anderen Service-Files von AVM, deren Dienste automatisch gestartet werden sollen (auch wenn die jeweiligen Units/Targets sich unterscheiden).
 
Hast du schon probiert das Image zu bauen mit dem Script vom Peter von hier: https://www.ip-phone-forum.de/threa...e-dann-auf-der-fritz-box.307161/#post-2371379 ?
Ja, hab ich alles schon durch, nachdem ich die diversen Threads durchgeackert habe. Mir sind die Scripts auch alle klar, ich kenne mich mit Shell-Scripting aus. Habe auch schon die Minimalvariante versucht, also nur mehr den bootmanager eingebaut und die Schritte für telnet "von Hand gemacht". Da ich kein Telefon an der Box dran habe und ich mir auch keines kaufen will da es nutzlos wäre, will ich es nun mit dem ständig aktiven telnet versuchen, bzw. dann als nächsten Schritt einen dropbear einbauen. Wäre dann von den Freetz Projekten komplett unabhängig, da ich nur den Shell-Zugang benötige.

Das After=... wird (vermutlich) nur die Hinweise für die Sortierung der Services untereinander liefern - ich würde hier noch ein WantedBy=multi-user.target in die Service-Datei einbauen, damit der auch vom supervisor automatisch gestartet wird, wenn der das Target (Ziel/Zustand) multi-user "erreichen" soll - wie bei allen anderen Service-Files von AVM, deren Dienste automatisch gestartet werden sollen (auch wenn die jeweiligen Units/Targets sich unterscheiden).

Ich reiche als erstes gleich mal die Infos zu meiner Box (FB 7590) nach:
Rich (BBCode):
HWRevision            226
HWSubRevision        4
ProductID            Fritz_Box_HW226
annex                A
autoload            yes
bootloaderVersion    1.3578
country                99
firmware_info        154.07.21
firmware_version    avme
flashsize            nor_size=0MB sflash_size=0KB nand_size=512MB
language            de
linux_fs_start        0

Danke für den Input bei der Service-Datei. Ich werde jetzt nochmals eine Minimalversion versuchen, bestehend nur aus dem eingebauten bootmanager und ständig aktivem telnet.

Also folgende Vorgehensweise: [FUNKTIONIERT]
========================================

Text in orange bedeutet optional = nicht nötig für telnet!
Text in blau ehemals notwendig für AT/CH Version, nicht notwendig für DE Boxen. Anders ausgedrückt: Bei branding "avm" nicht notwendig.
  • entpacktes squashfs image
  • ändern auf CONFIG_RELEASE="0" in rc.conf - sollte mWn nur relevant sein, wenn telnet per telefon daemon gestartet werden soll, aber sicher ist sicher
  • ändern auf export OEM=avm in rc.conf - wegen bootloader brandings "avme"
  • setzen des Symlinks mittels ln -s /squashfs-root/bin/busybox telnetd:
Rich (BBCode):
/squashfs-root/usr/sbin$ ls -lh telnetd
lrwxrwxrwx 1 root root 17 Dez  9 17:31 telnetd -> ../../bin/busybox
  • erstellen der Service-Datei:
Rich (BBCode):
/squashfs-root/lib/systemd/system$ cat telnet.service
[Service]
ExecStart=/usr/sbin/telnetd -l /sbin/ar7login
After=net.service
WantedBy=multi-user.target
  • Einbau des bootmanagers per run_modscript

After=net.service ist ein anderer Versuch, evtl. klappt der Start des telnetd dann, wenn das 'net' Zeugs steht (just guessing ...).
 
Zuletzt bearbeitet:
ändern auf CONFIG_RELEASE="0" in rc.conf - sollte mWn nur relevant sein, wenn telnet per telefon daemon gestartet werden soll, aber sicher ist sicher
Stimmt zwar im Prinzip ... aber da das "CONFIG_RELEASE=0" auch noch andere "Nebenwirkungen" hat, baue ich es bei den "modfs"-Änderungen extra nur in den Start des "telefon"-Daemons ein, damit der Rest nicht auch sein Verhalten ändert (manchmal nur subtil, aber doch an viel mehr Stellen, als nur in dem erwähnten Daemon).
 
Finally!
Rich (BBCode):
# uname -a
Linux FritzBox7590 4.9.198 #1 SMP Fri Aug 28 17:55:06 CEST 2020 mips
#
# cat /var/jason_boxinfo.xml

<j:BoxInfo xmlns:j="http://jason.avm.de/updatecheck/">
<j:Name>FRITZ!Box 7590</j:Name>
<j:HW>226</j:HW>
<j:Version>154.07.21</j:Version>
<j:Revision>82154</j:Revision>
<j:OEM>avm</j:OEM>
<j:Lang>de</j:Lang>
<j:Annex>A</j:Annex>
<j:Lab></j:Lab>
<j:Country>99</j:Country>
<j:Flag>mesh_repeater_no_trusted</j:Flag>
<j:UpdateConfig>0</j:UpdateConfig></j:BoxInfo>

Danke für den Tipp @PeterPawn !
 
# cat /var/jason_boxinfo.xml <j:BoxInfo xmlns:j="http://jason.avm.de/updatecheck/"> <j:Name>FRITZ!Box 7590</j:Name> <j:HW>226</j:HW> <j:Version>154.07.21</j:Version> <j:Revision>82154</j:Revision> <j:OEM>avm</j:OEM> <j:Lang>de</j:Lang> <j:Annex>A</j:Annex> <j:Lab></j:Lab> <j:Country>99</j:Country> <j:Flag>mesh_repeater_no_trusted</j:Flag> <j:UpdateConfig>0</j:UpdateConfig></j:BoxInfo>
Das hättest du dir auch mit:
http://fritz.box/jason_boxinfo.xml
anzeigen können.
Dazu braucht man kein telnet. ;)
 
  • Like
Reaktionen: rolex0815 und Insti
z.B. die Service-Datei geändert.
Ich habe das jetzt auch bei einem FR1200 gemacht, da man sonst fast keine Chance hat das Telnet zu aktivieren.
 
Die Anleitung ist auch noch für die 7.25 gültig, telnet lässt sich damit weiterhin aktivieren.
 
HI,

erstmal nochmal vielen Dank für die Info das Telnet auch auf 7.25 geht. Also mit deiner Anleitung komme ich soweit zurecht. Ist denn nun in rc.conf die beiden Änderungen notwendig? Oder nur nice to have?

Außerdem starte ich folgende Modscripts selber:

edit_rcuser
mod_enable_calllog
mod_rc_tail_sh

Ist dazu noch irgendwas notwendig, damit der telnet.service beim Hochfahren ausgeführt wird? oder wie machst du das?

also was bedeutet das :
  • Einbau des bootmanagers per run_modscript
Vielen Dank.

Gruß kami
 
Ich habe jetzt mein Posting weiter oben nochmals editiert um hoffentlich klar herauszustreichen, was für telnet benötigt wird - und was ich nur damals ebenso dazu gemacht habe.

Es werden überhaupt keine modscripts benötigt, um telnet beim Systemstart mit zu starten, sondern nur die beschriebene Vorgangsweise.
Für Fragen zum bootmanager hilft die Forumssuche und liefert beispielsweise das:
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,167
Beiträge
2,247,307
Mitglieder
373,705
Neuestes Mitglied
brunomuehl
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.