Autor Thema: OT? - Absicherung FHEM WEBweatherstation Instanz für HP1000 Modul  (Gelesen 353 mal)

Offline SnakeZZ

  • New Member
  • *
  • Beiträge: 47
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

Online MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 4073
  • NIVEAu ist keine Creme...
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 5.8 PI3: HM-CFG-USB, 40x HM, ZWave-USB, 6x ZWave, EnOcean-PI, 3x EnOcean, DashButtons, CO2, ESP-Multisensor, FireTV, NanoLeaf, ...
FHEM 5.8 PI2: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, KODI, ha-bridge, ...
FHEM 5.8 PI3 (Test): HM-MOD-PCB, Alexa (alexa-fhem), Google Home

Offline SnakeZZ

  • New Member
  • *
  • Beiträge: 47
Hallo Joachim,

vielen Dank für deine Antwort.

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:

Zitat
define 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....


Zitat
Die 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

Online MadMax-FHEM

  • Hero Member
  • *****
  • Beiträge: 4073
  • NIVEAu ist keine Creme...
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 5.8 PI3: HM-CFG-USB, 40x HM, ZWave-USB, 6x ZWave, EnOcean-PI, 3x EnOcean, DashButtons, CO2, ESP-Multisensor, FireTV, NanoLeaf, ...
FHEM 5.8 PI2: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, KODI, ha-bridge, ...
FHEM 5.8 PI3 (Test): HM-MOD-PCB, Alexa (alexa-fhem), Google Home

Offline Loredo

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2912
  • ~ Challenging Innovation ~
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.
« Letzte Änderung: 08 April 2018, 12:54:26 von Loredo »
FHEM-Module: ENIGMA2, GEOFANCY, ONKYO_AVR, PHTV, RESIDENTS, ROOMMATE, GUEST, HP1000, Pushover, THINKINGCLEANER, Wunderground | FHEM-Befehl: msg

Docker-FHEM 5.10dev auf Intel NUC mit Proxmox VE
Homematic via HMCCU, Hue Color Bulbs, LG OLED 65C8, Sonos Playbar+2xOne+Sub, 2x Sonos One, 1x Sonos Play:1

Offline SnakeZZ

  • New Member
  • *
  • Beiträge: 47
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

 

decade-submarginal