Kein Zugriff auf FHEM übers Internet

Begonnen von Bastian123, 26 November 2017, 09:30:21

Vorheriges Thema - Nächstes Thema

claas

Hallo zusammen,

ich stand vor dem selben Problem.
ich will nur lesend auf meine FHEM Installation zugreifen. Ich hab noch nichtmal "Schalter" aktiv, sondern logge ausschliesslich Temperaturen und Luftfeuchte.
Und ganz ehrlich: Die verlinkten Threads helfen nicht wirklich da es dort um das Absetzen von Befehlen und Auslesen von csrf-tokens  per cURL geht. Das brauch ich IMHO nicht, da ich keine Module programmiere.
Das Wiki hilft auch nur bedingt, da dort nur Snippets stehen und dann auch noch auf die Commandref verweist, die auch nicht sehr verständlich in dem Bereich ist.

Daher wäre es echt nett, wenn jemand ein Beispiel hätte, wie man FHEMWEB so konfiguriert, dass es zum lesenden Zugriff abgesichert von aussen erreichbar ist.
Ich hab mir jetzt mit der Brute-Force-Methode basic-auth im FHEMWEB beholfen (auch wenn ich gefunden habe, dass das nicht so sein "sollte").

Danke

Wernieman

Stichwort:
Apache/NGinx-Proxy ... und da findest Du genug Infos darüber.

Sorry, aber ich werde jetzt mir nicht die Zeit nehmen, die 101-Doku zu schreiben ...

Edit:
Ob Du schalten willst oder nicht, ist bei Zugriff FHEM irrelevant, da Du über Web auch FHEM konfigurieren kannst. z.B. perl-Scripte absetzen. Es gibt genug Leute, die sich "darüber" freuen .... und diese sind "nicht nett".
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Amenophis86

#17
Dann sag mir bitte was du an der Erklärung in der CommandRef zum Thema allowed (https://fhem.de/commandref_DE.html#allowed) nicht verstehst. Was hast du versucht bisher wie versucht und was waren die Fehler, welche es gab?

Edit:
Rechtschreibkorrektur
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

claas

Danke für die Hilfe.

ZitatDann sag mir bitte was du an der Erklärung in der CommandRef zum Thema allowed (https://fhem.de/commandref_DE.html#allowed) nicht verstehst.

Was ist "allowedWEB"?

ZitatWas hast du versucht bisher wie versucht und was waren die Fehler, welche es gab?

Im Device "WEB" csrf token auf "none" setzen. Ergebnis: Kein Zugriff von aussen
Im Device "WEB" einen csrf token explizit setzen und den an die URL anhängen (per /fhem?&fwcsrf=meintoken). Ergebnis: Kein Zugriff von aussen

Amenophis86

#19
allowedWEB = Streiche das WEB und lies den Link, welchen ich dazu geschrieben habe. Da erklärt sich alles. Ausführlicher wird es nochmal hier erklärt, was auch schon im Thema verlinkt wurde: https://forum.fhem.de/index.php/topic,72717.msg643211.html#msg643211

Mit csrf Token hat es NICHTS zu tun und ist auch in KEINEM der hier genannten Hilfen irgendwo mal aufgetaucht. 

Edit:
Wenn du die CommandRef liest, dann steht allowedWEB da für das zu setzenden Attribut. Und wenn du die Technik von FHEM kennst und verstehst, dann weißt du, dass nach attr der Devicename kommt. Somit könnte allowedWEB auch allowedPENISNASE heißen. Um aber eine bessere Zuordnung zu haben kann man es allowedWEB nennen, dass es für die FHEMWEB Instanz gilt, welche sich WEB nennt. Sry, aber da bleibt mir nur auf die Grundlagen von FHEM hinzuweisen und dir zu empfehlen diese nochmal(?) zu lesen.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

claas

Vielen Dank für die Erklärung.
Da muss man erstmal drauf kommen, dass man ein "Gerät" anlegen muss, um ein Attribut zu setzen, das für andere Geräte gilt.

Intuitiv ist anders, sorry.

Vor allem, das hier aus der commandref
ZitatAuthorisiert das Ausführen von Kommandos oder das Ändern von Geräten
hat mich nicht drauf kommen lassen, dass allowed kein Attribut sondern ein "Gerät" ist.

Ich denke, dass ich das jetzt verstanden habe und werde das heute Abend (aus dem lokalen Netz :-) ) mal ausprobieren.

herrmannj

Bitte mach dir sehr, sehr klar das es ein sehr hohes Risiko beinhaltet fhem über das Internet erreichbar zu machen.

Wer das Gefühl hat er kann das beherrschen ("nur lesend" und co) dem empfehle ich dringend: hinsetzen und abwarten bis das Gefühl vorbei ist!

claas

Hallo Herrmann,

danke für die Warnung.
Aber worin besteht das Risiko, wenn das einzige, was mein fhem tut, das Loggen von Temperaturen und Luftfeuchten ist?


Otto123

#23
Hallo Claas,

das Risiko ist nicht das was FHEM in Deiner Konfiguration für Dich tut. Das Risiko ist FHEM an sich und das System auf dem es läuft und derjenige der das Ganze betreibt.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

claas

Hallo Otto,

sorry, ich versteh es nicht.
FHEM läuft bei mir auf einer Synology.
Ich nutze den in FHEM eingebauten Webserver.
Könnte ein Angreifer über FHEM auf andere Bereiche meiner Synology zugreifen?


MadMax-FHEM

Zitat von: claas am 28 November 2017, 17:22:08
Hallo Herrmann,

danke für die Warnung.
Aber worin besteht das Risiko, wenn das einzige, was mein fhem tut, das Loggen von Temperaturen und Luftfeuchten ist?

Indirekt hier (noch mal): https://forum.fhem.de/index.php/topic,80140.msg722028.html#msg722028

Und direkt hier (noch mal):  https://forum.fhem.de/index.php/topic,72629.0.html

Und das sind dann die bereits genannten "nicht freundlichen Zeitgenossen"...

Wie Otto (und viele andere) bereits geschrieben hat/haben: nur weil DU "nur" lesend mit deinem fhem "umgehst" heißt das nicht, dass das ANDERE auch tun...
...sobald ein Gerät angelegt ist und du Daten loggen kannst (und tust) kannst du oder jeder andere (der auf dein offenes fhem [denn das war es sonst hättest du durch die Umstellung kein Problem] kommt) eben auch diese Geräte steuern...

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)

CoolTux

Außerdem kann Perlcode angelegt werden womit man aus dem FHEM System ausbrechen kann und im einfachsten Sinne mit Rechten des Users in welchen Kontext FHEM läuft Dinge auf der NAS machen kann.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

claas

Hallo Joachim,

danke. Fast verstanden. Ich versteh ja, dass wenn man Heizung etc. über FHEM regelt, man da keinen Einbrecher haben will, aber meine Geräte sind nur Sensoren.
Was soll ein Angreifer da steuern? Schlimmstenfalls die config und meine mühsam gebauten Plots zerschiessen, oder?
Ich schalte nichts (meine EDIMAX Schaltdose ist Kernschrott, daher liegt die im Schrank ;-) ).

Ach so, BTW:

Danke für eure Hilfe und Erklärungen zu "allowed".
Ich hab das jetzt so gemacht

define ApiWEB FHEMWEB andererPORT global
attr ApiWEB stylesheetPrefix ios6
attr ApiWEB hiddenroom Alle_die_man_nicht_sehen_muss_von_aussen

define allowedApiWEB allowed
attr allowedApiWEB validFor ApiWEB
attr allowedApiWEB basicAuth { "$user:$password" eq "username:pw" }
attr allowedApiWEB allowedCommands get


Wenn ich nun über das Internet verbinde, werde ich nach User und PW gefragt, ich sehe nur noch einen Raum (ich weiss, per URL komme ich auf andere) und "edit files" liefert eine leere Seite.
Nun versuche ich noch SSL einzuschalten.


Otto123

Zitat von: claas am 28 November 2017, 17:41:30
Könnte ein Angreifer über FHEM auf andere Bereiche meiner Synology zugreifen?
Ja
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

claas

Ok, das ist ein Argument.

Läuft bei mir als user "fhem", der zur Gruppe "users" gehört und keinen Zugriff auf die Standard-Syno-Ordner (also, die die man im DSM sieht) hat.
Kann man mit dem user per Perl auf Systemordner zugreifen?

Wie kann ich das System weiter schützen?
Ist Reverse-Proxy das richtige Stichwort?
Hat das schonmal jemand auf einer Syno mit fhem eingerichtet?