- Mitglied seit
- 10 Mai 2006
- Beiträge
- 15,274
- Punkte für Reaktionen
- 1,751
- Punkte
- 113
Ich mache hier mal einen Thread auf, in dessen erstem Beitrag ich - in loser Reihenfolge - die wichtigsten Sachen aufführen will, die mir beim Blick in die Innereien der neuen Labor-Version 113.07.19-73512 (auch wenn die nach Labor-Maßstäben schon fast wieder angestaubt ist) aufgefallen sind. Die Änderungen bei der 7590 dürften ähnlich ausfallen ... schon die von AVM veröffentlichten Informationen in der "infolab.txt" der jeweiligen ZIP-Archive sprechen ja dafür.
Das hier zu Beschreibende betrifft sowohl ein paar deutlich sichtbare Neuheiten, als auch einige Spekulationen und die Erkenntnisse werden sich sicherlich - wie so oft beim Erscheinen einer "neuen Generation" des FRITZ!OS, auch wenn das wohl keine 8 in der Nummer wird - auch erst nach und nach entwickeln.
Bisher habe ich diese Version noch gar nicht auf einer 7490 installiert, die ersten Infos beruhen also bisher ausschließlich auf dem Blick auf/in die entpackte Firmware und schon der erste Start kann da ggf. eine (falsche) Annahme wieder über den Haufen werfen - ich werde also deutlich machen, wo die Erkenntnisse aus Tests der installierten Version starten. Etwaige Irrtümer werde ich auch nicht dadurch korrigieren, daß ich einmal Geschriebenes ändere oder lösche ... wenn nötig, kommt da eine Ergänzung mit dem Verweis auf neuere Erkenntnisse hin oder ich gehe sogar davon aus, daß man die Beiträge bis zum Ende liest und spätere Korrekturen auch im "reinen Text" findet und erkennt. Wer das nicht möchte, sollte ggf. gleich in Erwägung ziehen, ab hier nicht weiterzulesen.
---------------------------------------------------------------------------------------------------------------------
Kernkomponenten:
- 7490: generell wohl GCC 5.5.0 als Compiler, uClibc-ng 1.0.30 als C-Library, Kernel-Version unverändert 3.10.107
- 7590: GCC 8.3.0, musl libc 1.?.?(!) als C-Library, Kernel-Version 4.9.198 - ich wage mal eine pessimistische Prognose hinsichtlich der Open-Source-Quellen, denn "musl" steht unter MIT-Lizenz und wenn die nicht dabei sind und sich niemand der Sache annimmt, die entsprechend einzupflegen (auch wenn bei "musl" jetzt nicht wirklich viele Konfigurationsoptionen existieren, wie bei uClibc[-ng]) im passenden Stand (denn auch da gibt es ab und an eine neue Version: http://git.musl-libc.org/cgit/musl/), dann würde Freetz wohl langsam sterben bei den neueren Modellen ... die Software-Auswahl von AVM, wenn es gilt, bisher verwendete Teile zu ersetzen [von NTFS über Samba bis jetzt zur C-Library] zeigt ja auffällig in eine bestimmte Richtung und die geht eindeutig weg von GPL und Verwandten
------------------------------------------------------------------------------------------------------------------------------------
Kurze Stichpunkte von meinem Notizzettel - nicht immer mit ausführlicher Betrachtung:
- Systemstart über ein "systemd"-Derivat (zumindest benutzt das dieselben Strukturen wie der "systemd") mit dem Namen "supervisor"
- dadurch aufgeteilter Start der meisten Dienste ... vieles ist schon auf den "supervisor" (ich nenne den jetzt "SV", bei AVM gibt es auch eine neue Library "libsvctrl.so", die wohl zur Steuerung dieses Daemons dienen dürfte) umgestellt - das findet sich in "/etc/boot.d" und in "/lib/systemd/system" und nur noch wenige Skript-Dateien sind in "/etc/init.d" verblieben, wobei mancher Start eines Dienstes auch einfach wieder eines der "rc.something"-Scripts aus "/etc/init.d" aufruft
- durch den geänderten Ablauf beim Start sind sicherlich viele Modifikationen noch einmal zu überprüfen, besonders solche, die sich in zuvor vorhandene AVM-Dateien eingeklinkt haben (Bsp: debug.cfg (aka rc.user) - die "S99-tail" bzw. "E99-tail", aus der die zuvor aufgerufen wurden bei den meisten Mods, gibt es gar nicht mehr, ebensowenig wie die "rc.tail.sh")
- damit funktioniert auch der Start von Freetz nicht mehr so richtig (wenn ich das richtig in Erinnerung habe bzw. richtig lese), weil die Änderung zum Aufruf der "rc.mod" aus der "rc.tail.sh" (https://github.com/Freetz/freetz/blob/master/patches/scripts/115-patch-ds_off.sh) ins Leere greift und auch der Versuch, sich an der "/etc/init.d/rc.S" zu vergehen (im "else"-Zweig des Patches,) hier zum Scheitern verurteilt ist
- witzig ist es (jedenfalls in gewissen Grenzen), daß die BusyBox von AVM immer noch den "telnetd" als Applet enthält - halt mit der bekannten Überprüfung, ob "/usr/sbin/telnetd" ein Symlink ist (wohin ist dann schon wieder egal) ... man braucht also für einen schnellen Telnet-Zugriff noch eine Möglichkeit zum Setzen des Symlinks und zum Starten des Daemons, aber nicht zwingend weitere Binaries (was bei der 7590 wieder bedeutsam werden könnte, wenn die immer noch das "overlayfs" im Kernel enthält und man damit - mit sehr geringem Aufwand - den Symlink im "upperdir" erzeugen könnte)
- die Verwaltung der VPN-Verbindungen wurde (vermutlich) aus dem "ctlmgr" ausgelagert (wobei Teile wohl auch im "kdsld" waren) und in einen neuen Daemon namens "vpnd" integriert, der auch ein IPC-Interface hat (was das kann, kriegt man erst wieder so richtig raus, wenn man den mal in Aktion erlebt)
- zuerst dachte ich schon, AVM hätte die "Vorgaben" in der "ar7.cfg" heftig zusammengestrichen, weil die nur noch 4.775 Byte belegt, im Gegensatz zu 11.826 in der 07.11 - das hat sich aber als Irrtum herausgestellt, weil AVM nur auf die ganzen Leerzeichen (ggf. auch Tabs) in der Vorlage verzichtet und das jetzt nicht mehr eingerückt ist ... was das am Ende beim Export bedeutet oder ob da wieder das "bekannte Bild" entsteht, muß sich noch (er)weisen
- wenn's schlecht läuft, müssen die ganzen Tools überarbeitet werden, die mit Export-Dateien umgehen können ... es gibt intern zusätzliche "Dateitypen" namens "B64FILE" und "CRYPTEDB64FILE" und wenn der Name nicht in die Irre führt, wird AVM da wohl Base64-Kodierung für die Daten verwenden - ob das die bisher verwendete Hex-Kodierung für "[CRYPTED]BINFILE" ersetzt oder ergänzt, wäre ebenso noch zu erkunden (geht wieder erst nach der Installation)
- PŸUR ist als Vorlage für die VoIP-Provider hinzugekommen
- einige Utilities wurden "renoviert" und befinden sich jetzt nicht mehr unter /usr/sbin wie bisher, sondern sind direkt in /sbin zu finden (wenn man die durch eigene Dateien ersetzen wollte)
- zusammen mit dem Samba-Server "nqcs", der ja als Versuch schon vor einem knappen Jahr mal "das Licht der Welt erblickte" im FRITZ!OS, wird jetzt offenbar auch AppArmor (ein zusätzlicher Security-Layer, der die Rechte von Prozessen auf das tatsächlich Notwendige zusammenstreichen kann und das ist erst recht sinnvoll, wenn es - wie im FRITZ!OS - ansonsten kein "Rechtekonzept" gibt und praktisch alles als "root" läuft) in diese Version Einzug halten
- bisher ist der "nqcs" jedenfalls wohl der einzige Prozess, der unter AppArmor-Regie arbeitet (siehe /lib/apparmor.d) - AVM legt hier offenbar auch nur das bereits von "apparmor-parser" verarbeitete binäre Profil dazu (Option -o) und ich muß erst mal schauen, ob "apparmor-parser" das auch wieder zurückübersetzen kann oder ob der laufende AppArmor-Daemon dann auskunftsfreudiger ist hinsichtlich der Rechte, die dem "nqcs" tatsächlich zugestanden wurden von AVM
- daß der "multid" dazugelernt hat, versteht sich angesichts des offiziell eingeräumten DoT-Supports von selbst ... aber daß er jetzt wohl auch noch LLDP versteht (und zwar vermutlich nicht nur, wenn ihn andere befragen, sondern auch zur Zusammenstellung der eigenen "Weltsicht" - aka FBSTATE, u.U. sogar mit irgendwelchen persistent gespeicherten Daten, die "libavmfbstate.so" enthält jedenfalls Strukturen, die man bei AVM sonst nur findet, wenn es um die Verarbeitung von Konfigurationsdateien geht), steht bisher aber nicht bei AVM (und vielleicht funktioniert es ja auch noch nicht, es ist aber neu im "multid")
- die Zertifikate für die Validierung von DoT-Servern hat AVM gesondert in der Firmware untergebracht (als "dot_ca_root.pem") ... da sind 17 CA-Zertifikate enthalten (nur gezählt, nicht weiter dekodiert mit "openssl x509") und eines davon ist wohl auch das LE-(CA-)Zertifikat - wer aber mit einer gänzlich eigenen PKI und der originalen Firmware DoT betreiben will (also auch mit eigener CA und von der signierten Zertifikaten), der wird wohl in die Röhre schauen und um eine Änderung (Hinzufügen der eigenen CA zu den erlaubten) nicht herumkommen
- das "preloading" von Firmware-Updates, wobei diese dann im NAND-Flash (andere Geräte mit eMMC sind hier ja bisher auch nicht Thema) unter "FRITZ" gespeichert werden, war schon in der 07.1x in Ansätzen vorhanden ... jetzt ist wohl irgendetwas wie ein "SILENT_UPDATE" dazugekommen und die Box kann irgendwie angewiesen werden, eine neue Firmware-Version erst einmal nur zu laden und abzulegen, bevor sie später irgendwann installiert wird
- ob das direkt mit der Möglichkeit der Auswahl eines Zeitraums für die Installation von Updates korreliert oder ob das doch am Ende nur ein Mechanismus ist, mit dem der JUIS die Box dazu anweisen kann, solche Updates schon mal "auf Lager" zu packen und ob das gar auch noch über TR-069 geht, muß sich erst noch zeigen (vielleicht auch erst dann, wenn dieser Fall tatsächlich mal auftaucht bei AVM)
- jedenfalls hat AVM die Liste der "verbotenen Dateien" beim NAS-Zugriff nun noch einmal erweitert, nachdem schon in der 07.1x diese ".../FRITZ/firmware_update.image[.something]"-Dateien hinzugekommen waren - nunmehr ist auch der Zugriff auf die BPjM-Updates blockiert (der Zugriff auf die "Stammdatei" mit ".data" war das bereits) und auch die Dateien für die C&C-Überprüfungen (candc.data und candc.update) werden jetzt wohl vor dem Benutzer "versteckt" bzw. sind wohl zumindest nicht länger lesbar über die NAS-Funktionen ... wenn jetzt noch die Media-Server-DB dazukäme (ich nehme mal an, daß die immer noch lesbar ist, denn in der "libavmacl2.so" ist sie nicht als "spezieller Name" zu finden), müßte man beim Auslesen von USB-Sticks über den Media-Server doch endlich mal raten (das wäre zwar "sicherer", aber noch längst nicht "sicher", für die "other files", die eben keine Media-Dateien sind)
- auf den ersten Blick sieht auch noch ein Feature namens "asec" spannend aus ... das sieht nach irgendwelchem zentralen "Nachrichtensammeln" aus, was AVM da (unter Zuhilfenahme des "nanomsg-ng"-Projekts (https://github.com/nanomsg/nng) - was, nebenbei bemerkt, ebenfalls unter MIT-Lizenz steht und das war vermutlich auch der Punkt, nach dem AVM sich dieses Projekt für diesen Zweck ausgesucht hat) zusammenstrickt - ich habe es allerdings bisher nur aus den Funktionsnamen geschlossen und nichts davon in Aktion gesehen; abgesehen davon, wird dieses Sammeln ggf. erst mit mehr als einem Gerät loslegen, solange die Daten nicht doch am Ende für jemand ganz anderen gedacht sind ... wenn da von "trusted" und "untrusted" die Rede ist, werde ich schnell hellhörig
Das hier zu Beschreibende betrifft sowohl ein paar deutlich sichtbare Neuheiten, als auch einige Spekulationen und die Erkenntnisse werden sich sicherlich - wie so oft beim Erscheinen einer "neuen Generation" des FRITZ!OS, auch wenn das wohl keine 8 in der Nummer wird - auch erst nach und nach entwickeln.
Bisher habe ich diese Version noch gar nicht auf einer 7490 installiert, die ersten Infos beruhen also bisher ausschließlich auf dem Blick auf/in die entpackte Firmware und schon der erste Start kann da ggf. eine (falsche) Annahme wieder über den Haufen werfen - ich werde also deutlich machen, wo die Erkenntnisse aus Tests der installierten Version starten. Etwaige Irrtümer werde ich auch nicht dadurch korrigieren, daß ich einmal Geschriebenes ändere oder lösche ... wenn nötig, kommt da eine Ergänzung mit dem Verweis auf neuere Erkenntnisse hin oder ich gehe sogar davon aus, daß man die Beiträge bis zum Ende liest und spätere Korrekturen auch im "reinen Text" findet und erkennt. Wer das nicht möchte, sollte ggf. gleich in Erwägung ziehen, ab hier nicht weiterzulesen.
---------------------------------------------------------------------------------------------------------------------
Kernkomponenten:
- 7490: generell wohl GCC 5.5.0 als Compiler, uClibc-ng 1.0.30 als C-Library, Kernel-Version unverändert 3.10.107
- 7590: GCC 8.3.0, musl libc 1.?.?(!) als C-Library, Kernel-Version 4.9.198 - ich wage mal eine pessimistische Prognose hinsichtlich der Open-Source-Quellen, denn "musl" steht unter MIT-Lizenz und wenn die nicht dabei sind und sich niemand der Sache annimmt, die entsprechend einzupflegen (auch wenn bei "musl" jetzt nicht wirklich viele Konfigurationsoptionen existieren, wie bei uClibc[-ng]) im passenden Stand (denn auch da gibt es ab und an eine neue Version: http://git.musl-libc.org/cgit/musl/), dann würde Freetz wohl langsam sterben bei den neueren Modellen ... die Software-Auswahl von AVM, wenn es gilt, bisher verwendete Teile zu ersetzen [von NTFS über Samba bis jetzt zur C-Library] zeigt ja auffällig in eine bestimmte Richtung und die geht eindeutig weg von GPL und Verwandten
------------------------------------------------------------------------------------------------------------------------------------
Kurze Stichpunkte von meinem Notizzettel - nicht immer mit ausführlicher Betrachtung:
- Systemstart über ein "systemd"-Derivat (zumindest benutzt das dieselben Strukturen wie der "systemd") mit dem Namen "supervisor"
- dadurch aufgeteilter Start der meisten Dienste ... vieles ist schon auf den "supervisor" (ich nenne den jetzt "SV", bei AVM gibt es auch eine neue Library "libsvctrl.so", die wohl zur Steuerung dieses Daemons dienen dürfte) umgestellt - das findet sich in "/etc/boot.d" und in "/lib/systemd/system" und nur noch wenige Skript-Dateien sind in "/etc/init.d" verblieben, wobei mancher Start eines Dienstes auch einfach wieder eines der "rc.something"-Scripts aus "/etc/init.d" aufruft
- durch den geänderten Ablauf beim Start sind sicherlich viele Modifikationen noch einmal zu überprüfen, besonders solche, die sich in zuvor vorhandene AVM-Dateien eingeklinkt haben (Bsp: debug.cfg (aka rc.user) - die "S99-tail" bzw. "E99-tail", aus der die zuvor aufgerufen wurden bei den meisten Mods, gibt es gar nicht mehr, ebensowenig wie die "rc.tail.sh")
- damit funktioniert auch der Start von Freetz nicht mehr so richtig (wenn ich das richtig in Erinnerung habe bzw. richtig lese), weil die Änderung zum Aufruf der "rc.mod" aus der "rc.tail.sh" (https://github.com/Freetz/freetz/blob/master/patches/scripts/115-patch-ds_off.sh) ins Leere greift und auch der Versuch, sich an der "/etc/init.d/rc.S" zu vergehen (im "else"-Zweig des Patches,) hier zum Scheitern verurteilt ist
- witzig ist es (jedenfalls in gewissen Grenzen), daß die BusyBox von AVM immer noch den "telnetd" als Applet enthält - halt mit der bekannten Überprüfung, ob "/usr/sbin/telnetd" ein Symlink ist (wohin ist dann schon wieder egal) ... man braucht also für einen schnellen Telnet-Zugriff noch eine Möglichkeit zum Setzen des Symlinks und zum Starten des Daemons, aber nicht zwingend weitere Binaries (was bei der 7590 wieder bedeutsam werden könnte, wenn die immer noch das "overlayfs" im Kernel enthält und man damit - mit sehr geringem Aufwand - den Symlink im "upperdir" erzeugen könnte)
- die Verwaltung der VPN-Verbindungen wurde (vermutlich) aus dem "ctlmgr" ausgelagert (wobei Teile wohl auch im "kdsld" waren) und in einen neuen Daemon namens "vpnd" integriert, der auch ein IPC-Interface hat (was das kann, kriegt man erst wieder so richtig raus, wenn man den mal in Aktion erlebt)
- zuerst dachte ich schon, AVM hätte die "Vorgaben" in der "ar7.cfg" heftig zusammengestrichen, weil die nur noch 4.775 Byte belegt, im Gegensatz zu 11.826 in der 07.11 - das hat sich aber als Irrtum herausgestellt, weil AVM nur auf die ganzen Leerzeichen (ggf. auch Tabs) in der Vorlage verzichtet und das jetzt nicht mehr eingerückt ist ... was das am Ende beim Export bedeutet oder ob da wieder das "bekannte Bild" entsteht, muß sich noch (er)weisen
- wenn's schlecht läuft, müssen die ganzen Tools überarbeitet werden, die mit Export-Dateien umgehen können ... es gibt intern zusätzliche "Dateitypen" namens "B64FILE" und "CRYPTEDB64FILE" und wenn der Name nicht in die Irre führt, wird AVM da wohl Base64-Kodierung für die Daten verwenden - ob das die bisher verwendete Hex-Kodierung für "[CRYPTED]BINFILE" ersetzt oder ergänzt, wäre ebenso noch zu erkunden (geht wieder erst nach der Installation)
- PŸUR ist als Vorlage für die VoIP-Provider hinzugekommen
- einige Utilities wurden "renoviert" und befinden sich jetzt nicht mehr unter /usr/sbin wie bisher, sondern sind direkt in /sbin zu finden (wenn man die durch eigene Dateien ersetzen wollte)
- zusammen mit dem Samba-Server "nqcs", der ja als Versuch schon vor einem knappen Jahr mal "das Licht der Welt erblickte" im FRITZ!OS, wird jetzt offenbar auch AppArmor (ein zusätzlicher Security-Layer, der die Rechte von Prozessen auf das tatsächlich Notwendige zusammenstreichen kann und das ist erst recht sinnvoll, wenn es - wie im FRITZ!OS - ansonsten kein "Rechtekonzept" gibt und praktisch alles als "root" läuft) in diese Version Einzug halten
- bisher ist der "nqcs" jedenfalls wohl der einzige Prozess, der unter AppArmor-Regie arbeitet (siehe /lib/apparmor.d) - AVM legt hier offenbar auch nur das bereits von "apparmor-parser" verarbeitete binäre Profil dazu (Option -o) und ich muß erst mal schauen, ob "apparmor-parser" das auch wieder zurückübersetzen kann oder ob der laufende AppArmor-Daemon dann auskunftsfreudiger ist hinsichtlich der Rechte, die dem "nqcs" tatsächlich zugestanden wurden von AVM
- daß der "multid" dazugelernt hat, versteht sich angesichts des offiziell eingeräumten DoT-Supports von selbst ... aber daß er jetzt wohl auch noch LLDP versteht (und zwar vermutlich nicht nur, wenn ihn andere befragen, sondern auch zur Zusammenstellung der eigenen "Weltsicht" - aka FBSTATE, u.U. sogar mit irgendwelchen persistent gespeicherten Daten, die "libavmfbstate.so" enthält jedenfalls Strukturen, die man bei AVM sonst nur findet, wenn es um die Verarbeitung von Konfigurationsdateien geht), steht bisher aber nicht bei AVM (und vielleicht funktioniert es ja auch noch nicht, es ist aber neu im "multid")
- die Zertifikate für die Validierung von DoT-Servern hat AVM gesondert in der Firmware untergebracht (als "dot_ca_root.pem") ... da sind 17 CA-Zertifikate enthalten (nur gezählt, nicht weiter dekodiert mit "openssl x509") und eines davon ist wohl auch das LE-(CA-)Zertifikat - wer aber mit einer gänzlich eigenen PKI und der originalen Firmware DoT betreiben will (also auch mit eigener CA und von der signierten Zertifikaten), der wird wohl in die Röhre schauen und um eine Änderung (Hinzufügen der eigenen CA zu den erlaubten) nicht herumkommen
- das "preloading" von Firmware-Updates, wobei diese dann im NAND-Flash (andere Geräte mit eMMC sind hier ja bisher auch nicht Thema) unter "FRITZ" gespeichert werden, war schon in der 07.1x in Ansätzen vorhanden ... jetzt ist wohl irgendetwas wie ein "SILENT_UPDATE" dazugekommen und die Box kann irgendwie angewiesen werden, eine neue Firmware-Version erst einmal nur zu laden und abzulegen, bevor sie später irgendwann installiert wird
- ob das direkt mit der Möglichkeit der Auswahl eines Zeitraums für die Installation von Updates korreliert oder ob das doch am Ende nur ein Mechanismus ist, mit dem der JUIS die Box dazu anweisen kann, solche Updates schon mal "auf Lager" zu packen und ob das gar auch noch über TR-069 geht, muß sich erst noch zeigen (vielleicht auch erst dann, wenn dieser Fall tatsächlich mal auftaucht bei AVM)
- jedenfalls hat AVM die Liste der "verbotenen Dateien" beim NAS-Zugriff nun noch einmal erweitert, nachdem schon in der 07.1x diese ".../FRITZ/firmware_update.image[.something]"-Dateien hinzugekommen waren - nunmehr ist auch der Zugriff auf die BPjM-Updates blockiert (der Zugriff auf die "Stammdatei" mit ".data" war das bereits) und auch die Dateien für die C&C-Überprüfungen (candc.data und candc.update) werden jetzt wohl vor dem Benutzer "versteckt" bzw. sind wohl zumindest nicht länger lesbar über die NAS-Funktionen ... wenn jetzt noch die Media-Server-DB dazukäme (ich nehme mal an, daß die immer noch lesbar ist, denn in der "libavmacl2.so" ist sie nicht als "spezieller Name" zu finden), müßte man beim Auslesen von USB-Sticks über den Media-Server doch endlich mal raten (das wäre zwar "sicherer", aber noch längst nicht "sicher", für die "other files", die eben keine Media-Dateien sind)
- auf den ersten Blick sieht auch noch ein Feature namens "asec" spannend aus ... das sieht nach irgendwelchem zentralen "Nachrichtensammeln" aus, was AVM da (unter Zuhilfenahme des "nanomsg-ng"-Projekts (https://github.com/nanomsg/nng) - was, nebenbei bemerkt, ebenfalls unter MIT-Lizenz steht und das war vermutlich auch der Punkt, nach dem AVM sich dieses Projekt für diesen Zweck ausgesucht hat) zusammenstrickt - ich habe es allerdings bisher nur aus den Funktionsnamen geschlossen und nichts davon in Aktion gesehen; abgesehen davon, wird dieses Sammeln ggf. erst mit mehr als einem Gerät loslegen, solange die Daten nicht doch am Ende für jemand ganz anderen gedacht sind ... wenn da von "trusted" und "untrusted" die Rede ist, werde ich schnell hellhörig
Zuletzt bearbeitet: