Eingeschränkter Nutzer: Zwei verschiedene FHEM-Webs oder?

Begonnen von curt, 29 Juli 2020, 05:31:25

Vorheriges Thema - Nächstes Thema

Wernieman

Ich weiß, das ich den Angriff von Innen nicht berücksichtigt habe. Aber hier ging es um einen Zugriff von Außen ....

Und ja, ich habe beruflich damit zu tuen. Trotzdem werde ich in Sozialen Medien für Normaluser nicht detailliert schreiben. Die meisten verstehen es nicht.

Ansonsten gut von Dir geschrieben ... auch wenn Du Dich widersprichst:
"Außer SSH lässt der exakt nichts rein" ... "Die Ausnahme sind zwei Tunnel" ... also Doch mehr als SSH ;o)

Aber jetzt ist Wochenende ...
- 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

curt

#31
Zitat von: Wernieman am 01 August 2020, 12:15:13
Ich weiß, das ich den Angriff von Innen nicht berücksichtigt habe. Aber hier ging es um einen Zugriff von Außen ....

Und ich dachte, es ginge um Systemsicherheit?

Zitat von: Wernieman am 01 August 2020, 12:15:13
Und ja, ich habe beruflich damit zu tuen.

Das passt ja gut - ich auch.

Zitat von: Wernieman am 01 August 2020, 12:15:13
Ansonsten gut von Dir geschrieben ... auch wenn Du Dich widersprichst:
"Außer SSH lässt der exakt nichts rein" ... "Die Ausnahme sind zwei Tunnel" ... also Doch mehr als SSH ;o)

Ich verstehe die Aussage nicht. Es ist nun mal der erste Schritt, dass man genau weiß was man zulässt - und das auch überwacht.

Da sehe ich eine Fritzbox, auf der zig Dienste laufen als deutlich kritischer.

Zitat von: Wernieman am 01 August 2020, 12:15:13
Aber jetzt ist Wochenende ...

Ich wünsche ein schönes solches.

P.S: Zitatebene korrigiert.
RPI 4 - Jeelink HomeMatic Z-Wave

rudolfkoenig

ZitatEinziger, schon mit Rudolf diskutierter Makel: Es gibt kein access.log im Common-Format.


Ich habe jetzt die FHEMWEB logDevice und logFormat Attribute hinzugefuegt:

ZitatlogDevice fileLogName
Name of the FileLog instance, which is used to log each FHEMWEB access. To avoid writing wrong lines to this file, the FileLog regexp should be set to <WebName>:Log

logFormat ...
Default is the Apache common Format (%h %l %u %t "%r" %>s %b). Currently only these "short" place holders are replaced. Additionally, each HTTP Header X can be accessed via %{X}

curt

Zitat
logDevice fileLogName
Name of the FileLog instance, which is used to log each FHEMWEB access. To avoid writing wrong lines to this file, the FileLog regexp should be set to <WebName>:Log

Kannst Du diesen Teil, ggf. am konkreten Beispiel, bitte genauer erläutern?

Mir ist unklar, was da konkret zu stehen hat. Und setzt das ein bestehendes Logfile für die FHEMWEB-Device voraus?
RPI 4 - Jeelink HomeMatic Z-Wave

rudolfkoenig

ZitatKannst Du diesen Teil, ggf. am konkreten Beispiel, bitte genauer erläutern?

Fuer die "Copy&Paste, will jetzt nicht lesen und experimentieren" Fraktion:

define webCustomLog FileLog ./log/webCustom.log WEB:Log
attr WEB logDevice webCustomLog

curt

Lieber Rudolf,
sehr herzlichen Dank: Issjamangeil!

Zitat von: rudolfkoenig am 04 August 2020, 09:06:39
Fuer die "Copy&Paste, will jetzt nicht lesen und experimentieren" Fraktion:

Der Pickser rauscht an mir vorbei ... jeder Mensch lernt halt anders. Und offen gesagt hätte ich das (mit der gegebenen Beschreibung) nie hinbekommen. Auch nach Tagen nicht.

Ich habe mal ganz kurz mit LogFormat rumgespielt: Das ist nicht das mir vertraute Apache2-Format (mit Backslash und Anführungszeichen und "i"). Aber das kriegt man mir kurzem Blick auf das Log ja schnell raus, kein Problem.

Eins fiel mir bei meinen ersten Spielereien auf, ich schaue Dich mit meinem treuen Dackelblick an:

%{Via}
%{X-Forwarded-For}


Die sind beide putt. Wäre es sehr aufwändig, die noch zu implementieren?

Eine Frage noch am Rande, das fiel mir ganz zufällig auf:


.httpAuthHeader
HTTP/1.1 401 Authorization Required
WWW-Authenticate: Basic realm="FHEM: login required"


Ich bin nun nicht der Macher von shodan.io - würde aber schon vermuten wollen, dass die dortige Suchanfrage nach "FHEM" sich genau den Basic realm greift - und damit tonnenweise FHEM-Installationen offenlegt. Reine Theorie: Es ist ja Wurscht, was da vor dem Doppelpunkt steht, das könnst Du für jede Installation auch nach Wörterbuch auswürfeln, beispielsweise.

Nur mal als fixe Idee: Wie wäre es denn, wenn man den String nach "Basic realm=", also der Teil, in dem jetzt "FHEM" steht, konfigurierbar macht? Ich könnte das dann "TanteErna" nennen ...

Damit wir uns aber nicht vertun und meine kleinen Anmerkungen falsch verstanden werden: Danke Rudolf!
RPI 4 - Jeelink HomeMatic Z-Wave

rudolfkoenig

ZitatWie wäre es denn, wenn man den String nach "Basic realm=", also der Teil, in dem jetzt "FHEM" steht, konfigurierbar macht?
Siehe "attr allowed basicAuthMsg". Ich habe jetzt FHEM: in der Voreinstellung entfernt.

Zitat%{Via}
%{X-Forwarded-For}
Die sind beide putt. Wäre es sehr aufwändig, die noch zu implementieren?
Falls diese Daten nicht aus dem HTTP-Header kommen, dann brauche ich Hinweise, wie man an sie rankommt.
Habe die Funktion geaendert, damit alle nicht gefundene oder unbekannte %NAME oder %{NAME} Elemente als - zurueckgeliefert werden.

rudolfkoenig

ZitatDas ist nicht das mir vertraute Apache2-Format (mit Backslash und Anführungszeichen und "i")
Den Backslash finde ich uebertrieben, Apache macht es nur, weil da die Syntax es erfordert. Ich wuerde es ungern implementieren, es resultiert nur in eine Menge von zusaetzlichen Fehlermoeglichkeiten, ohne sichtbares Nutzen.

Das i habe ich in der Apache Doku uebersehen, und habe es jetzt in FHEMWEBs logFormat angepasst: Header Elemente sind ab sofort per %{X}i zu holen.

curt

Zitat von: rudolfkoenig am 05 August 2020, 07:44:43
Zitat%{Via}
%{X-Forwarded-For}
Die sind beide putt. Wäre es sehr aufwändig, die noch zu implementieren?

Falls diese Daten nicht aus dem HTTP-Header kommen, dann brauche ich Hinweise, wie man an sie rankommt.

Kommen aus dem Header. Via ist in RFC7230 [¹], %{X-Forwarded-For} ist ein defacto-Standard [²].

Zitat von: rudolfkoenig am 05 August 2020, 07:44:43
Habe die Funktion geaendert, damit alle nicht gefundene oder unbekannte %NAME oder %{NAME} Elemente als - zurueckgeliefert werden.

Zitat von: rudolfkoenig am 05 August 2020, 07:59:55
Den Backslash finde ich uebertrieben, Apache macht es nur, weil da die Syntax es erfordert.

Ja, das klingt überzeugend.

Zitat von: rudolfkoenig am 05 August 2020, 07:59:55
Das i habe ich in der Apache Doku uebersehen, und habe es jetzt in FHEMWEBs logFormat angepasst: Header Elemente sind ab sofort per %{X}i zu holen.

Das (und Basic realm): Da muss ich das Update abwarten.

[¹] https://tools.ietf.org/html/rfc7230#section-5.7.1
[²] https://de.wikipedia.org/wiki/X-Forwarded-For
RPI 4 - Jeelink HomeMatic Z-Wave

curt

Zitat von: rudolfkoenig am 05 August 2020, 07:44:43
Siehe "attr allowed basicAuthMsg". Ich habe jetzt FHEM: in der Voreinstellung entfernt.

Ganz kurz (!) getestet - und gescheitert.

Basis: Nokia 7+ (Android-One, Android-10, Patchlevel 1.Juli 2020)

In FHEM basicAuthMsg mit Wert gefüllt, das Folgende in fhem.cfg vorgefunden:

> define allowed_WEBphone allowed
> setuuid allowed_WEBphone xxxxxxxxx
> attr allowed_WEBphone basicAuthMsg Fe1v
> attr allowed_WEBphone validFor WEBphone


Ergebnis ist, dass sich Opera-mini strikt weigert, mich auch nur bis zu dem Punkt "Deine Verschlüsselung ist nicht sicher" zu führen.

Ich schreibe diesen Beitrag ohne jeden Anspruch, nur für "wer schreibt, der bleibt". Leider habe ich in diesem Moment keine Zeit, mir die Sache genauer anzusehen.
RPI 4 - Jeelink HomeMatic Z-Wave