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