FritzBox Webzugriff absichern
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:
- Muss das Webinterface mit einem Passwort geschützt werden
- Eine HTTPS Verbindung zum FHEM Server, damit das Kennwort verschlüsselt übertragen wird.
- 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 HTPPS 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 es 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