FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: Superposchi am 11 Januar 2024, 09:04:21

Titel: Externer Zugriff auf TabletUI
Beitrag von: Superposchi am 11 Januar 2024, 09:04:21
Jetzt da ich beim Einrichten meiner neuen Heizkörperventile immer wieder von extern auf die Fhem-Oberfläche zugreife, möchte ich die Komponenten auch gerne in meinem Tabletui einbinden. Grundsätzlich ist das eher kein Problem.

Doch wie bekomme ich den externen Zugriff auf mein TabletUI hin. Es wird zwar die Oberfläche wie Zu Hause angezeigt wenn ich mich mit Username und Passwort authentifiziere aber es werden keine Werte geladen. Irgendwo hat das TbaletUI da noch eine zusätzlich Sicherung zur Übermittlung auf die Daten an einen externen Browser.

Wie und Was fehlt?

Und bitte keine Hinweise wie unsicher das ist etc.. Mir ist das Risiko bewusst und ich möchte es einfach so. Also bitte auch keine Hinweise auf VPN oder andere Sicherungsverfahren.
Es geht nur um die Frage wie ich das FTUI wie ZuHause auf dem Tablet in einem Browser (inkl. der Daten und Einstellmöglichkeiten) angezeigt bekomme.
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Superposchi am 22 Januar 2024, 11:39:25
Schade, wirklich keiner eine Idee woran es liegen könnte.
Ich lese in den Toasts immer etwas von Token, finde aber bei Google keine Infos dazu.
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Adimarantis am 22 Januar 2024, 13:47:05
Hast du CSRF Tokens bei dir aktiviert? Ist jetzt das einzige was mir zum Stichwort "Token" einfällt.
Ich route den externen Zugriff auf FTUI zwar durch Nginx, aber das müsste es ja eher noch komplexer machen.
FHEMWEB ist bei mir aber eben auf csrfToken=none konfiguriert.

Auch wenn du schon explizit gesagt hast, du möchtest nix von VPN o.ä. hören - eine Nginx config ist kein Hexenwerk (ok, bisschen Aufwand ist es schon wenn du ein gültiges Zertifikat über "let's encrypt" etc. haben willst) und sichert dir die Sache mit User/PW ab.
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Superposchi am 22 Januar 2024, 15:18:10
Nicht das ich wüsste irgendwo was aktiviert zu haben. Könnte es eventuell umgekehrt sein, dass es standardmäßig aktiv ist und deaktiviert werden muss?
Wobei mir der Begriff CSRF aus dem Stehgreif nichts sagt, muss ich erst mal googlen.

Hab aber gerade mal kurz die Attribut-Beschreibung gelesen Dort steht das es standardmäßig aktiv ist. Hab es auf none gesetzt, doch leider hat es keinen Erfolg gebracht.
Habe aber mal die Toast-Meldungen als Screenshot gemacht. Vielleicht bringt das ja etwas Licht ins Dunkel.
Komisch ist halt auch, dass die FTUI-Oberfläche angezeigt wird, aber offenbar keine Werte der Elemente oder Schaltbefehle an Fhem.

Ich habe prinzipiell nichts gegen VPN etc..
Das Problem ist, dass ich von Berufswegen öfter mal wechselnde IT habe und nicht immer meine eigenen Gerät wie Handy erlaubt sind; ich aber immer und überall auf die Einstellungen Zugriff haben möchte. Ich bin also zu 70% oder mehr darauf angewiesen, dass ich irgendwas installieren müsste, was bei einem Fremdrechner halt oftmals nicht geht. Ich suche daher die Lösung, die unabhängig solcher Einschränkungen immer funktioniert, auch wenn ich dafür etwas im Thema Sicherheit einbüßen muss.
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Adimarantis am 22 Januar 2024, 15:51:43
Das schaut allerdings sehr seltsam aus. Sagt mir gar nichts.

Die Lösung mit Nginx ist geräteunabhängig. Ich habe zuhause auf meinem FHEM Raspi einen Nginx reverse proxy mit Zertifikat von "let's encrypt" installiert. Auf der Fritzbox dann ein port forwarding auf den Port den ich mit Nginx eingerichtet habe. Nginx validiert user/PW und leitet die Anfrage dann lokal an FHEM weiter, was sowohl mit FHEMWeb als auch mit FTUI sauber funktioniert.
Auf den Endgerät verbinde ich mir nur ganz normal per Browser mit diesem Port und einem per DynDNS festgelegten Hostnamen. Das geht von überall - Handy, FirmenVPN etc.
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Wernieman am 22 Januar 2024, 18:30:40
Gabe es bei mir auch so gelöst. Funktioniert gut .. habe aber kein TabletUI, greife nur direkt auf FHEM zu.

Mann sollte sich aber mit den Basics von NGINX auskennen .. man kann auch einiges falsch machen. Auf jedem falle Sicherer als direkter Zugriff von Außen.
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Adimarantis am 22 Januar 2024, 18:51:10
Gibt es hier sogar ein Wiki zu:
https://wiki.fhem.de/wiki/HTTPS-Absicherung_%26_Authentifizierung_via_nginx_Webserver
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Superposchi am 23 Januar 2024, 08:50:47
Hab die Anleitung erstmal überflogen.
Wenn ich das richtig verstehe wäre damit aber auch der externe Zugriff auf mein NAS, meine Dreamboxen und die Fritzbox über nginx "umgeleitet", richtig?

Frage ist auch ob das überhaupt bei meiner Konfiguration funktionieren würde, da bei mir ja alles auf einem NAS läuft und der Internetverkehr über einen virtuellen Switch läuft und das für die Fhem und Plex-Server eigene IP's im Netzwerk bereitstellt. Der direkte Zugriff per SSH ist da leider ziemlich eingeschränkt wodurch es zb auch beim ausführen von sudo-Befehlen Probleme gibt.
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Wernieman am 23 Januar 2024, 09:35:45
Es wird das "geproxied", was DU definiert. Analog wie wenn Du den apache als Proxy verwendest ....
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Superposchi am 23 Januar 2024, 11:45:08
Also so wie ich das verstanden habe erden die Ports 80 und 443 abgehört. Ports auf denen normalerweise ja jede http/https-Kommunikation läuft.
Also ist die Frage wo greift nginx dann ein? wenn ein Aufruf an der Fritzbox eingeht oder erst wenn einer Aufruf des Gerätes auf dem ngingx installiert ist erfolgt.

Apache ist für mich ein Webserver - nichts anderes. Soll heißen, in der Richtung bin ich raus mit meinem Wissen.
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Wernieman am 23 Januar 2024, 11:48:10
Apache und NGINX sind beide Webserver, welche auch als Proxy eingesetzt werden können. Natürlich bearbeiten Sie nur Packete auf Ihrem Host, bei denen der Port konfiguriert wurde.

Wenn Du dabei schon "draußen" bist, bitte vertiefe es nicht, da man bei der Konfig auch einiges falsch machen kann ... und dann hat man schnell einen offenen Proxy im I-Net definiert .... Bitte nicht falsch verstehen.
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Superposchi am 23 Januar 2024, 12:19:07
Genau deswegen habe ich mich bisher nicht damit beschäftigt. Ist mir viel zu kompliziert.
Ich bin Anwender mit ein wenig Programmierkenntnissen und nicht Programmierer.
Ändert aber nichts an dem Problem, dass ich von Extern auf meine Steuerung zugreifen will. Hab ja von Anfang an gesagt, dass ich eine einfache Möglichkeit bevorzuge.

Allerdings muss ich auch sagen, dass es für mich eine Zweckentfremdung ist. Die Aufgabe ist als Webserver zu funkgieren. Wenn es durch verbiegen und Missbrauch zu anderen Zwecken genutzt wird, muss man sich nicht wundern wenn das niemand ohne entsprechende Tiefenkenntnisse weiß/versteht.
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Adimarantis am 23 Januar 2024, 13:00:02
Bei mir sind mehrere FHEM Instanzen und auch andere Services wie Webcams über Nginx nach außen verfügbar gemacht und abgesichert. Ich versuche das zu skizzieren wie das abläuft:

In der Fritzbox habe ich unter Portfreigaben jedem Service eine eigenen Portnummer zugewiesen. Die muss nichts mit der tatsächlichen (also 80 oder 443) zu tun haben.
Dort erfolgt aber noch nicht die Zuordnung auf den tatsächlichen Service sondern auf den Server (Raspberry) auf dem Nginx läuft (das können auch andere Portnummern sein) und der leitet das (nach Passwortprüfung) dann weiter auf den finalen Server/Port

Also z.B.
Port 5001 -> Nginx-Server Port 5001 -> FHEMServer:8083
Port 5002 -> Nginx-Server Port 5002 -> Webcam:80

Du kannst also beliebig viele verschiedene Ports und Server bedienen.

In der Nginx Config reverse-proxy gibt es dann für jeden Service einen entsprechenden Eintrag, also z.B.
server {
    listen 5002;
    server_name webcam;

    location / {
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    auth_basic_user_file /etc/nginx/.htpasswd;
    proxy_pass http://192.168.1.63:80;
    proxy_set_header Authorization "Basic XXXXXXXXX";
    }
}
server {
    listen 5001 ssl;
    server_name fhempi;

  ssl_certificate /etc/letsencrypt/live/xxxx.de/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/xxxx.de/privkey.pem;
  ssl_session_timeout 1d;
  ssl_session_cache shared:SSL:50m;
  ssl_session_tickets off;
  ssl_protocols TLSv1.1 TLSv1.2;
  ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-EC
DSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256
:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AE
S256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES1
28-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!
MD5:!PSK';
  ssl_prefer_server_ciphers on;
  ssl_stapling on;
  ssl_stapling_verify on;
  ssl_trusted_certificate /etc/letsencrypt/live/xxxx.de/chain.pem;

    location / {

      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;
      proxy_http_version      1.1;

      proxy_read_timeout  90;

      auth_basic "Restricted Content";
      auth_basic_user_file /etc/nginx/.htpasswd;

      proxy_pass      http://192.168.1.65:8083;
    }
  }

Im Falle der Webcam übernimmt Nginx auch die Basic Authorization um sich bei der Webcam einzuloggen (das XXXXXXX ist das entsprechende kodierte user/pw).

Das hat jetzt mit Programmieren erstmal gar nichts zu tun und eine entsprechende Absicherung ist wirklich anzuraten - offene Ports die direkt auf deine System weitergeleitet werden sind eine Einladung an Hacker die ständig mit Portscans alle IPs durchforsten um ein Einfallstor zu finden.
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Wernieman am 23 Januar 2024, 13:00:10
ZitatIch bin Anwender .... Extern auf meine Steuerung zugreifen will .... einfache Möglichkeit bevorzuge.

Sorry aber einfach und (nicht von Dir gesagt) sicher gibt es nicht zusammen.

Zitat... durch verbiegen und Missbrauch ...

Nein, es ist Normale Definition laut Doku der Produkte. nginx wird z.B. auch gerne bei Proxylösungen für Docker verwendet.

Richtige dafür optimierte Produkte währen haproxy, Squit u.Ä., welche hier für aber Overzised sind.

Du schriebst oben: In Fremden Umgebungen unterwegs. Wenn ich Dein Kunde wäre und sehen würde, das Du aus einer Sicheren Umgebung auf Deine Homeautomatisation zugreifst, hättest Du ein Problem. Da würde (ich persönlich) lieber ein VPN im Handy und das Handy nutzen. In der Umgebung dann eben kein Zugriff auf Home-System.

Wie schon gesagt, es gibt KEINE Einfache und Sichere Lösung für "Dummys" ohne Vorkenntnisse.
(Hinweis: "Dummy" ist nicht beleidigend sondern nur als Kategorisierung gemeint)

P.S. Hatten Wir diese Diskussionen nicht schon mehrfach?
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Superposchi am 25 Januar 2024, 09:33:00
ZitatWie schon gesagt, es gibt KEINE Einfache und Sichere Lösung für "Dummys" ohne Vorkenntnisse.
P.S. Hatten Wir diese Diskussionen nicht schon mehrfach?
Ja, weil immer und immer wieder von dir/euch das Thema Sicherheit ins Spiel gebracht wird.
Ich sags mal so, mir ist die Sicherheit scheiß egal, ich will nur den Zugriff ermöglichen. Und das habe ich auch mehrfach so kommuniziert denke ich.
Doch irgendwie schaffen die Antworten immer und immer wieder ins Thema Sicherheit abzuschweifen. Wenn ich aber keine externe Bedienung hinbekomme, brauche ich erst gar keine Sicherheit.
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Wernieman am 25 Januar 2024, 09:40:07
Letzter Beitrag zu dem Thema:

Gratulation das DIR die Sicherheit egal ist. Leider wird genau durch so eine Haltung das Thema im Netz immer wichtiger.

Over and Out
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Superposchi am 25 Januar 2024, 09:52:10
@Wernieman
Es ist aber MEIN RISIKO und MEINE BITTE in MEINEM THREAT.
Und wenn ich sage, dass ich mir dessen bewusst bin, bedarf es keiner andauernden Belehrungen warum man es nicht machen sollte.

Was ist daran so schwer das einfach mal zu respektieren?
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Wernieman am 25 Januar 2024, 11:11:40
Eigentlich wollte ich nicht mehr antworten .. aber ..

1. Es ist nicht DEIN Thread. Dieses ist ein öffentliches Forum, wo auch andere Hilfesuchende sich bewegen. Es ist ein FHEM Thread.
2. Genau aus dem Grunde muss man es immer wieder sagen. habe hier leider schon genug offene Systeme gesehen.
3. Es ist nicht nur DEIN Risiko, sondern ein Öffentliches. Wenn jemand DEIN System zum Angriff auf XYZ benutzt ....
4. Ich belehre nicht, sondern Informiere. Lerne bitte den Unterschied.

Aber jetzt Endgültig "Over and Out"

P.S. Rate mal, warum in diesem Thread nur ich Dir antworte ....
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: Superposchi am 25 Januar 2024, 12:03:12
ZitatEs ist nicht DEIN Thread. Dieses ist ein öffentliches Forum, wo auch andere Hilfesuchende sich bewegen. Es ist ein FHEM Thread.
Falsch, es ist mein Problem in einem von mir erstellten Threat speziell auf meine Frage, Bedürfnisse und Interessen gestellte Wissenslücke. Jeder der mitliest weiß, dass es keine Lösung für ihn ist, sondern ausschließlich für mich. Und sollte sich dennoch jemand der mitlesenden entschließen dies nachzumachen, liest er unweigerlich auch meine Kommentare, dass ich mir der Risiken bewusst bin und mich bewusst entschließe sie einzugehen - er also dann auch bewusst das gleiche tut.

ZitatGenau aus dem Grunde muss man es immer wieder sagen. habe hier leider schon genug offene Systeme gesehen.
Was du siehst spielt absolut keine Rolle, da es dich mit verlaub nichts angeht wie jemand sein System konfiguriert. Du kannst unmöglich wissen ob es nicht so gewollt ist.

ZitatEs ist nicht nur DEIN Risiko, sondern ein Öffentliches. Wenn jemand DEIN System zum Angriff auf XYZ benutzt ....
Wieder falsch - Es ist ausschließlich mein Problem. Sollte - und ich wiederhole sollte - mein System gekapert werden, kann es zwar zum Angriff genutzt werden, nutzt aber nur sofern jemand anders bewusst das gleiche Risiko eingehen wollte wie ich. Dieser darf sich genau wie ich dann nicht beklagen.

ZitatIch belehre nicht, sondern Informiere. Lerne bitte den Unterschied.
Und noch mal FALSCH - Eine Info ist eine frei und allgemein zugängliche, ohne irgendeinen Bezug gepostete Informationen. Hier hingegen geht es speziell um ein Problem mit einer Problemlösung und dann andauerndes Wiederholen der gleichen Anweisungen in einem Befehlston sind eine Belehrung. Lerne du erst mal den Unterschied.

Und warum keiner mehr antwortet brauche ich nicht zu raten - sie haben einfach von deinem wieder und wieder gleichen Scheiß die Nase voll, denn bei dir geht es weder um die Frage noch um eine Antwort sondern ausschließlich um Besserwisserei.
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: MadMax-FHEM am 25 Januar 2024, 12:20:22
Zitat von: Superposchi am 25 Januar 2024, 12:03:12Und warum keiner mehr antwortet brauche ich nicht zu raten - sie haben einfach von deinem wieder und wieder gleichen Scheiß die Nase voll, denn bei dir geht es weder um die Frage noch um eine Antwort sondern ausschließlich um Besserwisserei.

Glaube nicht, dass es damit zu tun hat, egal.

Nachdem du ja offenbar keine Hemmungen hast dein System "einfach so" von außen zugänlich zu machen und auch bereitwillig (den einfachsten -> weniger sicheren ;) Weg gehst) den csrfToken einfach abzuschalten lasse ich das mit den BERECHTIGTEN Hinweisen bzgl. Sicherheit und versuche mal...
...allerdings nutze ich kein TabeletUI...

Wenn ich mir die Meldungen von dort https://forum.fhem.de/index.php?topic=136612.msg1300990#msg1300990 anschaue, sieht es so aus als würde die Übermittlung der Anfrage von TabletUI an fhem schon nicht passen.
Die Meldung "sagt" doch, dass beim Absetzen eines Befehls an fhem ein "unerwarteter Token" (wohl das Zeichen '<') im Befehl war.
Also nüchtern (für mich) irgendwo/irgendwie hat sich wohl das Zeichen '<' in die Abfrage "gemogelt"...

Jetzt (für mich) die Frage: wo/wie ist das passiert?

Steht etwas im fhem Log (das evtl. mehr Aufschluss gibt)?
Evtl. mal verbose hochdrehen...

Dann:

wie ist dein Setup? Entweder nicht (genau genug) beschrieben oder ich hab's überlesen...

wenn du lokal auf DASSELBE TabletUI zugreifst, geht es dann?
-> ich nutze kein TabletUI, daher keine Ahnung wie da das "Setup" ist / ist das ein separater (Web-)Zugang? Wie? Welcher Port usw.

wie hast du das "nach außen" gelegt?
Port Freigabe/Forward? (sofern das überhaupt ein eigener Zugang/Port ist, siehe: Setup/TabletUI)

Evtl. helfen die von mir gestellten Fragen auch Leuten hier, die Ahnung von TabletUI haben/das nutzen...

Gruß, Joachim

P.S.: und nein es ist nicht nur dein Problem und dann das Problem anderer Nutzer mit deiner Sicherheitseinstellung Einstellung zu Sicherheit, sondern eben schon ein potentielles Problem "für alle", weil ja auch DDoS-Angriffe "an alle" von deinen gekaperten Systemen aus gemacht werden können. Ja, andere Systeme werden dann nicht gekapert, wenn sie abgesichert sind aber sind trotzdem Betroffen, da sie ja die Angriffe/Angriffsversuche abwehren müssen, statt sich um die eigentlichen Aufgaben zu kümmern...
Das nur am Rande...
Titel: Aw: Externer Zugriff auf TabletUI
Beitrag von: rasti am 26 Januar 2024, 11:22:01
Hallo,

ich hatte bis dato immer Zugriff auf mein Netz per VPN bei mir. Das geht ja nur, wenn man eine feste IP hat bzw, DynDNS.

Mein Provider (KabelBW dann Uniymedia jetzt Vodafone) hat mir aber in letzten 2 Jahren drei Mal per Fernupdate die Firmware auf dem Kabelrouter geändert, so dass ein Zugriff erstmal nicht mehr möglich war. Hat irgendwas mit Dualstack zu tun, blicke da nicht wirklich durch. Nach einigen nervigen Anrufen haben die sich immer entschuldigt, irgendwas geändert und der Zugriff ging wieder.

Jetzt stand ich kürzlich vor dem Problem, dass ich in einem vermieteten Haus FHEM zum Loggen von PV-Daten etc. installieren wollte und dort nur LTE zur Verfügung stand wo es ja meistens gar keine festen IPs möglich sind, zumindest nicht bei den Billigdatentarifen. 

Die Lösung lautet WIREGUARD.  Man braucht dazu einen extra "Cloud-Server", zu dem sich z.B. ein Raspberry Pi mit FHEM ständig per Wireguard verbindet. Wenn man nicht im eigenen Netz ist, z.B. von unterwegs mit dem Laptop, kann man sich dann ebenfalls per WG zum Cloud-Server verbinden, es wird ein Tunnel aufgebaut und man hat bei entsprechender iptables Konfiguration Zugriff nicht nur auf FHEM sondern auf das ganze Netz an dem FHEM hängt.

Ich habe das nun bei einem FHEM installiert, der nur an einem LTE Router hängt und auch bei mir zuhause, da bin ich jetzt unabhängig von irgendwelchen Modem-Firmwareupdates meines Providers.

Als Anleitung habe ich mich an https://www.youtube.com/watch?v=PMzFwnDQT4k gehalten, eine m.E. sehr gute Step-by-Step Anleitung.
Als Cloudserver habe ich wie im Video empfohlen und durchexerziert einen bei Hetzner gemietet, kostet unter 5€ im Monat.

Ich habe das trotz nur sehr rudimentären Linuxkenntnissen mit der obigen Anleitung hinbekommen.

An der Routerkonfig des LTE-Routers oder Heimrouters muss nix geändert werden, man kann also erstmal alles an ein einem dedizierten Raspberry ausprobieren, wenn es nicht klappt nimmt man den vom Netz und alles ist wie vorher.

Das ganze funktioniert anscheinend sehr zuverlässig, egal ob das FHEM/Raspi sich hinter einem LTE-Router, einem Kabelrouter oder sonstwo befindet. Hauptsache irgendwie Internetzugang, dann geht es.

Viele Grüße
Ralf