Webfront verriegeln / Passwort

Begonnen von KA2013, 04 Februar 2013, 17:32:20

Vorheriges Thema - Nächstes Thema

KA2013

Hallo zusammen,
ich möchte mein Webfront ins Netz weiterleiten via Portforwarding. Nur, gibts eine Möglichkeit das Webfront mit Passwort zu versehen damit mir nicht jeder das Licht aus und anmachen kann?
Gruß
Kai

Dirk

Hi KA2013,

zum Beispiel so:
attr WEB basicAuth { "$user:$password" eq "admin:secret" }
Siehe: http://fhem.de/commandref.html#FHEMWEB

Gruß
Dirk

KA2013

Trag ich das in die cfg ein???

Ich bin hier noch recht neu und hab da noch nicht so den wahnsinns durchblick was ich wo reinpacken muss, mit IPS wüsste ich es blind!
Daher sorry für die doofe Frage!

Puschel74

Hallo,

ja, in die fhem.cfg als attr unter das define WEB ....

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Zrrronggg!

Hm.


Ich muss zugeben, ICH verstehe die Commandref da nicht.

Was bei mir aber geht ist der erste Teil, der da lautet:

Zitatrequest a username/password authentication for access. You have to set the basicAuth attribute to the Base64 encoded value of <user>:<password>, e.g.:
# Calculate first the encoded string with the commandline program
$ echo -n fhemuser:secret | base64
ZmhlbXVzZXI6c2VjcmV0
fhem.cfg:
attr WEB basicAuth ZmhlbXVzZXI6c2VjcmV0

Das habe ich konkret so gemacht:

MeinNutzer:Meinpasswort (nach belieben festlegen) als kompletten String inc Doppelpunkt hier eingeben:

http://www.patshaping.de/projekte/kleinkram/base64.php
Codieren drücken.

Das Resultat sieht dann z.b. so aus:

TnV0emVyOlBhc3N3b3J0
(natürlich kann jede andere Methode zum Base64 coding verwendet werden, war für mich das einfachste)


Das dann unter die Definition der WEBgui (heisst bei mir auch "WEBgui") als Attr eintragen:

attr WEBgui basicAuth TnV0emVyOlBhc3N3b3J0

Fertich.




Diesen Teil der command.ref:

ZitatIf the argument of basicAuth is enclosed in {}, then it will be evaluated, and the $user and $password variable
will be set to the values entered. If the return value is true, then the password will be accepted. Example:
attr WEB basicAuth { "$user:$password" eq "admin:secret" }

Hingegen verstehe ich nicht (was meint "evaluated" hier genau?) und kriege ich auch nicht zum fliegen.
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

Dirk

ZitatHingegen verstehe ich nicht (was meint "evaluated" hier genau?) und kriege ich auch nicht zum fliegen.
Das Bedeuted, daß der Inhalt zwischen {} Perl Code ist, und von Perl interpretiert wird. Das Ergebniss was dort steht muss "Wahr" zurück geben damit man "reingelassen" wird.

Trage einfach das aus dem Beispiel ein.attr WEB basicAuth { "$user:$password" eq "admin:secret" }admin:secret ersetzt du durch deinen_usernamen:dein_passwort

Gruß
Dirk

Zrrronggg!

ZitatTrage einfach das aus dem Beispiel ein.
attr WEB basicAuth { "$user:$password" eq "admin:secret" }
admin:secret ersetzt du durch deinen_usernamen:dein_passwort

Ja, das hab ich ja gemacht und es funktionierte nicht.
Ich habe mehrere Kominationen getestet, am Ende beides "123"... geht einfach nicht, es kommt immer die Meldung im Browser, Username oder PW sei falsch.
Die Methode mit Base64 hingegen klappte sofort.

Also für mich ist das gelöst, mich interessiert höchstens Akademisch, warum das nicht ging. Vielleicht haben andere das selbe Problem.

FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

rudolfkoenig

Bei mir tut:

define WEB FHEMWEB 8083 global
attr WEB basicAuth { "$user:$password" eq "Hallo:Leute" }


Bitte Fehlermeldungen immer konkret mit Definitionen belegen, sonst glaubt es keiner (oder anders: es kann keiner nachvollziehen).

Rohan

Hmmm...

gerade das hier mal zum Anlass genommen mein FHEM abzusichern und in die fhem.cfg direkt unterhalb von

define WEB FHEMWEB 8083 global

folgendes (1:1, also Real-Text ähm Test ;) ist also in 1 Minute auf andere Werte gesetzt) eingetragen:

attr WEB basicAuth { "$user:$password" eq "12345678:12345678" }

Dann die "fhem.cfg gesavet", anschließend "shutdown restart" + <Enter> gemacht und ...

... er fragt mich nach Username und Passwort, ich gebe für beides 12345678 ein und ... Bingo ... ;)

Grüßle
Thomas
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Zrrronggg!

Konkret war das Problem folgendes:

define WebGUI FHEMWEB 9097 global
attr WebGUI basicAuth TnV0emVyOlBhc3N3b3J0


restart
geht.


define WebGUI FHEMWEB 9097 global
attr WebGUI basicAuth { "$user:$password" eq "123:123" }


restart
geht nicht.

"Geht nicht" heisst, dass Safari beim Aufrufen der Webseite und nach Abfrage von User und PW als Meldung zurück gibt, User oder PW sei falsch.

Ich verwende sonst ne Menge perl in der cfg und das geht auch immer.

Da es bei Anderen prinzipiell zu gehen... ah...
... moment.

Seit wann sollte das gehen?  Ich verwende noch 5.2...
FHEM auf Linkstation Mini, CUL 868 SlowRF, 2xCUL 868 RFR, CUL 433 für IT, 2xHMLAN-Configurator mit VCCU, ITV-100 Repeater, Sender und Aktoren von FHT, FS20, S300, HM, IT, RSL

sasquuatch

habe da auch mal ne frage zu, geht das nur mit der standard adresse für fhem?
define WEB FHEMWEB 8083 global
attr WEB basicAuth { "$user:$password" eq "123:123" }


ich würde das gerne für den tablet und smartphone port nutzen. trage ich den attr befehl unterhalb vom tablet bzw. smartphone define in der fhem.cfg ein, ist alles nach einem "Save Config" weg :(
define WEBphone FHEMWEB 8084 global
attr WEB basicAuth { "$user:$password" eq "123:123" }

define WEBtablet FHEMWEB 8085 global
attr WEB basicAuth { "$user:$password" eq "123:123" }

der global wert ist an meiner fritzbox gar nicht freigeschaltet. ich habe das nur fürs smartphone und tablet gemacht, weil ich nur mit dem smartphone, eventuell tablet von unterwegs auf FHEM zugreife.

NACHTRAG:

für jeden der so doof ist wie ich, die formatierung für tablet und phone sollte so aussehen:
Zitatdefine WEBphone FHEMWEB 8084 global
attr WEBphone basicAuth { "$user:$password" eq "123:123" }

define WEBtablet FHEMWEB 8085 global
attr WEBtablet basicAuth { "$user:$password" eq "123:123" }

UliM

hi,
wenn Du das für die anderen ports einstellen willst, musst beim setzen des Attributs auch den anderen port benennen. Du hast das nu 3x für WEB gemacht, aber noch gar nicht für WEBtablet und WEBphone:
attr WEBphone  basicAuth { "$user:$password" eq "123:123" }
attr WEBtablet basicAuth { "$user:$password" eq "123:123" }

Wenn Du aus dem internet drauf zugreifst - per VPN?!

Gruß, Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

sasquuatch

danke für die schnelle antwort UliM.

eine frage habe ich noch, ist es möglich das ganze komplett ohne benutzname zu machen und nur mit passwort?

ich habe folgende formatierung probiert:
Zitatattr WEBphone basicAuth { "$password" eq "123" }
damit erreiche ich aber nur, dass der benutzername auf standard "admin" steht, nicht aber das nur das passwort einzugeben ist.
auf dem smartphone mag er für die dyndns seite die zugangsdaten nicht speichern und dann ist das etwas nervig immer gleich beides einzugeben.

Mitch

Hab da mal eine andere Frage dazu:

kann man die passwortabfrage so einstellen, dass ich nur von extern das Passwort eingeben muss, sprich wenn ich in meinem eigenen Netz bin, wird das Passwort nicht abgefragt.

Danke!
FHEM im Proxmox Container

rudolfkoenig

Indem man zwei FHEMWEB Instanzen definiert, mit unterschidlichen Attributen.