Allowed: Unterschied zwischen den Versionen
K (Modultyp geändert)  | 
				 (HTTPS als Empfehlung, ungenutzte Bereiche deaktiviert, Baustelle entfernt)  | 
				||
| Zeile 1: | Zeile 1: | ||
{{SEITENTITEL:allowed}}  <!-- da richtige Schreibweise kleinen Anfangsbuchstaben hat -->  | {{SEITENTITEL:allowed}}  <!-- da richtige Schreibweise kleinen Anfangsbuchstaben hat -->  | ||
{{Infobox Modul  | {{Infobox Modul  | ||
| Zeile 27: | Zeile 26: | ||
==Weitere Hinweise==  | ==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_Authentication_Proxy|Apache]] oder [[HTTPS-Absicherung_%26_Authentifizierung_via_nginx_Webserver|nginx]].  | 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_Authentication_Proxy|Apache]] oder [[HTTPS-Absicherung_%26_Authentifizierung_via_nginx_Webserver|nginx]].  | ||
Es wird dringend empfohlen, für alle Webserver des Typs '''FHEMWEB''' mithilfe des Attributes {{Link2CmdRef|Anker=HTTPS|Lang=de|Label=HTTPS}} eine HTTPS-Verbindung zu aktivieren. Für telnet (welches mehr oder weniger ein TCP/IP Port ist) wird das Attribut {{Link2CmdRef|Anker=SSL|Lang=de|Label=SSL}} verwendet.    | |||
<!--  | |||
== Einschränkungen ==    | == Einschränkungen ==    | ||
-->  | |||
== Beispiele ==  | == Beispiele ==  | ||
Festlegen eines Users samt Passwort für gängige FHEMWEB-Instanzen:  | Festlegen eines Users samt Passwort für gängige FHEMWEB-Instanzen:  | ||
| Zeile 42: | Zeile 41: | ||
      attr allowedTelnet validFor telnetPort  |       attr allowedTelnet validFor telnetPort  | ||
      attr allowedTelnet password secret  |       attr allowedTelnet password secret  | ||
<!--  | |||
== Links ==  | == Links ==  | ||
-->  | |||
Version vom 14. März 2018, 07:21 Uhr
| 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