Modding der Fritzbox - Teil 3

So, heute möchte ich gerne einen SSH Server auf die Fritzbox bringen, da mich der Telnetzugang dann doch ziemlich nervt.

Es wird, wie immer, die Variante gewählt, den Server beim booten der Box aus dem Web nachzuladen.

Ich richte mich hierbei weitestgehend nach diesem Tutorial.

Es wird also der Dropbear SSH Server verwendet. Diesen habe ich hier fertig kompiliert abgelegt.

Ich erweitere das Script /var/flash/debug.cfg aus Teil 2 der Reihe um ein paar Zeilen. Ausserdem ändere ich die Form ein wenig:

#!/bin/sh
APPDIR="/var/tmp/runtimeapps"
mkdir \$APPDIR
echo "ww:x:0:0:root:/:/bin/sh" >> /var/tmp/passwd
echo "ww:PASSWORTHASH:12332:0:99999:7:::" >> /var/tmp/shadow

#>>TELNET
if [ "\$(busybox | grep -c telnetd,)" = "1" ];then
/bin/busybox telnetd -l /sbin/ar7login
else
{
while !(ping -c 1 www.zoosau.de); do sleep 5; done
wget -qO \$APPDIR/utelnetd http://www.zoosau.de/software/Internet_und_Netzwerk/fritz.box/utelnetd
chmod +x \$APPDIR/utelnetd
\$APPDIR/utelnetd -d -l /sbin/ar7login
} &
fi
#<<TELNET

#>>FTP
cd \$APPDIR
while !(ping -c 1 www.zoosau.de); do sleep 5; done
wget -qO \$APPDIR/bftpd http://www.zoosau.de/software/Internet_und_Netzwerk/fritz.box/bftpd
wget -qO \$APPDIR/bftpd.conf http://www.zoosau.de/software/Internet_und_Netzwerk/fritz.box/bftpd.conf
chmod +x \$APPDIR/bftpd
./bftpd -d -c \$APPDIR/bftpd.conf
#<<FTP

#>>SSH
cd \$APPDIR
while !(ping -c 1 www.zoosau.de); do sleep 5; done
wget -qO \$APPDIR/dropbear http://www.zoosau.de/software/Internet_und_Netzwerk/fritz.box/dropbear
wget -qO \$APPDIR/busybox http://www.zoosau.de/software/Internet_und_Netzwerk/fritz.box/busybox_uudecode
chmod +x \$APPDIR/dropbear
chmod +x \$APPDIR/busybox
ln -s \$APPDIR/dropbear dropbearkey
ln -s \$APPDIR/busybox \$APPDIR/uudecode
ln -s \$APPDIR/busybox \$APPDIR/uuencode
\$APPDIR/dropbearkey -t rsa -f \$APPDIR/dropbear_rsa_host_key
\$APPDIR/dropbearkey -t dss -f \$APPDIR/dropbear_dss_host_key
\$APPDIR/dropbear -p 22 -r \$APPDIR/dropbear_rsa_host_key -d \$APPDIR/dropbear_dss_host_key
#<<SSH

Dadurch wird zwar jedes Mal ein anderer Hostkey erzeugt, aber diesen im Webspace ablegen ist auch uncool.

Daher sollte man, nachdem die Box erfolgreich neu gestartet wurde, das debug.cfg Script so abändern, das immer dieselben Keys geschrieben werden.

Die so modifizierte Datei schieben wir nun per FTP wieder auf die Fritzbox nach /var/tmp/debug.cfg . Anschliessend fügen wir diese durch cp /var/tmp/debug.cfg /var/flash/debug.cfg wieder in den resistenten Flashspeicher ein.

Ich verzichte hierbei darauf die Box im Internet zugänglich zu machen, da ich das garnicht will. Wer möchte, kann sich aber den IP-Phone-Forum Beitrag dazu reinziehen, da steht beschrieben wie das geht.

Nachdem die Box also mit SSH nun erfolgreich gestartet wurde, und die DSA/RSA Hostkeys erzeugt wurden, stellen wir sicher, das auch immer dieselben geladen werden. Sonst ist SSH Quatsch.

Zunächst holen wir uns die debug.cfg wieder auf den Rechner, um sie besser bearbeiten zu können. Dasselbe tun wir mit den Keys:

cat /var/flash/debug.cfg > /var/tmp/debug.cfg

cat /var/tmp/runtimeapp/dropbear_rsa_host_key > /var/tmp/dropbear_rsa_host_key

cat /var/tmp/runtimeapp/dropbear_dss_host_key > /var/tmp/dropbear_dss_host_key

Die Keys müssen wir zuvor in ASCII umformatieren:

cd /var/tmp/runtimeapp

chmod 600 dropbear_rsa_host_key

chmod 600 dropbear_dss_host_key

./uuencode dropbear_rsa_host_key *dropbear_rsa_host_key.ascii >* dropbear_rsa_host_key.ascii

./uuencode dropbear_dss_host_key *dropbear_dss_host_key.ascii >* dropbear_dss_host_key.ascii

Diese drei Dateien (debug.cfg und *.ascii) ziehen wir nun per FTP auf den Rechner und öffnen sie im Editor.

ACHTUNG:

Nehmt einen Editor der die UNIX Zeilenumbrüche beherrscht (NICHT Notepad!). Zum Beispiel den Crimson Editor.

Zunächst entfernen wir in der debug.cfg die drei Zeilen, die zur Generierung der Keys dienen. Am besten kommentiert man sie mit # aus, falls man die Keys doch mal wechseln möchte.

Stattdessen tragen wir folgendes ein:

\$APPDIR/uudecode -o \$APPDIR/dropbear_rsa_host_key <<\EOP
INHALT DER DATEI dropbear_rsa_host_key.ascii
EOP
\$APPDIR/uudecode -o \$APPDIR/dropbear_dss_host_key <<\EOP
INHALT DER DATEI dropbear_dss_host_key.ascii
EOP

Dadurch wird immer wieder derselbe Key verwendet.

Teilen per: TwitterEmail


Modding der Fritzbox - Teil 2

Im ersten Teil meines Fritzbox - Modding Tagebuches habe ich, referenzierend auf weitere Web-Quellen, erklärt, wie ich einen Telnet Server auf der Fritzbox installiert habe.

Heute möchte ich das gerne um einen FTP Server erweitern, da dieses den Austausch von Daten stark erleichtert.

Der Schritt, den Telnetserver zu installieren, scheint in nahezu allen anderen Tutorials die Grundvoraussetzung zu sein. So auch für dieses: Wer einen FTP Server haben will, braucht an dieser Stelle bereits einen Zugang zur Fritzbox per Telnet.

Wie werden Configdateien auf der Fritzbox editiert?

Meistens werden Erweiterungen aufgrund des relativ kleinen, fixen Speichers, der einen Neustart der Box übersteht, beim booten der Box aus dem Internet gezogen. Dadurch muss der Speicher nur für ein Shellscript reichen.

Der Arbeitsspeicher der Box ist reichlich bemessen. Ich meine gelesen zu haben das dieser 32 MB groß ist.

Die am meisten editierte Datei auf der Fritzbox ist /var/flash/debug.cfg, da diese durch andere Fritzbox-eigenen Mechanismen nicht beeinträchtigt wird. Man könnte fast meinen sie sei für User-Modifikationen gemacht ;)

Diese Datei kann nicht direkt per FTP oder einem Editor bearbeitet werden. Wer genau wissen will warum, der lese bitte hier.

Daher muss man die Datei zunächst in den Temporären RAM-Speicher "kopieren". Das geht wie folgt:

cat /var/flash/debug.cfg > /var/tmp/debug.cfg

So werden die verteilten Stücke der Datei in eine "echte" Textdatei in /var/tmp/ (RAMdrive der Fritzbox) zusammengefügt.

Diese Datei kann man nun editieren.

Die bearbeitete Datei kann man wiederum ganz normal kopieren:

cp /var/tmp/debug.cfg /var/flash/debug.cfg

Meine Datei sieht nach der Installation des Telnet Servers wie folgt aus:

#!/bin/sh
#>>TELNET
if [ "\$(busybox | grep -c ' telnetd,')" = "1" ];then
/bin/busybox telnetd -l /sbin/ar7login
else
{
while !(ping -c 1 lcr.telefonsparbuch.de); do sleep 5; done
wget -qO /var/utelnetd http://lcr.telefonsparbuch.de/software/fritzbox/utelnetd

# Ohne Kennwort-Abfrage
# echo "root::0:0:root:/var/tmp:/bin/sh" > /etc/passwd
# chmod +x /var/utelnetd
# /var/utelnetd -d -l /bin/sh

# Mit Kennwort-Abfrage
chmod +x /var/utelnetd
/var/utelnetd -d -l /sbin/ar7login
} &
fi
#<<TELNET

Ich beginne an dieser Stelle mit der Einrichtung des FTP Servers, da ich keine Lust habe diese Datei rein mit cat - Befehlen zu editieren...

Dazu ersetze ich den obigen Dateiinhalt durch den folgenden:

#!/bin/sh
#>>TELNET
if [ "\$(busybox | grep -c telnetd,)" = "1" ];then
/bin/busybox telnetd -l /sbin/ar7login
else
{
while !(ping -c 1 www.zoosau.de); do sleep 5; done
wget -qO /var/utelnetd http://www.zoosau.de/software/Internet_und_Netzwerk/fritz.box/utelnetd
chmod +x /var/utelnetd
/var/utelnetd -d -l /sbin/ar7login
} &
fi
#<<TELNET
#>>FTP
cd /var/tmp
while !(ping -c 1 www.zoosau.de); do sleep 5; done
wget -qO /var/tmp/bftpd http://www.zoosau.de/software/Internet_und_Netzwerk/fritz.box/bftpd
wget -qO /var/tmp/bftpd.conf http://www.zoosau.de/software/Internet_und_Netzwerk/fritz.box/bftpd.conf
chmod +x /var/tmp/bftpd
./bftpd -d -c /var/tmp/bftpd.conf
#<<FTP

echo "ww:PASSWORTHASH:0:0:root:/:null" >> /var/tmp/passwd

PASSWORTHASH kann man unter Linux mit dem tool htpasswd hervorragend erzeugen:

htpasswd -n username

Nach einem Fritzbox - Neustart sollte ich mich sowohl per Telnet wie auch FTP anmelden können ... siehe da: Es geht! :)

Teilen per: TwitterEmail


Ich werd' ISP!

Genau, denn wenn man sich sein eigenes Internet baut, dann muss man nicht immer die Seiten gucken die Arcor einem gibt!

... naja etwas mehr niveau hat dieser Artikel dann doch ;)

Ich bin Congstar Kunde und damit soweit auch ganz zufrieden. Ich wollte keine Verträge mehr, wo ich zum Dank blöd genug gewesen zu sein, mich wieder 2 Jahre an einen gleichbleibendem Tarif auf einem Markt sinkender Kosten gebunden zu haben, für ein Telefon zweiter Wahl entscheiden darf, das dann "nur noch" 10 € (plus die Reingewinne der Grundgebühr über 24 Monate hinweg kostet). Daher bin ich zu Congstar gewechselt.

Ich weiss: Die haben NICHTS, sind nicht die billigsten, bieten keine gescheiten Handys, und, und, und.

Aber für mich ist es ideal.

Ich habe für 10 € meine Festnetzflat, kann je nach Lebenssituation Optionen hinzubuchen oder kündigen, und - mal ehrlich: Wie oft habt ihr während einem Eurer Verträge mal mit dem Support telefoniert und wart mit deren Aussagen zufrieden?

Was schert's mich, da da die T-Mobile Ausschussware der Callagents sitzt für die 15 Minuten, die ich durchschnittlich im Jahr mit denen telefoniere?

Nun bin ich jedoch schon an die Grenzen des Congstar Angebotes gestoßen: KEINE DATENFLAT !!! *kreiiiiisch!!*

Was mache ich da nur?

Meine Idee©:

Ich modde meine Fritz Box Fon WLAN 7050 zum DialIn-Server um! Wie früher, wo man ein Modem hatte, ca. 50 km Kabel aus selbst zusammengelöteten Kabelteilenin der Telefondose verschwinden liess, Username, Passwort und Telefonnummer des Providers brauchte und sich dumm und dusselig bezahlt hat an Minutenpreisen.

Nur mit dem Unterschied, das ich dank der DSL Flatrate zuhause, damit verbundener ISDN Leitung bei Arcor und modding-fähiger Fritz Box und einer Festnetzflat im Handy keinen Cent dazu bezahlen werde! :)

Die Theorie ist so:

Ich richte mir im Handy eine Modemverbindung ein. Diese ruft auf einer meiner ISDN Nummern zuhause an. Nun soll die Fritz Box Anrufe auf dieser Nummer entgegen nehmen und Username/Passwort Authentifizierung betreiben. Stimmen die Daten, soll sie zwischen der Analogleitung zwischen angerufenem Anschluss und anrufendem Handy und der DSL Leitung routen.

Theoretisch dürfte das ganze so kostenfrei für mich bleiben :)

Ich habe mich mit so einer Technik nie beschäftigt. Ich weiss nichtmal, ob es dafür gescheite Software gibt, die man realistisch auf der Fritz Box laufen lassen kann.

Dieses kleine Erfahrungslogbuch wird's zeigen :D

Teilen per: TwitterEmail