FHEM Absichern

Nach der Installation von FHEM erhält man auf dessen Standardwebseite ([IP]:8083/fhem) eine Meldung der Sicherheitsprüfung die vermutlich so oder so ähnlich aussieht:

SecurityCheck:
WEB,WEBphone,WEBtablet has no basicAuth attribute.
telnetPort has no password/globalpassword attribute.
Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.

 

Die hier aufgezeigten Probleme lassen sich recht einfach fixen.

Passwortschutz Einrichten

Um einen Passwortschutz einzurichten öffnen wir zuerst eine SSH Verbindung zu unserem FHEM Server und öffnen zudem in einem Browserfenster die fhem.cfg Konfigurationsdatei:

snaghtml590371c1_thumb-6262909

Die SSH Verbindung benötigen wir nun um unsere Benutzername / Passwortkombination mit base64 maskieren zu können.

Wichtig: base64 ist keine Verschlüsselung. Wenn ihr also wie ich Ausschnitte aus eurer Konfiguration veröffentlicht, dann solltet ihr diese Werte auf jeden Fall raus nehmen (oder dummy Werte verwenden).

Wir maskieren nun also zuerst unsere Benutzername / Passwortkombination. In meinem Beispiel verwende ich den Benutzernamen “Dummy” und das Passwort “Geheim123” und gebe folgende Befehlsfolge in der SSH Konsole ein:

echo -n Dummy:Geheim123|base64

Der Rückgabewert ist der base64 Wert zu Dummy:Geheim123.

RHVtbXk6R2VoZWltMTIz

image_thumb1-2957693

Diesen Rückgabewert benötigen wir nun in unserem Browserfenster. Hier fügen wir die nachfolgenden Linien ein (ggf. habt ihr bereits alles ausser den Teil mit basicAuth):

define WEB FHEMWEB 8083 global
attr WEB basicAuth RHVtbXk6R2VoZWltMTIz
define WEBphone FHEMWEB 8084 global
attr WEBphone basicAuth RHVtbXk6R2VoZWltMTIz
attr WEBphone stylesheetPrefix smallscreen
define WEBtablet FHEMWEB 8085 global
attr WEBtablet basicAuth RHVtbXk6R2VoZWltMTIz
attr WEBtablet stylesheetPrefix touchpad

und speichern diese Konfiguration mit Save fhem.cfg. Um die Konfiguration wirksam werden zu lassen müssen wir in der Kommandozeile (ganz oben auf der Seite) den FHEM Server noch mit folgendem Befehl neu starten:

shutdown restart

Der Server sollte nun neu starten und danach einen Benutzername und ein Passwort für die Anmeldung am Webfrontend verlangen. Nach der Erfolgreichen Anmeldung sollte sich die Fehlermeldung verändert haben – das einzige verbleibende Problem sollte jetzt nur noch telnet sein.

Telnet

Ich bin kein großer Freund von Telnet und habe bei FHEM auch noch keinen Grund gefunden, warum ich es diesem Server erlauben sollte in meinem Netzwerk einen Telnet Server anzubieten. Daher schlage ich vor diesen Service zu deaktivieren. Dies erreicht man durch einfaches auskommentieren (oder löschen) der entsprechenden Zeile aus der fhem.cfg:

image_thumb2-6307360

Update

Auch FHEM benötigt in regelmäßigen Abständen Updates. Bevor man diese durchführt empfehle ich in der fhem.cfg noch ein globales Attribut einzufügen welches FHEM anweist vor jedem Update ein Backup durchzuführen:

attr global backup_before_update 1

Das Update selbst führt man danach über die Befehlszeile mit folgenden Kommandos durch:

Anzeigen ob Updates vorhanden sind:

update check

Die Ausgabe wird danach so oder so ähnlich aussehen und die derzeit anstehenden Änderungen (auf Datei Ebene) ausgeben.

image_thumb3-7754826

Das eigentliche Update startet man danach mit dem Befehl:

update

Die Ausgabe sieht hier in etwas so aus:

image_thumb4-5861778

3 Gedanken zu „FHEM Absichern

  1. Johannes Schmidt Beitragsautor

    Hi,
    diese Funktion sollte man allerdings nur verwenden wenn man sich ganz sicher ist, dass sonst keiner mit dem Gerät arbeiten kann. Der bessere Ansatz ist hier im Zweifel die Verwendung von client certificates via SSL Auth. Habe hierzu schon einen Artikel vorbereitet, den ich mal zuende führen muss…

  2. Mervyn Bickerdyke

    Das wäre super, denn ich muss gerade mein telefon neu aufsetzen und hätte bei der Gelegenheit die Zugangsberechtigungen auf client-zertifikate umgestellt. Kann das fhem mittlerweile selbst oder muss man tatsächlich einen extra-webserver davor stellen?

Kommentare sind geschlossen.