falls jemandnicht mehr auf sein FHEM kommt....

Begonnen von Frank_Huber, 31 Mai 2017, 10:42:03

Vorheriges Thema - Nächstes Thema

rudolfkoenig

ZitatSollten wir nicht lieber jede neue FHEM Instanz grundsätzlich mit einem zufälligen Passwort bei der Installation absichern?
Na so einfach geht das nicht, weil dann 60-80% der Anfaenger (die, die des Shells nicht maechtig sind) gar nicht ins System kommen. Ich bin fuer eine praktikable Alternative aber offen.

Vorschlag: allowedFrom ist in TcpServerUtils per Voreinstellung auf ^(192.168.*|127.*)$ gesetzt, wenn kein allowed Instanz (vulgo Passwort) zugeordnet ist. Bei einer abgelehnten Verbindung wird eine Meldung im Log protokolliert.

Sieht jemand damit Probleme?
Auch eine Bestaetigung von jemandem, der darueber nachgedacht hat, wuerde mir helfen.

RaspiLED

Moin,
so habe auch noch mal darüber nachgedacht und mir die ct Artikel noch einmal im Detail angelesen. 

Ich glaube die Kombination aus beiden Massnahmen wäre gut.

1) Zugriff grundsätzlich nur aus Homenetz und Localhost.

2) Ein Passwort spezifisch bei der der Installation generieren.

Zu 1) rein statisch auf 192.168. gehen zieht zu kurz. Da vielleicht einige Benutzer andere Homenetze haben.
Kann man nicht während der Installation die aktuelle lokale IP Adresse des Systems und die Netzwerkmaske auslesen und nutzen?

Zu 2) Warum kann nicht während der Erstinstallation über einen Benutzerdialog das Passwort dem Installateur genannt werden? Dann verlieren wir doch niemanden, oder? Alternativ wäre ein Zwang zum Passwort setzen beim ersten Login möglich...

Gruß Arnd


Raspi2 mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, Bravia, ...
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

Wuppi68

Zitat von: rudolfkoenig am 01 Juni 2017, 07:46:31
Na so einfach geht das nicht, weil dann 60-80% der Anfaenger (die, die des Shells nicht maechtig sind) gar nicht ins System kommen. Ich bin fuer eine praktikable Alternative aber offen.

Vorschlag: allowedFrom ist in TcpServerUtils per Voreinstellung auf ^(192.168.*|127.*)$ gesetzt, wenn kein allowed Instanz (vulgo Passwort) zugeordnet ist. Bei einer abgelehnten Verbindung wird eine Meldung im Log protokolliert.

Sieht jemand damit Probleme?
Auch eine Bestaetigung von jemandem, der darueber nachgedacht hat, wuerde mir helfen.

Hallo Rudi,

sehr guter Ansatz !!!

Ich würde aber die komplette RFC 1918 also

192.168/16
172.16/12
10/8

dazu noch den Lokal Horst und die Welt ist sicher ;-)

nehmen
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

dev0

Zitat
Vorschlag: allowedFrom ist in TcpServerUtils per Voreinstellung auf ^(192.168.*|127.*)$ gesetzt
Neben den IP Bereichen aus RFC1918, wie Wuppi68 schon schrieb, sollte man dann mMn auch die Link-Local Unicast Addressen aus RFC4291 und RFC5735 berücksichtigen, sprich: 169.254.0.0/16 und fe80::/10

rudolfkoenig

ZitatKann man nicht während der Installation die aktuelle lokale IP Adresse des Systems und die Netzwerkmaske auslesen und nutzen?
IP-Adressen auslesen ist nicht OS-unabhaengig, IP & Netzmaske zu bestimmen nicht trivial. Es gibt Computer mit mehreren Netzwerkkarten, und jede Karte kann mit etlichen Adressen konfiguriert werden.

ZitatWarum kann nicht während der Erstinstallation über einen Benutzerdialog das Passwort dem Installateur genannt werden?
Ein Passwort zu setzen ist nicht sicherer als mein Vorschlag, nur (in manchen Faellen) bequemer fuer die Benutzer.  Abgesehen davon, weiss ich nicht wie ich "Erstinstallation" in perl vormulieren soll.
Gegenvorschlag: ein allowed Device bei der Auslieferung definieren, und im FHEMWEB-Menu Links erwaehnen.

@Wuppi68/@dev0: gerne.

Muschelpuster

Also ich finde Rudis Vorschlage mit der Erweiterung um alle privaten Netze gut. Das ermöglicht wirklich eine Grundabsicherung denn diese Netze werden aus der großen weiten Welt nun mal nicht geroutet. Wenn sich jetzt jemand dran zu schaffen macht, ist der Aufwand schon deutlich höher, um ran zu kommen (wenn überhaupt möglich).
Wer das als Anfänger nun deaktivieren will muss lesen und wird damit auch etwas über die Gefahren erfahren. FHEM ist von seiner Grundkonstruktion sowieso nicht idiotensicher und soll es auch nicht sein. Ich sage nurdelete .*Da gibt es auch keine Abfrage, ob ich wirklich alle Devices löschen will und einen 2. Hinweis, dass FHEM danach nicht mehr funktionieren wird - das wird einfach gemacht.
Von daher ist die genannte Lösung ein netter Service an Einsteiger, der gut zu FHEM passt.

zustimmende Grüße
Niels
fhem @ ZBOX mit 1,6MHz Celeron, 4GB RAM & 120GB SSD mit Debian Bullseye # MiLight # Homematic via CCU3 # W&T WebIO # Rademacher DuoFern # ESPeasy # logdb@mysql # configdb@mysql # Shelly @ MQTT2 # go-eCharger mit PV-Überschussladung via DOIF

Wuppi68

delete .*

ist doch harmlos :-)

der save danach ist das gefährliche 8-)
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

WumpE

Ja wuppis Vorschlag mit der Erweiterung von dev0 sollte reichen
Über Mich: Stefan, Informatiker, Systementwicklung Prozessleittechnik
Server: NUC7i5 - Debian Docker
Container: FHEM,DEBMATIC,EMQX,NODERED,SONOS2MQTT,TRAEFIK,HOMEBRIDGE,DECONZ
Aktoren/Sensoren: HM-RF, HM-IP, EnergyCam, Shelly, MiLight, Hue, SONOS, OEG KMS-D+, Echo's, Worx
Frontends: Smartvisu 2.9

justme1968

ist der hinweis nicht in motd besser aufgehoben als im menü?
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

amenomade

Wenn wir dabei sind, FHEM sicherer zu machen, wäre m.A. nicht schlecht eine Seite "Hinweise zur Sicherheit" auf der Hauptseite vom Wiki zu verlinken. Z.B. in "Wie fang ich an?".

Inhalt (die einzelne Items existieren schon teilweise im Wiki):
- mit https + User/Passwort absichern
- mit apache oder nginx
- apiWEB Instanz
- Port Freigabe im Router (und Gefahren)
- csrf Token - warum auch im internetn Netzwerk...
- COS?
- ...

Alle Experten sind der gleiche Meinung: der Kern der IT-Sicherheit ist... das Benutzerbewusstsein.


Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

herrmannj

ich hätte noch eine zusätzliche Idee: hier wurde die fhemweb Instanz ja gelöscht um den unbekannten Benutzer einen Hinweiß zu geben. Wie wäre es ein device zu erstellen dessen Aufgabe darin besteht einem Benutzer einen grossen deutlichen Hinweiß zu geben. Zum Beispiel könnte das als großes overlay über die fhemgui erfolgen.

Sprich, wenn jemand auf shodan, oder wo auch immer, auf ein offenes fhem trifft: "set warn 'Ey Freund, Dein FHEM ist offen wie ein Scheunentor. Wenn ich Dir helfen soll dann mail mich an oder komm ins forum und lass Dir dort helfen'".

Und wenn der unbekannte Benutzer sich das nächste mal "sein FHEM" aufruft dann wird das groß, rot und prominent als overlay über seine GUI gelegt. Wer das ncht versteht dem ist dann ohnehin nict mehr zu helfen :)

vg
Joerg

Floca

Finde die Idee von herrmannj eigentlich ganz gut...

So eine Art Notfallmechanismus der Ausgelöst werden kann.

LuckyDay

Zitat von: herrmannj am 02 Juni 2017, 00:07:52
ich hätte noch eine zusätzliche Idee: hier wurde die fhemweb Instanz ja gelöscht um den unbekannten Benutzer einen Hinweiß zu geben. Wie wäre es ein device zu erstellen dessen Aufgabe darin besteht einem Benutzer einen grossen deutlichen Hinweiß zu geben. Zum Beispiel könnte das als großes overlay über die fhemgui erfolgen.

Sprich, wenn jemand auf shodan, oder wo auch immer, auf ein offenes fhem trifft: "set warn 'Ey Freund, Dein FHEM ist offen wie ein Scheunentor. Wenn ich Dir helfen soll dann mail mich an oder komm ins forum und lass Dir dort helfen'".

Und wenn der unbekannte Benutzer sich das nächste mal "sein FHEM" aufruft dann wird das groß, rot und prominent als overlay über seine GUI gelegt. Wer das ncht versteht dem ist dann ohnehin nict mehr zu helfen :)

vg
Joerg

dein Vorschlag erfordert ein Update von Fhem oder?
Naja dann wäre doch Rudis Vorschlag sinnvoller externe IP Anfragen ohne Passwort erst garnicht zulassen.

herrmannj

Natürlich. Beides. Das beschränken auf interne ip benötigt im übrigen auch ein Update

Vg
Jörg

KölnSolar

Meine laienhafte Meinung, die ich ähnlich schon im Zusammenhang mit Alexa und csrftoken geäußert habe: Das Thema Sicherheit wird in FHEM zu stiefmütterlich behandelt. Deshalb findet der Vorschlag von amenomade meine vollste Unterstützung.

Man erkennt das meines Erachtens auch wieder hier an diesem Thread.

Da schmeißen Experten mit Begrifflichkeiten um sich, wo 90% der User nur noch Bahnhof verstehen. Man kann fast auf die Idee kommen FHEM nicht zu nutzen, weil es "gefährlich" erscheint.

Was heißt offen wie ein Scheunentor ? Was ist basicauth ? Was fehlt meiner Installation, was andere haben ? RFC4711 ? .....

Ich selber habe basicauth nicht gesetzt  8) Warum ?
- ich habe schon einige Threads gesehen, wo User ihr Passwort vergessen haben  ::)
- Ich fände es nervig, wenn ich mich jedes mal lokal anmelden müsste  >:(
- und schließlich finde ich die Doku nicht wirklich verständlich
◦allowedCommands, basicAuth, basicAuthMsg
Please create these attributes for the corresponding allowed device, they are deprecated for the FHEMWEB instance from now on.


Ist mein FHEM also jetzt offen wie ein Scheunentor ? Ich denke(laienhaft) nein, denn was Dan kurz anriss: Ich komme von außen nicht auf mein FHEM(hoffe ich). Das ist doch erst einmal der beste Schutz. Denn wer böses im Schilde führt: ist für den ein Passwort das große Hindernis ?

Nun habe ich nicht jeden Post im Detail verstanden und wiederhole vermutlich in untechnischeren  Worten bereits gesagtes bei meinen Vorstellungen:
- Nach Erstinstallation von FHEM lässt sich NUR lokal zugreifen. Unabhängig von vielleicht falschen Routereinstellungen. Wie man das technisch realisieren kann, weiß ich nicht. Ist vielleicht genau das, was Rudi vorschlug.
- Wer nun trotzdem meint unbedingt von außen zugreifen zu müssen, der braucht:
  - eine viiiiieeeeel bessere Doku zu diesem Thema(da reicht dann eine commandref, Forumsuche.... nicht mehr aus)
  - mehrstufige "fette" Warnhinweise, Dokuverweise
  - hier dann tatsächlich Zwang zu Zugriff NUR mit User/Passwort, aus meiner Sicht(s.o.) aber NUR für den externen Zugriff
  - vielleicht sogar nur über VPN möglich(technisch in FHEM umsetzbar ?)
  -
Und schließlich: An welcher "Stelle" wird das Thema Security von FHEM in FHEM eigentlich behandelt ? Ich bin ein GUI-Banause und kenne außer FHEMWEB keine andere GUI. Setzen die alle auf FHEMWEB auf  und sind daher automatisch entsprechend geschützt/ungeschützt ? Müsste es nicht ein separates device oder wenigstens ein global-Attribut geben, wo man entsprechende Einstellungen macht ? Für technisch versierte vielleicht nicht das Thema, aber der Normaluser denkt sich doch gar nicht viel bei einem device FHEMWEB bzw. wenn er über Sicherheit nachdenkt, sucht er dann nicht in der commandref nach einem device security oder ähnlich, der 2. Gedanke dann an global....

Grüße Markus
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt