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:
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
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:
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.
Das eigentliche Update startet man danach mit dem Befehl:
update
Die Ausgabe sieht hier in etwas so aus:
Super Beitrag. Ergänzend hierzu habe ich gerade den Beitrag rund um das Attribut BasicAuthExpiry veröffentlicht, der dir ein paar mal Passwort eintippen spart 🙂 https://demaya.de/fhem-eingeloggt-bleiben-basicauthexpiry/
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…
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?