FritzBox Webzugriff absichern

Aus FHEMWiki

Will man zB auf das Einrichten einer VPN-Verbindung verzichten, kann auch ein eigener HTTPS-Port eingerichtet werden. Diese Anleitung kann auch für FHEM Installationen genutzt werden, die nicht auf einer Fritz!Box laufen. Eventuell sind einige Einstellungen dann etwas anders.

Passwortabfrage einrichten

Möchte man einen FHEM Server auf der Fritz!Box per Webinterface aus der Ferne steuern, sind ein paar Dinge nötig:

  1. Muss das Webinterface mit einem Passwort geschützt werden
  2. Eine HTTPS Verbindung zum FHEM Server, damit das Kennwort verschlüsselt übertragen wird.
  3. Muss der Port des FHEm Server auf der Fritz!Box selber freigeben werden.

Dieser Artikel beschreibt, wie dies unter Linux, MacOSX und Windows geht. Da manche benötigten Komponenten schon unter Linux enthalten sind, unter Windows aber nicht, unterscheidet sich das etwas von der Herangehensweise.

basicAuth einrichten

Als erstes wird ein Kennwortschutz eingerichtet. Dazu muss der Benutzername und das Kennwort Base64 codiert werden nach der Art <benutzername>:<passwort> .

Unter Linux muss dazu lediglich folgendes im Terminal eingegeben werden

echo -n benutzername:passwort | base64

Für das Beispiel lautet das Ergebnis: YmVudXR6ZXJuYW1lOnBhc3N3b3J0

Ohne Linux hilft ein Online Base64 Encoder wie www.base64online.com und dort einfach benutzername:passwort eintippen und codieren.

In FHEM muss zum einrichten des Kennwortschutzes folgendes eingegeben werden

attr WEB basicAuth YmVudXR6ZXJuYW1lOnBhc3N3b3J0

Für das Smartphone Interface wäre dies

attr WEBphone basicAuth YmVudXR6ZXJuYW1lOnBhc3N3b3J0

anschließen mit

save

und

shutdown restart

den FHEM Server speichern und neustarten, nun wird ein Passwort abgefragt. Um es noch eleganter zu machen: Mit dem Befehl "attr WEB basicAuthMsg Text" lässt sich der Text oberhalb der Passwortabfrage einstellen. Dies hat aber keinen Einfluss auf die Funktion.

HTTPS einrichten

Damit das Kennwort verschlüsselt übertragen wird, ist eine HTTPS Verbindung wichtig. Dazu muss im modpath Verzeichnis (Das liegt bei der Fritz!Box unter \\fritz.box\fhem\usr\share\fhem\) das Verzeichnis "certs" erstellt werden. In dieses Verzeichnis kommen zwei Dateien die mithilfe von OpenSSL erstellt werden: server-key.pem und server-cert.pem. Unter Linux und MacOSX kommen wir über das Terminal an die Dateien.

Im Terminal und Linux/OSX geht dies mit folgendem Befehl:

openssl req -new -x509 -nodes -out server-cert.pem -days 3650 -keyout server-key.pem

Ihr könnt mit dem Terminal auch direkt in das modpath und mit mkdir certs und cd certs das Verzeichnis erstellen. Oder einfach die Dateien irgendwo erstellen und mit dem Finder oder Windows Explorer dort hin kopieren.

Um unter Windows ein SSL Zertifikat zu erstellen hilft eine Bat Datei aus dem FHEM Users Forum: https://groups.google.com/d/msg/fhem-users/uYNhSombpFw/UsRA9gmkKaEJ

Anschließend in FHEM mit dem Befehl

attr WEB HTTPS

Für das Smartphone Interface entsprechend

attr WEBphone HTTPS

HTTPS aktivieren, nach einem Neustart erfolgt der Zugriff per HTTPS über https://fritz.box:8083/fhem . Es ist wichtig die Adresse mit https:// aufzurufen, da keine automatische Weiterleitung von http auf https existiert.

Portweiterleitung auf die Fritz!Box

Eine Ausführliche Anleitung gibt es unter (für diese Anleitung ist Port 8083 statt 7072 der richtige): http://www.meintechblog.de/2012/08/fritzbox-interne-portweiterleitungen-einrichten/

Für diese Anleitung ist Telnet notwendig. Telnet unter Windows 7 aktivieren: http://support.microsoft.com/kb/978779/de