(mit aktiviertem admin Login bei SSH)
se515b-gr-v021402_19_ba09b6f_mod.bin.zipNachdem ich nun seit etwa zwei Jahren stolzer Besitzer eines Siemens Gigaset SE515 dsl Routers bin, traten einige unangenehme Eigenschaften dieses Gerätes zutage. (Das bekannte Problem mit dem DNS Server und Abstürze bei zu vielen weitergeleiteten Verbindungen.) Da Siemens offenbar nicht mehr willig ist, die Fehler zu beseitigen, habe ich mich etwas intensiver mit dem SE515 beschäftigt. Erstaunlicherweise läuft da Linux drauf. Das hätte ich nicht erwartet. Beim Lesen in folgendem Forum: http://k0.j0t.de/index.php/board,1.0.html habe ich unter anderem erfahren, dass man sich bis Firmware Version 2.14.02.16 per SSH als admin einloggen konnte. Mit der neuesten Version geht das nicht mehr. Das löst zwar mein Problem nicht, aber mein Ehrgeiz war geweckt. Es gibt eine einfache Möglichkeit, einen Login bei der aktuellen Firmware zu aktivieren: (Der Tip ist aus dem Forum, ich schreibe es nur der Vollständigkeit wegen hier auf.)
Ok, dachte ich mir, das ist schön, aber ich will mich trotzdem als admin einloggen. Nachdem ich etwas gesucht hatte, habe ich tools gefunden, die mir dabei helfen würden.
Mit der ersten Software kann man die Firmware zerlegen und wieder zusammen fügen. (Das geht auch mit der zweiten, allerdings gibt es bei der ersten noch ein komfortables Script dazu: se515.)
Mit der zweiten Software kann man das Dateisystem (cramfs) entpacken und wieder komprimieren. Leider konnte ich sie nicht auf meinem Ubuntu 6.10 compilieren. Ich musste erst einige kleine Änderungen an einer Datei vornehmen. Hier ist meine modifizierte Version: cramfs.tar.bz2. ACHTUNG: die normalen cramfs tools, die bei den Linux Distributionen für x86 Prozessoren dabei sind, funktionieren nicht, da die Bytereihenfolge des Prozessors eine andere ist.
Da Siemens für die Firmware GPL Software verwendet hat, mussten sie natürlich diese Software gemäß den Lizenzbestimmungen auch veröffentlichen. Also habe ich erstmal ein paar Stunden in der Firmware bzw. dem Linux gestöbert. Irgendwann hab ich dann gemerkt, dass anstelle von telnet und anderen Programmen busybox verwendet wird. Im Quellcode von busybox hab ich dann auch gesehen, dass da irgendwas abgefragt wird, ob der Login vom inneren oder äußeren Netzwerk kommt. Das war also die richtige Stelle um das "Problem" mit dem Login zu "fixen". Das ändern im Quellcode war mir zu aufwendig, da Siemens offenbar nicht die aktuellen Quellen veröffentlicht hat und ich erst eine tool chain hätte installieren müssen.
Machen wir es ganz einfach, dachte ich mir, ich ersetze mal das busybox in der aktuellen Firmware durch das von der Revision 16. Gesagt getan, nach ein bisschen probieren war es geschafft. So habe ich es dann letztendlich gemacht:
Wer das nicht alles selbst machen will, kann sich natürlich einfach die Firmware oben auf der Seite runterladen.
Ich habe noch eine Kleinigkeit an der Firmware geändert. Ich habe die Datei README.txt ins Wurzelverzeichnis kopiert, die die Änderung beschreibt und ich habe in der Datei webs/de.js "dsl" durch "mod" ersetzt, so dass man sieht, das es eine modifizierte Version ist. (Viele HTTP Ausgaben sind offenbar im ehttpd fest einkodiert, weshalb nicht alle "Siemens Gigaset SE515 dsl" Ausgaben geändert wurden.)