OT? - Absicherung FHEM WEBweatherstation Instanz für HP1000 Modul

Begonnen von SnakeZZ, 08 April 2018, 11:00:23

Vorheriges Thema - Nächstes Thema

SnakeZZ

Hallo Zusammen!

(Ich hoffe ich bin hier nicht Off-Topic, falls schon - mea culpa -, bitte kurzer Hinweis, wo ich am Besten die Frage posten soll).
Ich habe meine HP1000SE an FHEM angebunden und im Prinzip funktioniert alles ganz gut, ich bekomme Daten.

Ich bin etwas unklar darüber, was jetzt die Sicherheit der WEBweatherstation Instanz angeht.
Obwohl ich das Modul mit

define Wetterstation HP1000 <meinBenutzer> <meinPasswort>

angelegt habe, kann ich mit einem Browser auf die neue Instanz ohne Benutzername/Passwort zugreifen.
Ich hab mal versucht mit

define allowed_WEBweatherstation allowed
attr allowed_WEBweatherstation basicAuth <sha-hash>
attr allowed_WEBweatherstation validFor WEBweatherstation


ein Benutzernamen/Passwort zu setzen. Dann bekomme ich im Browser zwar die Authentifizierung, allerdings scheint dann die Wetterstation selbst nicht mehr durchzukommen, es kommen keine Daten mehr.

Wie bekommt man das Ganze denn jetzt halbwegs sicher?
Ich möchte eigentlich nicht für die Wetterstation eine komplette Backdoor in meine Hausautomation öffnen.
Idealerweise soll die neue FHEMWEB Instanz durch Benutzername/Passwort gesichert sein und nicht die Kontrolle des ganzen Hauses erlauben...
Wenn ich es richtig gelesen habe, kann man das mit einem "allowed"-Device machen.

Also zwei Fragen:
1. Ist es überhaupt möglich, noch eine Benutzername/Passwort Abfrage mit BasicAuth zu machen auf der WEBweatherstation Instanz? (Ist es überhaupt nötig oder wird das irgendwie intern vom HP1000 Modul geprüft, ob die Station mit einer validen Username/PW Kombi kommt?)
2. Welche allowedCommands brauche ich für die neue Instanz, damit die Datenübermittlung noch klappt?

Danke und Gruss,

SnakeZZ

MadMax-FHEM

Mit dem Define legst du doch keine neue FHEMWEB-Instanz an, sondern eben ein Device vom Typ HP1000.

Was meinst du du kommst auf die neue Instanz (die es ja nicht gibt) drauf?

Wenn du "ganz normal" dein fhem im Browser öffnest (wie immer du die FHEMWEB-Instanz abgesichert hast) und dann auf das neu angelegte Device (NICHT FHEMWEB-Instanz sondern eben HP1000/Wetterstation) klickst, siehst du natürlich die Daten des Gerätes.

Die wurden ja vom Device (Wetterstation  /  Typ HP1000) mittels User/Passwort geholt.

Wie das Device (HP1000) das macht musst du im Device nachschauen (Code).

Und ob die Absicherung per User/Passwort deiner Wetterstation ausreichend ist musst du wohl beim Hersteller rauskriegen (oder googeln)...

Das allowed-Device ist nur für FHEMWEB-Instanzen "zuständig"...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

SnakeZZ

Hallo Joachim,

vielen Dank für deine Antwort.

Zitat von: MadMax-FHEM am 08 April 2018, 11:10:27
Mit dem Define legst du doch keine neue FHEMWEB-Instanz an, sondern eben ein Device vom Typ HP1000.

In der Doku des Moduls (https://wiki.fhem.de/wiki/HP1000) steht:

Zitatdefine Wetterstation HP1000 Benutzer Passwort

Es wird dabei automatisch eine neue FHEMWEB Instanz namens "WEBweatherstation" und dem webname Attribut "weatherstation" angelegt, sofern nicht bereits eine passende Instanz gefunden werden konnte. Diese kann anschließend weiter konfiguriert (z.B. anderer Port, anderer Device Name etc.), entscheidend ist das Attribut webname exakt so beizubehalten.

Das ist bei mir auch der Fall. Ich habe eine FHEMWEB Instanz, die auf Port 8085 lauscht....


ZitatDie wurden ja vom Device (Wetterstation  /  Typ HP1000) mittels User/Passwort geholt.

Also, ich mag mich irren, aber so wie ich das Setup verstehe, holt FHEM hier nicht die Daten, sondern die Wetterstation sendet diese an FHEM, daher die neue FHEMWeb Instanz.
Mein Verständnis ist, dass FHEM hier einen Wunderground-kompatiblen Wetterserver mittels des HP1000 Moduls stellt, den man dann in der Wetterstation entsprechend konfiguriert.
Leider ist die FHEMWeb Instanz ziemlich weit 'offen', was ich gerne ändern würde.

Beste Grüsse,

SnakeZZ

MadMax-FHEM

Ah, sorry.
Kenne das Modul nicht...

Dass da eine FHEMWEB-Instanz dahinter steckt sieht man ja nicht gleich...

Aber wenn du die Instanz absicherst (allowed) muss ja die Wetterstation den richtigen User und Passwort mitgeben können, sonst klappt das ja nicht.

D.h. sonst kommt die Wetterstation ja nicht auf die FHEMWEB-Instanz...

So wie ich das lese prüft das Modul beim Empfang der Daten zwar User/Passwort hat aber (wie du ja selbst festgestellt hast) sonst wohl keine Bedeutung bzgl. Zugriff auf FHEMWEB generell...

Allerdings: wenn du schon mit User/Passwort absicherst macht es eigentl. nur Sinn mit https.

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Loredo

Die Wetterstation unterstützt kein HTTP Auth und kann sich nicht (wirklich) in irgendeiner Form am Webserver von FHEM authentifizieren. Die Absicherung mit Benutzer und Passwort, die eingebaut ist, schützt lediglich davor vermeintlich falsche Daten in das HP1000 Wettermodul einzuschleusen.

Eine Absicherung der FHEMWEB Instanz geht mit allowed, jedoch ohne HTTP Auth zu aktivieren:


defmod restrict_WEBweatherstation allowed
attr restrict_WEBweatherstation allowedCommands ,
attr restrict_WEBweatherstation allowedDevices ,
attr restrict_WEBweatherstation validFor WEBweatherstation


Damit kann man keinerlei Befehle mehr ausführen. Man sieht aber natürlich alle Devices. Wer dieses kosmetische Problem beseitigen will, kann in der FHEMWEB Instanz mit dem hiddenroom Attribut zumindest alle Navigationspunkte ausblenden. Wer den direkten Link zu einem Raum oder eines Devices kennt, kann diese jedoch natürlich trotzdem aufrufen (aber nichts steuern).
Mittels des Attributs "column" kann man dann auch noch die Bereiche und Gruppen in den Räumen unsichtbar machen.
Beide Attribute muss man aber natürlich entsprechend gut pflegen - leider unterstützen die beiden Attribute derzeit keinen Wildcard Eintrag.

Mittels eines vorgeschalteten Reverse Proxy könnte man den Zugriff noch auf die Source-IP der Wetterstation beschränken. Sowas kann FHEMWEB, respektive allowed, derzeit nicht.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

SnakeZZ

Hallo Loredo,

Vielen Dank für die Hinweise. Das werde ich dann mal umsetzen!
Ausserdem meldet meine FHEM Instanz meldet beim Starten immer

SecurityCheck:
  WEBweatherstation is not password protected

Protect this FHEM installation by configuring the allowed device allowed_WEB
You can disable this message with attr global motd none


Das könnte ich dann wenn ich dich richtig verstehe ignorieren, oder?

Beste Grüsse,

SnakeZZ