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.
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:
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.
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.
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.
- http://www.64k-tec.de/2010/01/fritzbox-tuning-part-1-enable-remote-access-over-ssh/
- http://www.teamarbyte.de/ssh-fritzbox.html
- http://www.wehavemorefun.de/fritzbox/SSH/Dropbear
- http://radislav.dyndns.org/index.php?site=Fritzbox/Modification/ssh.php
- http://www.qdsl-support.de/showthread.php?t=10541&page=5#post130245
- http://www.tecchannel.de/netzwerk/lan/432967/fritz_box_fritzbox_hack_computer_remote_internet_starten_fernsteuern/index6.html
- http://www.ip-phone-forum.de/showthread.php?t=162304
Sie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen
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?
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.
Bekomme eine Fehlermeldung von Putty, “Error, Software caused Connection abort.”
Bekanntes Problem, bzw. Lösungsvorschläge?
Beim Verbinden? Vermutlich stimmt dann etwas mit deinem Dropbear nicht, da sich Putty nicht verbinden kann.
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?
Könnte aber schon am Dateisystem liegen. Einfach mal mit FAT32 formatieren und dann nochmal testen.
Ich bekomme immer den Fehler…
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
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!
Neueste Versionen sind jetzt im Artikel verlinkt.
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?
Meinst du die Datei “dropbear”, welche ich im Tutorial verwendet habe? Wenn ja musst du die Datei “dropbearmulti_2013.62_mips” einfach nur umbenennen ;-)
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.
Die Datei kannst du auch aus der hochgeladenen Datei erstellen. Ist also zweimal die gleiche Datei, nur anders benannt.
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?
Hallo liebe Experten! Ich habe die Ausführungen gelesen, aber nur die Hälfte verstanden und hoffe das ihr mir bei meinem Problem helfen könnt. Meine Tochter ist in ein Studentenwohnheim gezogen wo ihr ein Internetanschluß zur Verfügung steht. Dazu muß sie sich über den PC immer umständlich über einen SSH Clienten anmelden. Ich habe ihr jetzt eine Fritz 7490 installiert, damit sie sich per WLAN verbinden kann. Will sie jetzt das Internet mit einem anderen Gerät nutzen, muß sie den PC laufen lassen, damit der Client die Verbindung hält. Meine Vorstellung wäre es auf der FB einen Clienten zu installieren der die Anmeldung automatisch übernimmt und hält, so das Internet per WLAN zur Verfügung steht. Am liebsten ohne großen Programmieraufwand per USB Stick. Also Script auf den Stick, anstecken und gut. Kann mir da jemand helfen und ist das überhaupt machbar?
Danke schon al für eure Hilfe!
Hallo Roy, in den letzten Jahren hat AVM die FRITZ!Boxen immer weiter abgesichert, sodass ein SSH-Zugang zu dieser immer schwerer wurde. Dies ist nur noch mit erheblichen Aufwänden möglich und als normaler Anwender viel zu aufwändig bzw. gar nicht mehr umzusetzen. Als Alternative würde ich einen Raspberry Pi empfehlen. Der kann sich ebenfalls via WLAN mit der FRITZ!Box verbinden und könnte sich via SSH einwählen. Er ist klein, günstig und benötigt wenig Strom. In diesem Artikel habe ich beschrieben, wie ein Raspberry Pi in Betrieb genommen werden kann. Wenn das alles erledigt ist, ist die Verbindung via SSH ein Kinderspiel.