Mit freetz-ng kann man sowohl bestimmte Komponenten der Firmware entfernen, als auch neue Komponenten hinzufügen. Die Entfernung von Komponenten kann entweder dazu dienen im Flash-ROM Platz für andere Sachen zu schaffen. Man kann diese Möglichkeit aber auch nutzen um Komponenten der Originalfirmware, welche man aus Gründen der Sicherheit oder der Privatsphäre nicht auf seiner Fritz!Box haben möchte, zu entfernen.
Ob freetz zwingend erforderlich ist oder ob es ausreichend wäre die Firmware mit der Variante von PeterPawn zu modifizieren kann ich gar nicht so genau sagen. Ich hatte auf meiner Box ursprünglich aus drei Gründen eine gefreezte Firmware installiert:
Ich nutze das Paket "Onlinechanged-CGI" um beim Wechsel der WAN-IP sowohl die neue IPv4-Adresse, als auch die IPv6-Adressen mehrerer Geräte in meinen LAN mit Hilfe eines Scripts bei meinem Dyndns-Anbieter zu aktualisieren. Weiterhin nutze ich das Paket "Dropbear" um einen vollständigen Zugang per SSH und SFTP auf die Box zu haben. Und außerdem nutze ich den Patch "Remove tr069 stuff" um von mir nicht authorisierte Zugriffe auf die Box durch AVM oder meinen ISP so weit wie möglich zu unterbinden.
Um den rustdesk-server laufen zu lassen nutze ich jetzt die folgenden Möglichkeiten von freetz, von denen ich nicht weiß, ob man dies auch mit den Modifikationen von PeterPawn erreichen könnte:
Der SSH-Zugang ist erforderlich um das "/opt" auf dem Stick neu zu mounten. Hierbei hilft mir freetz insoweit, als das es dort den Patch "Drop noexec for (external) storages" gibt, welcher es erlaubt, ausführbare Dateien, welche sich auf einen externen Datenträger befinden, zu starten. Dies ist von AVM aus per default verboten. Ohne diesen Patch mußte ich für das "/opt" Verzeichnis das "exec" Flag durch einen remount erst extra setzen. Weiterhin mußte ich natürlich, erstmal zum Testen, die binaries per SSH als Hintergrundprozesse zu starten
Code:
/opt/rustdesk/hbbs -k _ > /opt/rustdesk/log/signalserver.log 2> /opt/rustdesk/log/signalserver.error &
/opt/rustdesk/hbbr -k _ > /opt/rustdesk/log/relayserver.log 2> /opt/rustdesk/log/relayserver.error &
Anstelle der einfachen Umleitung per ">" kann man hier natürlich auch ">>" verwenden, so das neue Einträge an die bestehenden Logfiles angehängt werden. Mit dem einfachen ">" werden die Logs bei jedem Neustart gelöscht und neu angelegt.
Desweiteren brauchte ich den SSH/SFTP Zugriff um den Inhalt der Datei "id_ed25519.pub" zu lesen, welche beim ersten Start des Rustdesk-Servers erzeugt wird. Diese Datei enthält den Key welchen die Rustdesk-Clienten benötigen, um den Server nutzen zu dürfen.
Für die Portweiterleitung wird, wie oben bereits beschrieben der "cron" Daemon benötigt. Und da weiß ich nicht, ob dieser ohne freetz überhaupt genutzt werden kann.
Und wenn alles durchgetestet ist, muß man sowohl das mounten des "/opt" Verzeichnisses, als auch den Start der beiden binaries natürlich nach einem reboot der Box automatisch ausführen lassen, wofür sich unter freetz "rc.custom" anbietet. Auch hier weiß ich nicht, ob diese Funktionalität ohne freetz mit Hilfe des Mods von PeterPawn verfügbar ist.