Ich gebe es zu: So ganz passt die FRITZ!Box nicht in das übliche Beuteschema dieses Blogs. Doch neuere Boxen mit USB-Anschluss lassen sich in einen per DynDNS ständig erreichbaren Server umbauen. Als Webserver kann sogar ein Apache mit PHP dienen und auf Wunsch lädt der Bittorrent-Client ctorrent auch nachts ohne aktivem PC im Netz selbständig Linux-ISOs aus dem Netz.
Wie es funktioniert? Eine uClibc-Chroot-Umgebung auf USB-Festplatte und ein Script, das die Umgebung mountet und einen Dropbear SSH-Server in ihr startet, genügt. Ich habe alle Komponenten vorbereitet und biete sie zum Download an.
Gehen Sie wie folgt vor, um die Chroot-Umgebung zu starten:
- Partitionieren und formatieren Sie eine USB-Festplatte mit wenigstens zwei Partitionen, Linux Swap mit 128MB oder mehr und Linux Ext2, mindestens 800MB, besser Rest der Platte. Freien Speicher können Sie einer FAT32-Partition zuweisen.
- Laden Sie den Tarball ucchroot-0927-fritz7170.tar.gz herunter. Mounten Sie die USB-Festplatte, wechseln Sie das Arbeitsverzeichnis und entpacken Sie den Tarball:
mount /dev/sdx1 /media/sdx1
cd /media/sdx1
tar xvzPf /tmp/ucchroot-0927-fritz7170.tar.gz - Unmounten Sie die Festplatte und entfernen Sie diese vom PC und verbinden Sie sie mit der FRITZ!Box. Achtung: Notebook-Festplatten ohne externer Stromversorgung müssen via Hub angeschlossen werden!
- Aktivieren Sie mit einem angeschlossenen Telefon und der Rufnummer #96*7* den Telnet Daemon der FRITZ!Box. Sie können sich jetzt mit dem Befehl
telnet fritz.box
auf der FRITZ!Box einloggen.
- Für das Laden des Ext2-Kernelmoduls, das anschließende Mounten der USB-Festplatte und den Start des SSH-Servers habe ich ein kleines Shellscript erstellt. Laden Sie es auf die Fritzbox
wget -O /var/tmp/chroot.sh \
http://fbh.mattiasschlenker.de/7170/chroot.shWenn Sie mehrere USB-Festplatten an der Fritzbox verwenden, müssen Sie die enthaltenen Variablen für Chroot- und Swap-Partition anpassen. Führen Sie das Script aus:
sh /var/tmp/chroot.sh
Während der Ausführung blinkt die Update-LED. Insgesamt läuft das Script ca. 45 Sekunden.
- Für erste Tests und zum späteren Setzen des Passwortes benötigen Sie eine Shell in der Chroot-Umgebung:
/var/tmp/chroot/bin/busybox_static chroot \
/var/tmp/chroot /bin/bashDer Prompt ändert sich von einem “#” zu “bash-3.00#”. Setzen Sie das Root-Passwort mit dem Befehl
passwd
ACHTUNG: Ohne Root-Passwort können Sie sich später nicht per SSH einloggen!
- Der SSHD erlaubt es nun, sich mit dem SSH-Protokoll von einem anderen Rechner im lokalen Netz aus mit dem im letzten Schritt vergebenen Passwort in der Chroot-Umgebung anzumelden.
- Damit Sie die Chroot-Umgebung nicht nach jedem Start der Fritzbox manuell aktivieren müssen, können Sie das Startscript für die Chroot-Umgebung beim Systemstart ausführen lassen. Es genügt, in der per Telnet gestarteten Shell das Script “chroot.sh” an Ihre “debug.cfg” anzuhängen:
cat /var/tmp/chroot/start_chroot.sh \
>> /var/flash/debug.cfgStarten Sie die Fritzbox über das Webinterface neu und überzeugen Sie sich per SSH-Login davon, dass die Chroot-Umgebung zur Verfügung steht.
In der Chroot-Umgebung steht der bekannte GNU-Compiler genauso zur Verfügung wie viele zur Kompilation benötigter Header-Dateien. Der Bittorrent-Client (in /usr/src) kann beispielsweise mit einem normalen “./configure” für die Kompilation vorbereitet werden.
Sollten Sie weitere Programme installieren, die als Daemon gestartet werden (Webserver, Mailserver), können Sie diese in der Datei “/etc/chroot.sh” eintragen um sie beim Start zu aktivieren.
Viel Spaß!
PS: Bitte keine Fragen in Kommentaren sondern per Mail, ich erweitere ggf. diesen Artikel um eine Art FAQ!
das ist echt ne gute sache, klappt echt super.
total geil.
werde daran weiter experementieren mit samba, ftp, vielleicht xampp.
weis noch net. mal sehen.
aber vom prinzip her doch net schlecht um private webseiten online zu stellen und ftp bereit zu stellen ohne einen rechner laufen zu haben.
spart doch n haufen strom für privatanwender.
mal sehen was die box noch kann auf die art. 🙂
hi, das hört sich gut an aber gibt es so eine lösung auch unter windows ich bin in dieser beziehung ein absolute ahnungsloser.
alf
geile sache ist das! 🙂
leider funzt es bei mir aif der 7270 irgendwie nicht 🙁
das Script bricht immer ab und hat probleme mit EXT2?!
Meldung: ”
===> EXT2 fehlt, lade vom Server
Connecting to fbh.mattiasschlenker.de[88.198.250.132]:80
ext2.o 100% |**************************************| 61278 00:00 ETA
insmod: cannot insert `/var/tmp/ext2.o’: Success (8): Success
===> EXT2 konnte nicht geladen werden!
Bitte pruefen Sie, ob fbh.mattiasschlenker.de erreichbar ist
Laden Sie ext2.o ggf. herunter und speichern Sie es auf einem
USB-Stick oder auf USB-Festplatte. Rufen Sie dann diese Script
erneut auf.
”
schade! Wenn da jemand weiter weiss bitte melden 😉
Danke
ralf
Logge Dich doch mal auf der 7270 ein und schick mir die Ausgabe der Befehle “uname -a”, “df” und “cat /proc/cpuinfo”.
Noch hab ich bei AVM keine 7270 angefragt (bislang hat auch noch niemand Artikel dazu in Auftrag gegeben), aber das werde ich wohl in den nächsten Tagen tun…
Hallo Administrator,
Ausgaben:
für “uname -a” ->
Linux (none) 2.6.19.2 #1 Thu Jan 31 19:30:30 CET 2008 mips unknown
für “cat /proc/cpuinfo” ->
system type : MIPS UR8
processor : 0
cpu model : MIPS 4KEc V6.8
BogoMIPS : 359.62
wait instruction : yes
microsecond timers : yes
tlb_entries : 16
extra interrupt vector : yes
hardware watchpoint : no
ASEs implemented :
VCED exceptions : not available
VCEI exceptions : not available
Die Lösung http://kairiek.homeftp.net/projekte/fbwebserver/fbwebserver.htm
hab ich jetzt zum laufen bekommen, aber leider erhalte ich keinen Zugang wenn ich von extern via Portfreigabe drauf möchte.
ralf
Ha, ich habs hinbekommen! :-))
ich hab einfach statt eth0:0 das Interface lan:1 genommen dann funzt es auch auf der 7270 mit Portweiterleitung auf 192.x.x.x:Port.
also: ifconfig lan:1 192.x.x.x netmask 255.255.255.0 up
Danke
ralf
hallo ich versuche das jetzt schon seit monaten zum laufen zu bekommen, bekomme aber auch immer wieder diese meldung
habe eine fbox 7170 und die neuste firmware bekomme es aber einfach nicht hin
plz helft mir danke
===> EXT2 fehlt, lade vom Server
Connecting to fbh.mattiasschlenker.de[88.198.250.132]:80
ext2.o 100% |*****************************| 61278 00:00 ETA
insmod: cannot insert `/var/tmp/ext2.o’: Success (8): Success
===> EXT2 konnte nicht geladen werden!
Bitte pruefen Sie, ob fbh.mattiasschlenker.de erreichbar ist
Laden Sie ext2.o ggf. herunter und speichern Sie es auf einem
USB-Stick oder auf USB-Festplatte. Rufen Sie dann diese Script
erneut auf.
ok jetzt geht es es lag an der firmware habe jetzt die erste genommen habe aber noch eine frage warum sagt er No such file or directory
wenn ich das machen will
cat /var/tmp/chroot/start_chroot.sh \
>> /var/flash/debug.cfg
Hi. Habe auch das Problem:
“/sbin/insmod /var/tmp/ext2.o insmod: cannot insert `/var/tmp/ext2.o’: Success (8): Success”
Ich habe zwar schon ein wenig Linux-Erfahrung und habe schon ein paar Kernel compiliert, doch wäre das hier eine sehr schnelle und elegante Lösung.
Da die Anleitung unter “http://kairiek.homeftp.net/projekte/fbwebserver/fbwebserver.htm” wohl nicht mehr zur Verfügung steht, würde ich mich freuen, wenn ihr mir bei der Einrichtung für die FritzBox 7270 helfen könntet.
Danke
big_blue
big_blue melde dich ma wenne hast bei mir per icq meine nummer 140146588
Hallo,
ich steh mit meiner 7140 vor dem gleichen Problem und würde mich über Hilfe freuen. Hawker, könntest du evtl. eine Seite mit deiner Lösung veröffentlichen (googlepages.com z.B.)?
Danke
Claudio
versuch mal folgendes
Für das Laden des Ext2-Kernelmoduls, das anschließende Mounten der USB-Festplatte und den Start des SSH-Servers habe ich ein kleines Shellscript erstellt. Laden Sie es auf die Fritzbox
wget -O /var/tmp/chroot.sh \
http://www.battle-station.de/test/chroot.sh
habe einwenig in der chroot.sh geändert bei mir bei der 7170 klappt es auch mit der neusten firmware
bitte schreib wenn es klappen sollte oder auch nicht danke
Hawker,
danke, hat nicht zu 100% geklappt, bei der Installation ist die Fritzbox gegen Ende nicht weitergekommen, leider hatte ich dann nicht mehr genug Zeit das zu wiederholen, nach Reboot war dann wieder alles weg.
Ich werd’s noch einmal probieren, danke!
c.
zum ext2 problem … zumindest bei der 7270 kann ich sagen, dass ihr einfach »modprobe ext2« eingeben könnt. (also erst reintelnetten und dann »mdopr… ext2« und dann weiter.
Dieser Beitrag ist mittlerweile zwei Jahre alt und daher längst überholt. Aktuelle Firmware bringt ext2 mit, Telnet lässt sich wieder per Kurzwahl aktivieren und beste Ausgangsbasis für eigene Modifikationen ist eine mit http://www.freetz.org/ moderat erweiterte Firmware.
Pingback: Das Rootserver-Experiment » Blog Archive » Das erste (?) Linux-Botnet
Sehr gute Arbeit!
Hi!
Super Script!
Allerdings bekomme ich eine Fehlermeldung:
# sh /var/tmp/chroot.sh
—> 30s Pause. Bitte Geduld…
BusyBox v1.8.2 (2009-04-22 13:54:57 CEST) multi-call binary
Usage: insmod MODULE [symbol=value]…
Load the specified kernel modules into the kernel
===> EXT2 fehlt, lade vom Server
Connecting to 192.168.126.1:800 (192.168.126.1:800)
ext2.o 100% |*******************************| 61278 –:–:– ETA
ext2 59392 0
mbcache 8080 1 ext2
—> EXT2 bereits geladen
===> Erstelle Mountpoint fuer chroot…
—> Mounte Chroot…
—> …erfolgreich
—> Aktiviere Swap…
Segmentation fault
—> /dev gemountet…
—> /proc gemountet…
===> Starte dropbear (SSHD im Chroot) und ggf. weitere Scripte in
/etc/chroot/..
Segmentation fault
……….
—> Sollten Sie noch kein Passwort fuer root im chroot gesetzt haben,
erledigen Sie dies bitte jetzt mit dem Befehl
/var/tmp/passwd.sh
—> Anschliessen koennen Sie die debug.cfg mit diesem Script ueberschreiben:
cat /var/tmp/chroot.sh > /var/flash/debug.cfg
===> Viel Spass wuenscht das Team von
Open Source Magazin und Mattias Schlenker!
#
Was bedeutet dieses “Segmentation fault”? Ich benutze die Fritzbox 7170
Mein Stick ist 4GB groß:
500MB SWAP und der Rest ext2
Kann mir jemand helfen?
hat sich erledigt 🙂
Die Datei war kapput!
Wie kann ich apt-get auf diesem Linux Installieren,.. bzw. wie heißt das Linux?
Ist das Debian? Suse? oder sowas??
mfg dro53r
Danke für den netten Bericht, hat mir etwas geholfen. Die Seite gefällt mir außerdem, bitte mach weiter so mit der Seite bzw. dem Blog.
Der Downloadlink ist down.
Könnte das bitte wieder jemand hochladen ?