allowed - Welche Konfiguration notwendig für Full Access bei Multi-User Setup?

Begonnen von cmonty14, 07 Mai 2019, 09:48:44

Vorheriges Thema - Nächstes Thema

cmonty14

Hallo,

ich habe 2 Benutzer angelegt mit
define admin allowed
attr admin validFor WEB
attr admin basicAuth { "$user":"$password" eq "admin":"<secret>" }
attr admin allowedCommands *

define user allowed
attr user validFor WEB
attr user basicAuth { "$user":"$password" eq "fhem":"<secret>" }
attr user allowedCommands get,set


Die Annahme war, dass der Benutzer admin alle Befehle ausführen darf.
Dies ist aber nicht so.

Frage:
Welche Konfiguration ist notwendig, damit admin vollständige Berechtigung bekommt?

THX

marvin78


Otto123

Hi,

ergänzend zu marvins Vorschlag: Ein Blick in die Doku:
ZitatallowedCommands
A comma separated list of commands allowed from the matching frontend (see validFor).
If set to an empty list , (i.e. comma only) then no comands are allowed. If set to get,set, then only a "regular" usage is allowed via set and get, but changing any configuration is forbidden.
Sterne sind da nicht sinnvoll:)

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

cmonty14

Ich habe die Konfiguration von allowed modifiziert:
define admin allowed
setuuid admin 5cd07e78-f33f-a13d-ac71-574c44a1641d2db0
attr admin basicAuth SHA256:11E96F3B:BbPXVzVh8FgIxj75ycXrH9u
attr admin room Einstellungen
attr admin validFor WEB
define user allowed
setuuid user 5cd07f09-f33f-a13d-f76c-0d866ce00770e976
attr user allowedCommands get,set
attr user basicAuth SHA256:2D370CFD:ZNY/aAgIcjzeRZvgDHKsSN1
attr user room Einstellungen
attr user validFor WEB

Jetzt erhalte ich diese Fehlermeldung (im Log) beim Versuch, eine Modifikation zu speichern:
2019.05.07 18:31:03 3: Forbidden command save for WEB_192.168.1.28_32324

Otto123

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

Frank_Huber


cmonty14

Es sieht für mich danach aus, als ob ein Passwort mit Sonderzeichen (: oder %) Probleme bereitet.
Ich verwende einen Passwort-Generator und generiere damit komplexe Passwörter.

Kann ich auch auf CLI ein Passwort generieren und dieses dann in der fhem.cfg als
attr admin basicAuth SHA256:<encoded password>
eintragen?

cmonty14

Nun verwende ich diese Konfiguration:
define admin allowed
setuuid admin 5cd1f4f5-f33f-a13d-be39-966d5fa94a1aa599
attr admin basicAuth SHA256:2E4EAF70:pa7j7xgwwyFbmQ/86akoY7K
attr admin room Einstellungen
attr admin validFor WEB


Ich finde diese Meldung im Log nachdem ich mich als admin angemeldet habe:
2019.05.08 20:22:13 3: Forbidden command perl for WEB_192.168.1.28_62396
2019.05.08 20:22:13 1: stacktrace:
2019.05.08 20:22:13 1:     main::allowed_Authorize             called by fhem.pl (3717)
2019.05.08 20:22:13 1:     main::CallFn                        called by fhem.pl (5530)
2019.05.08 20:22:13 1:     main::Authorized                    called by fhem.pl (1101)
2019.05.08 20:22:13 1:     main::AnalyzePerlCommand            called by fhem.pl (1157)
2019.05.08 20:22:13 1:     main::AnalyzeCommand                called by fhem.pl (1086)
2019.05.08 20:22:13 1:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (2667)
2019.05.08 20:22:13 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (897)
2019.05.08 20:22:13 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (567)
2019.05.08 20:22:13 1:     main::FW_Read                       called by fhem.pl (3717)
2019.05.08 20:22:13 1:     main::CallFn                        called by fhem.pl (749)
2019.05.08 20:22:40 3: Forbidden command rereadcfg for WEB_192.168.1.28_62394
2019.05.08 20:22:40 1: stacktrace:
2019.05.08 20:22:40 1:     main::allowed_Authorize             called by fhem.pl (3717)
2019.05.08 20:22:40 1:     main::CallFn                        called by fhem.pl (5530)
2019.05.08 20:22:40 1:     main::Authorized                    called by fhem.pl (1221)
2019.05.08 20:22:40 1:     main::AnalyzeCommand                called by fhem.pl (1086)
2019.05.08 20:22:40 1:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (2667)
2019.05.08 20:22:40 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (940)
2019.05.08 20:22:40 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (567)
2019.05.08 20:22:40 1:     main::FW_Read                       called by fhem.pl (3717)
2019.05.08 20:22:40 1:     main::CallFn                        called by fhem.pl (749)

Wernieman

Du solltest Dein Passwort ändern. Obiges Passwort ist relativ einfach zu encodieren .. und damit weiß das Web Dein Passwort
- 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

rudolfkoenig

ZitatObiges Passwort ist relativ einfach zu encodieren .. und damit weiß das Web Dein Passwort
Ich gehe immer noch davon auss, dass SHA256 sicher ist.
Genau fuer solche "Unfaelle" habe ich es eingebaut.

ZitatIch finde diese Meldung im Log nachdem ich mich als admin angemeldet habe:
Da ich kein alleowedCommand sehe: hast du das Attribut entfernt?
Was war vorher gesetzt?
Kommt das Problem auch nach einem FHEM Neustart?

cmonty14

#10
Zitat von: rudolfkoenig am 08 Mai 2019, 23:09:07
Ich gehe immer noch davon auss, dass SHA256 sicher ist.
Genau fuer solche "Unfaelle" habe ich es eingebaut.
Da ich kein alleowedCommand sehe: hast du das Attribut entfernt?
Was war vorher gesetzt?
Kommt das Problem auch nach einem FHEM Neustart?

Das in meinem Posting angegebene Passwort ist gekürzt; aus Sicherheitsbedenken poste ich niemals mein Passwort, weder decoded noch encoded.

Ja, ich habe das Attribut allowedCommands gelöscht, weil hier im Thread dazu instruiert wurde, d.h. wenn ich einen Benutzer mit Full Access haben möchte, dann soll dieses Attribut gelöscht werden.

Kann ich das Passwort mit Sonderzeichen in der CLI encoded generieren; ich habe den Eindruck, dass dies über die WebUI fehlschlägt.
Oder funktioniert dieser Befehl:
set admin basicAuth admin "<passwort_mit_sonderzeichen"

Zusammengefasst gibt es 2 Probleme:

  • Anlegen eines Benutzers admin mit Full Access (der alle Befehle ausführen kann)
  • Erstellen eines Passworts mit Sonderzeichen

Wernieman

#11
@rudolfkoenig

Bezüglich Passwort:
Stimmt .. das hatte ich jetzt übersehen ... trotzdem sollte man ein Passwort nicht posten .. egal wie ;o)

@cmonty14
Das war nur aus Deinem posting nicht ersichtlich. Ich werde immer eine solche Bemerkung schreiben, wenn ich so etwas sehe ;o)

"Nichts für ungut"
- 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

rudolfkoenig

 
ZitatAnlegen eines Benutzers admin mit Full Access (der alle Befehle ausführen kann)
In der zugeordneten allowed Instanz kein allowedCommands setzen, oder alle Befehle einzeln auffuehren, d.h. alle bekannten FHEM-Befehle + perl und shell
ZitatErstellen eines Passworts mit Sonderzeichen
Meines Wissens gibt es damit keine Probleme, bis jemand mir mit einem Beispiel das Gegenteil beweist.

Otto123

#13
Zitat von: cmonty14 am 09 Mai 2019, 00:28:33
Oder funktioniert dieser Befehl:
set admin basicAuth admin "<passwort_mit_sonderzeichen"

Zusammengefasst gibt es 2 Probleme:

  • Anlegen eines Benutzers admin mit Full Access (der alle Befehle ausführen kann)
  • Erstellen eines Passworts mit Sonderzeichen
Hi,

ich habe das bei gerade nochmal probiert:
set allowedOTTO basicauth otto *#?§$%&
Die gesamte Raw DEF, ungekürzt und ohne fake. Kann man so direkt verwenden und testen.
defmod allowedOTTO allowed
attr allowedOTTO basicAuth SHA256:1F2DBB3C:y0Wgv9kKNJD8RzhONB9oT6nVMVdClv96Ajr57Nj1QCI
attr allowedOTTO validFor WEBfest
defmod WEBfest FHEMWEB 8089 global
attr WEBfest stylesheetPrefix f18
Der Benutzer otto kann sich anmelden und FHEM normal und komplett bedienen.

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

cmonty14

Ich habe die Schritte zum Anlegen der Benutzer nochmals neu gestartet nachdem ich die vorige Konfiguration gelöscht habe.

Hier die genaue Vorgehensweise:

  • define allowed_admin allowed
  • set allowed_admin basicAuth admin <password>
  • über WebUI das Attribut room Einstellungen definiert
  • über WebUI das Attribut validFor WEB definiert

Danach muss beim Aufruf der WebUI eine Authentifizierung mit admin + <password> erfolgen.
Das bedeutet, das (komplexe) Passwort mit Sonderzeichen funktioniert.
Es gibt allerdings 1 Einschränkung: das Passwort darf keinen Doppelpunkt enthalten.

Jetzt lege ich einen weiteren Benutzer wie folgt an:

  • define allowed_fhem allowed
  • set allowed_fhem basicAuth fhem <password>
  • über WebUI das Attribut room Einstellungen definiert
  • über WebUI das Attribut validFor WEB,WEBphone,WEBtablet definiert
  • über WebUI das Attribut allowedCommands get,set,help,show definiert

Unmittelbar nach der Definition des Attributs allowedCommands kann ich die Konfiguration nicht mehr speichern; diese Meldungen werden im Log angezeit:
2019.05.09 11:48:14 3: Forbidden command save for WEB_192.168.1.20_56663                                                          2019.05.09 11:48:14 1: stacktrace:
2019.05.09 11:48:14 1:     main::allowed_Authorize             called by fhem.pl (3717)
2019.05.09 11:48:14 1:     main::CallFn                        called by fhem.pl (5530)
2019.05.09 11:48:14 1:     main::Authorized                    called by fhem.pl (1221)
2019.05.09 11:48:14 1:     main::AnalyzeCommand                called by fhem.pl (1086)
2019.05.09 11:48:14 1:     main::AnalyzeCommandChain           called by ./FHEM/01_FHEMWEB.pm (2667)
2019.05.09 11:48:14 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (897)
2019.05.09 11:48:14 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (567)
2019.05.09 11:48:14 1:     main::FW_Read                       called by fhem.pl (3717)
2019.05.09 11:48:14 1:     main::CallFn                        called by fhem.pl (749)


Sobald ich das diese Zeile
attr allowed_fhem allowedCommands get,set,help,show
in /opt/fhem/fhem.cfg auskommentiere und den Service fhem restarte funktioniert das Sichern von Änderungen wieder.

Allerdings hat dann der Benutzer fhem volle Berechtigung.