Fritzbox Modifikation SSH-Server

Aus Wiki
Zur Navigation springen Zur Suche springen

Einleitung

Mit SSH (Secure Shell) ist es möglich, eine sichere Verbindung zur Fritzbox aufzubauen. SSH ermöglicht einen Terminalzugang – analog Telnet – nur mit dem Vorteil, dass die Anmeldedaten und die Nutzdaten mittels SSL verschlüsselt übertragen werden. Dadurch ist es problemlos und sicher möglich die Fritzbox auch übers Internet zu administrieren. Ein hervorragender SSH-Client für Windows ist Putty (Download Page).

Weiterhin ermöglicht SSH den Zugang mittels SCP (Secure Copy). Damit sind Dateioperationen wie mittels FTP möglich. Die Verbindung ist ebenfalls komplett via SSL verschlüsselt. Ein sehr guter Client für Windows ist WinSCP (Download Page).

Für SSH ist ein sicheres Passwort für den User root nötig. Dies wird analog dessen beim → FTP-Server erzeugt. Weiterhin sind für die SSL- verschlüsselte Zertifikate nötig. Diese werden beim ersten Neustart nach der Installation von SSH vom Script ssh.sh automatisch erstellt.


Aus dem Zip-File wurde während der → Vorbereitung der Unterordner ssh mit folgendem Inhalt entpackt:

ssh.sh
Script, das die Installation von SSH vornimmt
dropbear
SSH-Server Executable


Konfiguration des SSH-Servers

1. Script <usbstick>\system\ssh\ssh.sh in Editor öffnen (siehe → Hinweise) 2. Passwort generieren für user root → analog FTP-Server

„root:QAa3SPeYrDARs“ 
stellt den eingegebenen Username und durch Doppelpunkt getrennten Hash-Wert dar
  • Eben erzeugten Hash-Wert im script ssh.sh als Passwort PASSWD eintragen:
# change root password
PASSWD='QAa3SPeYrDARs'
  • Script Speichern


Starten des SSH-Servers

1. Script <usbstick>\system\userscripts.sh in Editor öffnen (siehe → Hinweise)

2. Folgenden Absatz im Script suchen:

#Start SSH-Server
#sh "$STICK_SYS/ssh/ssh.sh"
Damit der SSH-Server beim booten der Fritzbox gestartet wird, muß das Kommentarzeichen „#“ entfernt werden:
#Start SSH-Server
sh "$STICK_SYS/ssh/ssh.sh"


Zugang aus dem Internet

Optional kann der SSH-Zugang zur Administration der Fritzbox aus dem Internet geöffnet werden. Zu diesem Zweck ist die Registrierung und Eingabe der Zugangsdaten eines Dynamic-DNS-Anbieters, z.B. dyndns.org in der Weboberfläche unter Einstellungen/Erweiterte Einstellungen/Internet/Freigabe/Dynamic DNS.

Das SSH-Protokoll verwendet standardmäßig Port 22. Die Sicherheit wird erhöht, wenn ein anderer Port z.B. 2022 verwendet wird.

Die Weboberfläche lässt aus Sicherheitsgründen leider keine Direktfreigabe eines Ports auf die Fritzbox zu. Deshalb ist ein kleiner Trick nötig. Es wird eine Portweiterleitung von Port 2022 an eine Dummy IP-Adresse (z.B. 192.168.177.177) mit Port 22 eingerichtet. Der Eintrag wird anschließend mit einem Editor korrigiert. Dies ist einfacher und weniger fehleranfällig, als den Eintrag direkt komplett im Editor zu erzeugen.

1.Weboberfläche im Webbrowser öffnen

2.In der Weboberfläche „Erweiterte Einstellungen/Internet/Freigaben“ anwählen.

  • Button „Neue Portfreigabe“ anwählen.
  • Folgende Daten eingeben:
    • Portfreigabe aktiv für: Andere Anwendungen
    • Bezeichnung: SSH
    • Protokoll: TCP
    • von Port: 2022
    • an IP-Adresse: 192.168.177.177
    • an Port: 22
  • Übernehmen anklicken

3.Editieren der Datei /var/flash/ar7.cfg

Dies ist die zentrale Konfigurationsdatei der Fritzbox, die sämtliche Einstellungen enthält.
ACHTUNG:
Das ändern dieses Files gleicht einer Operation am offenen Herzen.
Beim kleinsten Fehler könnte dies zu Funktionsstörungen der Box führen, die nur durch ein Recovery wieder korrigiert werden können.
Deshalb die Änderungen sehr gewissenhaft durchführen und vor dem speichern bzw. zurückkopieren mehrmals checken.
  • Eingabeaufforderung öffnen
telnet fritz.box
Die Datei kann entweder direkt auf der Fritzbox (nur für sehr erfahrene vi/nvi Benutzer empfohlen) bearbeitet werden:
nvi /var/flash/ar7.cfg
oder alternativ mittels Notepad++ unter Windows bzw. eines Editors unter Linux.
Mit folgendem Befehl wird die Konfigurationsdatei ar7.cfg aus dem Flash der Fritzbox auf den USB-Stick kopiert.
cp /var/flash/ar7.cfg  /var/media/usbstick/system
öffnen des Files <usbstick>\system\ar7.cfg auf dem USB-Stick in Notepad++
  • Ändern der Dummy-IP-Adresse in folgendem Absatz:
forwardrules = "tcp 0.0.0.0:21 0.0.0.0:21 0", 
               "udp 0.0.0.0:5060 0.0.0.0:5060", 
               "tcp 0.0.0.0:2022 192.168.177.177:22 0 # SSH";
in
forwardrules = "tcp 0.0.0.0:21 0.0.0.0:21 0", 
               "udp 0.0.0.0:5060 0.0.0.0:5060", 
               "tcp 0.0.0.0:2022 0.0.0.0:22 0 # SSH";
  • Falls ar7.cfg auf den USB-Stick kopiert wurde, mittels folgendem Befehl in Telnet zurück auf die Fritzbox kopieren:
cp /var/media/usbstick/ar7.cfg /var/flash


Neustart und Test

1. Fritzbox neustarten Der Neustart kann erfolgen:

  • Power-Cycle
  • via Weboberfläche
  • via telnet mit dem Befehl „reboot“
Während des Neustarts blinkt zunächst die „Power/DSL LED“ und evtl. die „WLAN“ LED.
Nach einer Weile blinkt für ca 1 Minute die „Internet Telefonie“ LED. Nachdem diese erloschen ist, ist der Bootvorgang beendet.

2. SSH-Zugang testen

Putty oder sonstiges Tool, das SSH unterstützt, öffnen (evtl. erst downloaden und installieren)

  • Test interne Verbindung: Hostname: fritz.box / Port 22 / Connection Type=SSH

Screenshot Putty Connection Page

  • Test Internet Verbindung: Hostname: Dynamic DNS-Name (z.B. schiele.zapto.org) / Port 2022 / Connection Type=SSH
  • Username root und vergebenes Passwort eingeben

Screenshot Putty Login


→ Hier geht's weiter zu eigenen Erweiterungen.