tbnobody / OpenDTU

Software for ESP32 to talk to Hoymiles/TSUN/Solenso Inverters
GNU General Public License v2.0
1.81k stars 504 forks source link

Passwort für Webinterface #298

Closed tm-107 closed 1 year ago

tm-107 commented 1 year ago

Ein simpler Passwortschutz (basic-auth) wie bei Tasmota wäre aus meiner Sicht wünschenswert, damit nicht jeder im Heimnetz die Einstellungen ändern kann. Außerdem könnte man dann das Webinterface auch aus dem WWW erreichbar machen, sofern einem basic-auth als Schutz ausreicht.

tbnobody commented 1 year ago

Eine Authentifizierung ist schon auf meiner Liste. Aber bitte, bitte, niemals nie ein Gerät/Webseite ohne SSL public ins Internet stellen. Da SSL auf einem ESP32 eher kompliziert wird empfehle ich da eher einen VPN Server am Router zu nutzen. (vgl. Wireguard auf der Fritzbox)

tm-107 commented 1 year ago

Danke für die Rückmeldung! Mit dem SSL hast Du schon recht. Aber da OpenDTU und einige Tasmotas bei mir in einem separaten WLAN-Netz hängen (mit eigenem Subnetz im LAN), halte ich die Gefahr in meinem Fall für vertretbar. Ein VPN (OpenVPN über einen RaspberryPi) existiert ebenfalls. Das nützt mir allerdings nichts wenn ich auf Arbeit bin, da ich dort keinen VPN-Client installieren/nutzen kann. Und die Wartung meiner Home-IT erledige ich zu 95% von Arbeit aus ...

D3R-ST3FAN commented 1 year ago

Authentifizierung find ich auch eine gute Idee, auch (erst mal) ohne SSL.

D3R-ST3FAN commented 1 year ago

Danke für die Rückmeldung! Mit dem SSL hast Du schon recht. Aber da OpenDTU und einige Tasmotas bei mir in einem separaten WLAN-Netz hängen (mit eigenem Subnetz im LAN), halte ich die Gefahr in meinem Fall für vertretbar. Ein VPN (OpenVPN über einen RaspberryPi) existiert ebenfalls. Das nützt mir allerdings nichts wenn ich auf Arbeit bin, da ich dort keinen VPN-Client installieren/nutzen kann. Und die Wartung meiner Home-IT erledige ich zu 95% von Arbeit aus ...

Ich hab das über einen Reverse Proxy realisiert. Der terminiert nebenbei auch noch die SSL Verbindung.

tbnobody commented 1 year ago

Ich hab das über einen Reverse Proxy realisiert. Der terminiert nebenbei auch noch die SSL Verbindung.

Sowas ist auch noch i.O. da kann man ja auch zusätzlich noch nen Basic auth einbauen damit man nicht direkt auf dem Gerät landet....

tm-107 commented 1 year ago

Ich hab das über einen Reverse Proxy realisiert. Der terminiert nebenbei auch noch die SSL Verbindung.

Auf die Idee bin ich leider nicht selbst gekommen. Aber jetzt fungiert mein (sowieso laufender) Apache auch als Reverse Proxy mit SSL-Anbindung und integriertem basic-auth :-)

D3R-ST3FAN commented 1 year ago

Auf die Idee bin ich leider nicht selbst gekommen. Aber jetzt fungiert mein (sowieso laufender) Apache auch als Reverse Proxy mit SSL-Anbindung und integriertem basic-auth :-)

Ich nutze HAProxy, der läuft bei mit auf der OPNSense Firewall (die quasi Router missbraucht wird).

Im selben (V)LAN Segment fänd ich Authentifizierung direkt an OPENDTU dann halt noch besser. Hab ne Menge I-OT Kram und man weiß ja nie.

tm-107 commented 1 year ago

Im selben (V)LAN Segment fänd ich Authentifizierung direkt an OPENDTU dann halt noch besser. Hab ne Menge I-OT Kram und man weiß ja nie.

Sehe ich genauso ...

D3R-ST3FAN commented 1 year ago

Passwortschutz ist ja jetzt eingebaut, SUPER! Ich denke aber, der sollte ein/ausschaltbar sein oder?

tbnobody commented 1 year ago

Sehe ich nicht so. Zumindest für die Settings würde ich den Passwortschutz immer behalten wollen. Ob man die Statistikwerte bzw. die restlichen Infos noch mit einem Passwort schützt könnte ich mir in der Tat optional vorstellen.

Aber egal wie... Es hängt auch an dem Config Issue mit deadline 15. November. Erst dann möchte ich neue Config Optionen einführen...

ghost commented 1 year ago

Wie lautet denn der USername und das Paswort ?

tbnobody commented 1 year ago

It's documented in the README https://github.com/tbnobody/OpenDTU/blob/11c272b1fbc7b5616cc464318fbe32ba9f401d08/README.md?plain=1#L171

tm-107 commented 1 year ago

Nur die Settings mit Passwort fände ich erst mal okay. Vielen Dank dafür! Aber über die "Live Data"-Seite kann ich dennoch ohne Passwort das Inverter-Limit setzen/ändern oder den Inverter komplett an-/abschalten ... Also entweder diese beiden Punkte wandern ins Settings-Menü oder der Passwortschutz gilt (optional?) für das komplette WebUI. Anders macht es in meinen Augen keinen Sinn.

Mein zusätzlicher Passwortschutz über den Reverse-Proxy bleibt also vorerst bestehen :-)

tbnobody commented 1 year ago

Aber über die "Live Data"-Seite kann ich dennoch ohne Passwort das Inverter-Limit setzen/ändern oder den Inverter komplett an-/abschalten ...

Siehe #318 ist bekannt. War aber etwas komplizierter als der Rest. Daher wollte ich erstmal das bestehende so publizieren

dachauan commented 1 year ago

Leider kann ich mich nach dem Update nicht anmelden, User: admin Pwd: openDTU42. Fehlermeldung: Invalid credentials Stimmt das default Pwd?

tbnobody commented 1 year ago

Das Passwort ist das gleiche was unter Settings --> Security eingetragen wurde. Also das AP Passwort. Wenn du das jemals geändert hast, dann bitte dieses verwenden.

henne49 commented 1 year ago

Ich habe das gleiche Problem mit dem Passwort, ich habe das Passwort nicht geändert, lediglich in mein WLAN gebracht. Ich habe das Update per OTA eingespielt und kann mich nicht mit den Default Login einloggen:

Fehlermeldung: Invalid credentials

tbnobody commented 1 year ago

Du verwendest auch wirklich "admin" als Benutzer und "openDTU42" als Passwort? Wenn du den ESP in dein WLAN gebracht hast, dann hast du dich ja das 1. mal auf den integrierten Access Point verbunden und dort die Einstellungen vorgenommen. Welches Passwort hast du da verwendet? Wenn du den ESP kurz vom Strom nimmst und wieder ansteckst geht dieser Access Point wieder auf. Kannst du dich noch verbinden?

henne49 commented 1 year ago

ja ich habe extra per Copy und Paste gearbeitet. Auch nach Reboot Stromlos komme ich zwar drauf, aber die Credentials funktionieren nicht.

tbnobody commented 1 year ago

Lade mal das WebUI vorsichtshalber mit STRG+F5 neu. Und ich Frage nochmals, weil da noch nicht direkt eine Antwort kam :) das Passwort (also wirklich das WPA2-PSK beim verbinden zum AP) das du beim Access Point eingegeben hast war "openDTU42"? (Ich reite so auf dem Access Point Passwort herum weil es das gleiche ist wie zum Login auf der Page mit user "admin". Wichtig ist auch hier, Groß/Kleinschreibung und auf ggf. abschließende Leerzeichen achten)

henne49 commented 1 year ago

ja ich habe "openDTU42" ohne Anführungszeichen genutzt beim Login, funktioniert nicht. Ich habe jetzt auch neu geflasht und kann nicht mehr im AP Modus per WLAN connecten, WPA2-PSK key openDTU42. Test vom Handy diesmal. Ich habe auch die defaults.h überprüft:

define ACCESS_POINT_NAME "OpenDTU-"

define ACCESS_POINT_PASSWORD "openDTU42"

define AUTH_USERNAME "admin"

muss ich den Flash nochmals vorher erasen, wenn ich per platform.io aus VS Code arbeite? Damit ich ein Factory reset mache?

tbnobody commented 1 year ago

muss ich den Flash nochmals vorher erasen, wenn ich per platform.io aus VS Code arbeite? Damit ich ein Factory reset mache?

Ja, weil beim normalen Flashen die Partition mit der Config nicht überschrieben wird. Die Defaults in der Header File werden nicht verwendet weil es bereits eine Config File gibt. Diese hat höhere Priorität.

henne49 commented 1 year ago

Danke, jetzt läuft alles wieder. Tollen Job den ihr hier macht! Danke dafür, funktioniert mega!

m0tschi commented 1 year ago

Kleiner Hinweis am Rande, wenn man im AP kein Passwort hinterlegt hat, sperrt man sich aus :) Trotzdem wichtige Verbesserung! 💯 Danke für den Tipp mit erst Erease und dann erst Flashen 👍

tbnobody commented 1 year ago

Darf ich fragen wie du es geschafft hast kein Passwort zu hinterlegen? Eigentlich sollte da eine Validierung drin sein dass das Passwort mindestens 8 Zeichen lang sein muss.

dachauan commented 1 year ago

Wie bei mir, hatte auch kein Passwort hinterlegt, openDTU42 ging trotzdem nicht. Hab den ESP platt gemacht und neu installiert.

hubsi5 commented 1 year ago

Merkwürdig. Bei mir war auch nie etwas hinterlegt, aber nach de flashen ging ganz normal das hinterlegte Standardpasswort.

tbnobody commented 1 year ago

@dachauan bzw. @m0tschi wisst ihr noch von welcher Version ihr ungefähr upgedated habt?

dachauan commented 1 year ago

Ich hab zur Zeit jeden Tag upgedatet, genaue Version kann ich dir nicht sagen. Erstinstallation war am 28.10.

m0tschi commented 1 year ago

@tbnobody

Darf ich fragen wie du es geschafft hast kein Passwort zu hinterlegen? Eigentlich sollte da eine Validierung drin sein dass das Passwort mindestens 8 Zeichen lang sein muss.

hatte das in der defaults.h geändert beim ersten Flashen... bin also selbst Schuld. die Version war vom Vortag selbst kompiliert.

madmartin commented 1 year ago

@tbnobody
Dieses "Issue" Passwortschutz für Webinterface ist doch jetzt erledigt und könnte geschlossen werden?

tm-107 commented 1 year ago

Sehe ich nicht so. Es steht ja noch im Raum, wahlweise das komplette WebUI per Passwort zu schützen. Wenn das Ganze aus dem WWW erreichbar sein soll, möchte ich nicht dass jeder darauf zugreifen kann und anhand der Info/Network-Seite auch noch einige Infos zu meinem Home-LAN erhält.

tbnobody commented 1 year ago

Das ist der Grund warum es noch offen ist :)

fritzCARaldo commented 1 year ago

Hallo! Ich bin neu hier und habe mir meinen OpenDTU basteln lassen. Habe soeben erfolgreich auf OpenDTU Build #359: Commit [854af46] geupdatet. Dort wird jetzt ein LogIn abgefragt. Ich bin wahrscheinlich zu Grün: Was sind denn hier die Grunddaten für den LogIn? Danke!

madmartin commented 1 year ago

Was sind denn hier die Grunddaten für den LogIn? Danke!

Username ist "admin" und das Passwort dasselbe wie für den Accesspoint - standard ist "openDTU42" und Du solltest das dann ändern.

tbnobody commented 1 year ago

Alle API Endpunkte können nun (optional) Passwortgeschützt werden. Würde den Issue entsprechend schließen.

github-actions[bot] commented 6 months ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new discussion or issue for related concerns.