allowed
allowed | |
---|---|
Zweck / Funktion | |
Absicherung des FHEM-Servers | |
Allgemein | |
Typ | Hilfsmodul |
Details | |
Dokumentation | EN / DE |
Support (Forum) | Automatisierung |
Modulname | 96_allowed.pm |
Ersteller | rudolfkoenig / rudolfkoenig |
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! |
allowed ist ein Erweiterungsmodul um Zugriffe auf die von fhem.pl bereitgestellten Serverdienste (FHEM-Webserver und FHEM-telnet-Server) abzusichern und zu steuern.
Einführung
In der Grundkonfiguration kann jeder, der sich in dem selben Netzwerk[1] wie der FHEM-Server befindet, unverschlüsselt und ohne der Eingabe von Benutzerdaten auf FHEM zugreifen. FHEM weist mit einer Sicherheitswarnung auf diesen Umstand hin. Das Definieren einer allowed-Instanz ist eine Möglichkeit, die Installation abzusichern.
Daher ist es erforderlich, eine allowed-Instanz zu definieren, um
- Zugriffe auf FHEM aus anderen Netzwerken zu ermöglichen und/oder
- die Möglichkeiten, auf FHEM zuzugreifen für Teilnehmer desselben Netzwerks einzuschränken oder auszuschließen.
Syntax
Ein allowed-Device für ein- oder mehrere FHEMWEB oder telnet-Instanzen wird wie folgt definiert:
define <name> allowed <deviceList>
Weitere Hinweise
Sofern FHEM nicht nur aus dem lokalen Netz erreichbar sein soll, sollten neben der Definition einer oder mehrerer allowed-Instanzen zusätzliche Sicherheitsmaßnahmen ergriffen werden. Mögliche Optionen dafür sind die Verwendung eines VPNs (Virtual Private Network) und/oder eines Reverse-Proxy-Servers mit z.B. Apache oder nginx. Es wird dringend empfohlen, für alle Webserver des Typs FHEMWEB mithilfe des Attributes HTTPS eine HTTPS-Verbindung zu aktivieren. Für telnet (welches mehr oder weniger ein TCP/IP Port ist) wird das Attribut SSL verwendet.
Beispiele
Festlegen eines Users samt Passwort für gängige FHEMWEB-Instanzen:
define allowedWEB allowed attr allowedWEB validFor WEB,WEBphone,WEBtablet attr allowedWEB basicAuth { "$user:$password" eq "admin:secret" } attr allowedWEB allowedCommands set,get
Dasselbe für Telnet:
define allowedTelnet allowed attr allowedTelnet validFor telnetPort attr allowedTelnet password secret
- ↑ Haben z.B. in Ihrem Heimnetzwerk alle angeschlossenen Geräte Adressen aus dem Bereich 192.168.178.x, wäre ein Zugriff von einem Gerät mit der Adresse 192.168.178.3 zulässig, nicht aber von 192.168.179.3