Dropbear SSH-Server auf Fritz!Box 7270

Eine Möglichkeit zum Verbinden auf Fritz!Boxen ist Telnet. Telnet wird von Haus aus unterstützt, ist standardmäßig aber nur vom internen Netz aus erreichbar. Außerdem ist Telnet absolut unsicher, denn alle Informationen werden unverschlüsselt übertragen. Auch die Passwörter werden im Klartext übertragen. Als Alternative zu Telnet eignet sich SSH. Mit dem Netzwerkprotokoll kann eine verschlüsselte Verbindung zur Fritz!Box hergestellt werden, also auch über das Internet.

Die Fritz!Boxen beherrschen kein SSH, weswegen ein geeigneter SSH-Server installiert werden muss. Neben OpenSSH bietet sich insbesondere Dropbear an. Die von Matt Johnston entwickelte Software ist speziell für Arbeitsumgebungen mit wenig Speicher- bzw. Prozessorresourcen ausgelegt und eigenet sich daher hervorragend für die Fritz!Box.

Im folgenden Tutorial möchte ich euch zeigen, wie man Dropbear manuell auf der Fritz!Box 7270 installieren kann.

Leider funktioniert diese Anleitung mit neueren FRITZ!OS Versionen nicht mehr. Weitere Informationen dazu gibts in meinem Artikel „AVM entfernt “debug.cfg” von FRITZ!Boxen„.

Vorbereitungen

Als erstes sollte das Passwort für den SSH-Zugang gesetzt werden. Dies geschieht über Telnet.

  • Telnet aktivieren: mit einem an der Fritz!Box angeschlossenem Telefon die Nummer #96*7* wählen und auf den kurzen Bestätigungston warten
  • Über einen Telnet-Clienten, zum Beispiel PuTTY oder KiTTY, auf die Fritz!Box verbinden. Das Passwort für den Telnet-Zugang ist das Passwort des Webinterfaces.
  • Nach erfolgreicher Anmeldung den Befehl „passwd“ in der Konsole ausführen und das gewünschte Passwort zweimal eingeben. In meinem Beispiel verwende ich „Fritzbox1„.
  • Jetzt benötigen wir den Passwort-Hash. Dafür den Befehl „cat /var/tmp/shadow“ ausführen. Folgende Ausgabe erscheint:
    root:$1$z.3J0iK8$7PEJXmT0ZvQhSLPCOY6PK.:15702:0:99999:7:::
  • Der gesuchte Hash-Wert ist zwischen den ersten beiden Doppelpunkten zu finden. Im Beispiel also „$1$z.3J0iK8$7PEJXmT0ZvQhSLPCOY6PK.“ Diesen Hash irgendwo auf dem PC abspeichern, da er später benötigt wird.

Im zweiten Schritt muss Dropbear auf einen USB-Stick geladen werden, welcher an der Fritz!Box angeschlossen ist. Es besteht auch die Möglichkeit Dropbear aus dem Internet nachzuladen, was ich aufgrund diverser Nachteile jedoch nicht weiter ausführe.

  • Dropbear 2013.62 mipsel
    Diese Version von Dropbear ist nur für mipsel-Fritz!Boxen (beispielsweise 7270, 7170 und andere) geeignet.
  • Dropbear 2013.62 mips
    Diese Version von Dropbear ist nur für mips-Fritz!Boxen (beispielsweise 7390, 7490 und andere) geeignet.
  • Benötigte Version herunterladen und auf dem USB-Stick in das Verzeichnis „dropbear“ entpacken.

Dropbear SSH-Server manuell einrichten

Jetzt muss Dropbear auf der Fritz!Box gestartet werden. Außerdem wird ein root-Passwort gesetzt, ansonsten funktioniert der SSH-Login später nicht. Der vorher gespeicherte Hash-Wert wird in die Variable „PASSWD“ geschrieben. In der Telnet-Konsole müssen folgende Befehle nacheinander ausgeführt werden:

# Passwort für root setzen
PASSWD=’$1$z.3J0iK8$7PEJXmT0ZvQhSLPCOY6PK.‘
cp -p /var/tmp/shadow /var/tmp/shadow.old
sed -e „/root:/s#^root:[^:]*:#root:${PASSWD}:#“ /var/tmp/shadow.old > /var/tmp/shadow

# Name des USB-Sticks herausfinden und in Variable speichern
USBSTICK=$(mount | grep /var/media/ftp/ | sed -e „s|^.*ftp/||g“ -e „s/ .*$//“)
sleep 5

# Dropbear ausführbar machen und Keys erzeugen
chmod +x /var/media/ftp/$USBSTICK/dropbear/dropbear
chmod +x /var/media/ftp/$USBSTICK/dropbear/dropbearkey
/var/media/ftp/$USBSTICK/dropbear/dropbearkey -t rsa -f rsa_host_key
/var/media/ftp/$USBSTICK/dropbear/dropbearkey -t dss -f dss_host_key

# Dropbear starten
/var/media/ftp/$USBSTICK/dropbear/dropbear -r /var/media/ftp/$USBSTICK/dropbear/rsa_host_key -d /var/media/ftp/$USBSTICK/dropbear/dss_host_key

SSH testen und Befehle in debug.cfg schreiben

Jetzt müsste der SSH-Server laufen. Für einen Test aus dem lokalen Netzwerk kann abermals PuTTY oder KiTTY benutzt werden. Die Zertifikatmeldung kann mit „Nein“ beantwortet werden. Zum Anmelden den Benutzernamen „root“ und das selbst gewählte Passwort verwenden.

Sofern die Verbindung via SSH erfolgreich war, können alle Änderungen in die Datei „/var/flash/debug.cfg“ geschrieben werden. Bisher haben wir die gesamte Konfiguration manuell durchgeführt. Bei einem Neustart der Fritz!Box werden alle Änderungen verworfen. Der einzige Weg führt über die Datei „/var/flash/debug.cfg„, welche beim Booten der Fritz!Box automatisch ausgeführt wird.

Achtung! Bevor ihr dies tut, solltet ihr alles sehr gut und mehrmals testen. Ansonsten kann man seine Fritz!Box sehr schnell unbrauchbar machen.

Es muss lediglich wieder der Hash-Wert ausgetauscht werden. Der Rest kann unverändert in die Datei „/var/flash/debug.cfg“ übernommen werden. Neben dem Texteditor „nvi“ existieren auch noch andere Möglichkeiten, wie ihr die Befehle in die Datei schreiben könnt.

# Passwort für root setzen
PASSWD=’$1$z.3J0iK8$7PEJXmT0ZvQhSLPCOY6PK.‘
cp -p /var/tmp/shadow /var/tmp/shadow.old
sed -e „/root:/s#^root:[^:]*:#root:${PASSWD}:#“ /var/tmp/shadow.old > /var/tmp/shadow

# Warten bis der Stick gemounted ist
sleep 5

# Name des USB-Sticks herausfinden und in Variable speichern
USBSTICK=$(mount | grep /var/media/ftp/ | sed -e „s|^.*ftp/||g“ -e „s/ .*$//“)
sleep 5

# Warten bis die FritzBox den Stick erreichen kann
while !(test -d /var/media/ftp/$USBSTICK/dropbear); do
sleep 5
done

# Dropbear ausführbar machen und Keys erzeugen
chmod +x /var/media/ftp/$USBSTICK/dropbear/dropbear
chmod +x /var/media/ftp/$USBSTICK/dropbear/dropbearkey
/var/media/ftp/$USBSTICK/dropbear/dropbearkey -t rsa -f rsa_host_key
/var/media/ftp/$USBSTICK/dropbear/dropbearkey -t dss -f dss_host_key

# Dropbear starten
/var/media/ftp/$USBSTICK/dropbear/dropbear -r /var/media/ftp/$USBSTICK/dropbear/rsa_host_key -d /var/media/ftp/$USBSTICK/dropbear/dss_host_key

Nach einem Neustart der Fritz!Box sollte Dropbear nun automatisch gestartet werden.

Zugang über Internet

Der größte Teil ist geschafft. Lediglich der Zugriff über das Internet muss noch eingerichtet werden, denn bisher ist der Zugriff per SSH nur über das lokale Netzwerk möglich. Aus Sicherheitsgründen kann der Zugang über das Internet nicht über das Webinterface geöffnet werden. Also mit Telnet oder per SSH auf die Fritz!Box verbinden und die Datei „/var/flash/ar7.cfg“ anpassen. Entweder mit „nvi“ bearbeiten oder über den Umweg mit der temporären Datei, wie weiter oben verlinkt.

In der Datei muss der Abschnitt „forwardrules“ gesucht und um eine Zeile für den SSH-Zugriff ergänzt werden. Nach der Änderung sollte der Abschnitt ungefähr so aussehen:

forwardrules = "tcp 0.0.0.0:80 192.168.178.30:80 0 # HTTP-Server",
               "tcp 0.0.0.0:222 0.0.0.0:22 0 # SSH";

222“ ist der Port, auf dem der SSH-Server vom Internet aus erreichbar ist. „22“ ist der Port, auf dem der SSH-Server läuft.

Damit die Änderung wirksam wird, muss die Fritz!Box mit dem Befehl „reboot“ neugestartet werden.

Zum Abschluss sollte Telnet wieder deaktiviert werden: mit einem an der Fritz!Box angeschlossenem Telefon die Nummer #96*8* wählen und auf den kurzen Bestätigungston warten.

Fertig! Nun könnt ihr euch von überall auf eure Fritz!Box verbinden.

Weitere Infos

Nachfolgend noch einige Links mit weiteren Informationen.

Tobi

Hallo, mein Name ist Tobias und ich habe diesen Blog im April 2009 ins Leben gerufen. Seitdem blogge ich hier über Software, Internet, Windows und andere Themen, die mich interessieren. SSDblog ist mein zweiter Blog, indem es rund um das Thema SSDs geht. Ich würde mich freuen, wenn ihr meinen Feed abonniert oder mir auf Twitter, Facebook, Google+ und Google+ (privat) folgt.

14 Antworten

  1. Newbie sagt:

    Interessante Idee, schöne Anleitung.

    Geht es auch ohne dauerhaft 1 USB-Stick zu opfern? Kann ich die beiden dropbear-Dateien von 711 KB nicht irgendwie auf die FB übertragen?
    Und wie mache ich das am besten?

    • Tobi sagt:

      Ja die Dateien könnte man auch in den Speicher der Fritz!Box laden. Bei einem Neustart werden sie dann aber gelöscht und müssten erneut geladen werden, beispielsweise aus dem Internet. Wegen der Umsetzung suchst bzw. fragst du am besten in diesem Forum.

      Davon abgesehen ist der USB-Stick an der Fritz!Box ja nicht blockiert, man kann ihn ohne Probleme noch für andere Dinge nutzen, z.B. um mit der NAS-Funktionalität Daten zu speichern.

  2. Lukas sagt:

    Bekomme eine Fehlermeldung von Putty, „Error, Software caused Connection abort.“

    Bekanntes Problem, bzw. Lösungsvorschläge?

    • Tobi sagt:

      Beim Verbinden? Vermutlich stimmt dann etwas mit deinem Dropbear nicht, da sich Putty nicht verbinden kann.

  3. Michael sagt:

    Beim Erzeugen der Keys erhalte ich in der Konsole folgende „Beschwerde“:

    # /var/media/ftp/$USBSTICK/dropbear/dropbearkey -t rsa -f rsa_host_key
    Will output 1024 bit rsa secret key to ‚rsa_host_key‘
    Generating key, this may take a while…
    Couldn’t create new file rsa_host_key
    Reason: Read-only file system

    Der USB-Stick ist ext2-formatiert und dass da es drauf keine Schreibrechte gibt ist mir auch neu. Wie kann man dieses Problem beheben?

  4. Freetzer99 sagt:

    Ich bekomme immer den Fehler…

    # ./dropbear
    ./dropbear: line 1: syntax error: unexpected „(„

    Habe deine Dateien genommen oben.
    1 x per Binary Transfer per FTP
    1 x per FritzBox „wget“ und „unzip“

    Immer das selbe 🙁
    Wo hast du die Dateien überhaupt her? Selbst kompiliert?

    Ich versuche die Dateien auf dem internen Speicher auszuführen.
    Fritz!Box 7490

    • Tobi sagt:

      Natürlich funktioniert es nicht, da mein Download nur für die „mipsel-Fritz!Boxen“ geeignet ist, also beispielsweise 7270 oder 7170. Steht aber im Artikel.
      Für die 7390 und 7490 wird eine mips-Version benötigt.

      Werde heute Abend aber die aktuellste Version in beiden Varianten bereitstellen!

    • Tobi sagt:

      Neueste Versionen sind jetzt im Artikel verlinkt.

  5. Leisniger sagt:

    Die Datei https://www.antary.de/wp-content/uploads/2012/12/dropbearmulti_2013.62_mips.zip enthält die Datei dropbearmulti_2013.62_mips, nicht die von die beschriebenen Dateien im dropbear-Verzeichnis. Wie passt das zusammen? kann man die *.mips noch weiter auspacken? Wenn ja, wie denn?

    • Tobi sagt:

      Meinst du die Datei „dropbear“, welche ich im Tutorial verwendet habe? Wenn ja musst du die Datei „dropbearmulti_2013.62_mips“ einfach nur umbenennen 😉

  6. Johannes sagt:

    In der hochgeladenen Datei ist die dropbearkey nicht drin. Hast du die vergessen oder geht das auch ohne? Habs versucht mit dem dropbear, aber der scheint keinen Key generieren zu können.

    • Tobi sagt:

      Die Datei kannst du auch aus der hochgeladenen Datei erstellen. Ist also zweimal die gleiche Datei, nur anders benannt.

  7. Johannes sagt:

    Okay Interessant, dass beim umbennenen einer Datei auf einmal ganz neue Funktionen auftauchen. Mal eine weitere Frage: Kennt jemand denn auch einen SSH-Client, den man auf die FritzBox aufspielen kann?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.