Hallo,
ich möchte über Telnet die NetIO APP von davideickhoff mit fhem verbinden. Lokal funtioniert das auch über den port 7072. Um das ganze auch von extern zu erreichen wollte ich den nginx webserver verwenden, welchen ich auch verwende um von außen abgesichert auf FHEM zugreifen.
Folgende Proxy Konfiguration habe ich angelegt:
server {
listen 555 ssl;
server_name fhem;
ssl_certificate /etc/nginx/cert.crt;
ssl_certificate_key /etc/nginx/cert.key;
auth_basic "Please log in for using LogoControl";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://localhost:7072/;
proxy_set_header Host $http_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-Scheme $scheme;
# Time to wait for LogoControl to answer a request, at least 60
# sec are needed for Long-Polling of /events webservice
proxy_read_timeout 90;
# Bypass HTTP Basic Auth for CORS Preflight requests
if ($request_method = OPTIONS) {
add_header Content-Length 0;
add_header Content-Type text/plain;
add_header Access-Control-Allow-Methods $http_access_control_request_method;
add_header Access-Control-Allow-Origin $http_origin;
add_header Access-Control-Allow-Headers $http_access_control_request_headers;
return 200;
}
}
}
Jedoch funktioniert das so anscheinend nur für HTTP Seiten. Per TCP Protokol greife ich mit der NetIO APP per telnet auf fhem zu....
Vielen dank für die Hilfe
Gruß
Thorsten
nginx ist ein web Reverseproxy http https FTP mehr nicht. VPN kannst Du machen.
Muss ich dann alles über den VPN Tunnel laufen lassen oder geht auch nur der Port 7072? Gibt es keine Alternative zu telnet.... Telnet ist bis jetzt die einzige Möglichkeit die ich gefunden habe womit die NetIO APP in fhem über den { fhem ("getstate Schrank_Rechts")}
den Status abfragen kann. Das geht Lokal sehr gut.... hätte nicht gedacht das das mit den abgesicherten Extern Zugriff so schwer zu machen ist...
Vielleicht gibt es ja noch jemand der die App in verbindung mit Fhem nutzt....
Gruß
Thorsten
Zitat von: jailbreaker07 am 12 September 2017, 20:08:11
Muss ich dann alles über den VPN Tunnel laufen lassen oder geht auch nur der Port 7072? Gibt es keine Alternative zu telnet.... Telnet ist bis jetzt die einzige Möglichkeit die ich gefunden habe womit die NetIO APP in fhem über den { fhem ("getstate Schrank_Rechts")}
den Status abfragen kann. Das geht Lokal sehr gut.... hätte nicht gedacht das das mit den abgesicherten Extern Zugriff so schwer zu machen ist...
Vielleicht gibt es ja noch jemand der die App in verbindung mit Fhem nutzt....
Gruß
Thorsten
Du denkst zu kompliziert
Die App kann auch HTTP/HTTPS. Wenn ich richtig verstehe willst du den Status abfragen. Incl. User Auth. Schau dir diese Links mal an, ich denke damit sollte es funktionierten. Wenn du Probleme mit dem Entwerten von Leerzeichen usw. hast --> Google HTTP-Basics.
https://forum.fhem.de/index.php/topic,6562.msg27549.html#msg27549 (https://forum.fhem.de/index.php/topic,6562.msg27549.html#msg27549)
https://forum.fhem.de/index.php/topic,67442.msg588937.html#msg588937 (https://forum.fhem.de/index.php/topic,67442.msg588937.html#msg588937)
Du wirst noch in das Crsf-"Problem" laufen -->
https://forum.fhem.de/index.php/topic,69407.msg609080.html#msg609080 (https://forum.fhem.de/index.php/topic,69407.msg609080.html#msg609080)
Hallo, das crs Problem habe ich schon hinter mir.... Geht das ganze den auch über eine abgesicherte ssl Verbindung mit passwortschutz?
Gruß
Thorsten
Gesendet von iPhone mit Tapatalk
Zitat von: jailbreaker07 am 14 September 2017, 08:53:29
Hallo, das crs Problem habe ich schon hinter mir.... Geht das ganze den auch über eine abgesicherte ssl Verbindung mit passwortschutz?
Gruß
Thorsten
Gesendet von iPhone mit Tapatalk
Ich besitze die App zwar, nutze sie aber nicht mehr. Lt. Doku geht es ...
**************
- Unterstützung von HTTPS Requests
- Basic Auth für HTTP und HTTPS
**************
ich nutze NetIO über Telnet, Habe aber für Telnet ein Passwort gesetzt und nutzt für den externen Zugriff andere Ports.
den Umweg {fhem......} musst auch nicht machen.
Beispiele:
Temperaturabfrage: "get Aussen_Temp temperature"
Status GPIO: "getstate GPIO_OUT_20"
Zitat von: Frank_Huber am 14 September 2017, 09:25:24
ich nutze NetIO über Telnet, Habe aber für Telnet ein Passwort gesetzt und nutzt für den externen Zugriff andere Ports.
den Umweg {fhem......} musst auch nicht machen.
Beispiele:
Temperaturabfrage: "get Aussen_Temp temperature"
Status GPIO: "getstate GPIO_OUT_20"
Funktioniert natürlich, Sicherheitsaspekt Vergleich HTTPS (was ursprünglich gewünscht war) und Telnet sind andere Level.
Telnet: unverschlüsselt, Passwörter in Klartext.
Muss jailbreaker07 für sich entscheiden, ich würde es nicht machen.
Ich hatte gestern erst einen Hackerangriff auf meinem Raspberry.... also möchte ich das ganze schon gerne sicher haben....ich werde den Vorschlag gleich von kadettilac testen....werde dann berichten [emoji3]
Gesendet von iPhone mit Tapatalk
Zitat von: kadettilac89 am 14 September 2017, 10:54:48
Funktioniert natürlich, Sicherheitsaspekt Vergleich HTTPS (was ursprünglich gewünscht war) und Telnet sind andere Level.
Telnet: unverschlüsselt, Passwörter in Klartext.
Muss jailbreaker07 für sich entscheiden, ich würde es nicht machen.
Das ist klar, muss jeder selbst entscheiden.
Meine FHEM Instanzen steuern nichts Sicherheitsrelevantes, da ist das für mich so i.O.
Tests mit http Verbindungen zwischen NetIO und FHEM waren weitaus weniger performant als Telnet.
Daher ging meine Entscheidung in diese Richtung.
gegen VPN hat der WAF gesprochen...
Mann könnte VPN auch bei einem "single Protokol" über ssh erledigen. Schließlich KANN ssh Tunneln
Das Argument "Steuert nicht Wichtiges" sollte man etwas vorsichtig gebrauchen, schließlich kann ein übernommener Rechner als Hub für weitere Angriffe gebraucht werden. Nicht nur im Internen Netz.
Ich möchte nicht die Anfrage bekommen, warum ich Server XYZ im Netz angegriffen habe ...
Frank, ich steuere eigentlich auch nichts sicherheitsrelevantes.... wie hast du das den mit dem Passwort setzen gemacht? Ich hatte das nicht hinbekommen...
Gesendet von iPhone mit Tapatalk
Dann lasse ich das besser.... wie genau kann man das den lösen mit telnet Zugriff über vpn?
Gesendet von iPhone mit Tapatalk
Zitat von: jailbreaker07 am 14 September 2017, 11:47:53
Frank, ich steuere eigentlich auch nichts sicherheitsrelevantes.... wie hast du das den mit dem Passwort setzen gemacht? Ich hatte das nicht hinbekommen...
defmod allowed_telnetPort allowed
attr allowed_telnetPort group System
attr allowed_telnetPort password ********
attr allowed_telnetPort room SYSTEM
attr allowed_telnetPort validFor telnetPort
Zitat von: kadettilac89 am 13 September 2017, 08:50:33
Du denkst zu kompliziert
Die App kann auch HTTP/HTTPS. Wenn ich richtig verstehe willst du den Status abfragen. Incl. User Auth. Schau dir diese Links mal an, ich denke damit sollte es funktionierten. Wenn du Probleme mit dem Entwerten von Leerzeichen usw. hast --> Google HTTP-Basics.
https://forum.fhem.de/index.php/topic,6562.msg27549.html#msg27549 (https://forum.fhem.de/index.php/topic,6562.msg27549.html#msg27549)
https://forum.fhem.de/index.php/topic,67442.msg588937.html#msg588937 (https://forum.fhem.de/index.php/topic,67442.msg588937.html#msg588937)
Du wirst noch in das Crsf-"Problem" laufen -->
Nabend,
heute habe ich es nochmal versucht...
Lokal habe ich es so hinbekommen: https://192.168.1.38:8084/fhem&cmd=%7BValue%28%22Pumpe%22%29%7D&XHR=1
als Antwort kommt dann off, unter parseResponse habe ich dann \w+ eingetragen damit in der App dann auch off angzeigt wird.
Nur von aussen über https mit Benutzer und Passwort klappt das noch nicht. Was muss ich noch ggf ändern und anpassen....?
danke
Gruß
Thorsten
https://forum.fhem.de/index.php/topic,69407.msg609080.html#msg609080 (https://forum.fhem.de/index.php/topic,69407.msg609080.html#msg609080)
Du beginnst hier am besten Schrittweise mit der Ursachenforschung.
Baue dir den Link mal zusammen und teste mit Chrome oder Firefox nach folgendem Schema ...
https://<unsername>:<password>@<hostname>:<port>/fhem&cmd=<Befehlsteil>
Beispiel ...
https://fhem:xxxx@xxx.spdns.de:2450/fhem&cmd=%7BValue%28%22LED%22%29%7D&XHR=1
Beachte:
1) Internetexplorer lässt auth. im Link nicht zu. Chrome ja, Firefox ... glaube auch
2) Im Beispiel ist csrf-Token deaktiviert, das kann zum Test deaktiviert werden
Du solltest mit diesem Link ein "off" zurück bekommen. Ich habe das mit meiner Installation getestet und es funktioniert
Wenn nicht musst du erstmal hier ansetzen.
Nächster Schritt
Teste das mal auf deinem Smartphone. Btw. hast du Android oder Iphone, die App gibts für beides.
Wenn du hier Zertifikatsfehler hast kannst dein Zertifikat mal importieren.
Wenn du soweit kommst schaun wir weiter. Ich denke es scheitert schon vorher.
Du schreibst, dass du Ngnix per Reverse Proxy nutzt. Hast du trotzdem Port 8084 für HTTPs? Ist das richtig? Im internen Netz funktioniert es mit "falschem" Port jedoch nicht von extern. Zumindest nicht bei mir.
Edit:
Du hast in deiner Config "listen 555". Welchen Port hast du in deinem Router nach außen freigegeben? Auch 555? Das wäre dann der richtige.
Hallo,
über ngnix habe ich das jetzt nicht mehr laufen, mit dem HTTPS zugang das habe ich in fhem gemacht.
Lokal geht dies bei mir sehr gut...
http://192.168.1.38:8083/fhem&cmd=%7BValue%28%22Pumpe%22%29%7D&XHR=1
Nur das hier funktioniert nicht, das kommt keine Antwort.....
https://user:pswd@192.168.1.38:8084/fhem&cmd=%7BValue%28%22Pumpe%22%29%7D&XHR=1
Bekommt man das nicht irgendwie hin das Terminal (worüber das geht aber zimlich unsicher ist) abzusichern..... am besten so, dass auch ein nicht so geübter wie ich das hin bekommt.......
vieln dank
Gruß
Thorsten
Dir ist klar, das Du nicht https sondern http hast? Bei "http:" fehlt das "s"!
fhem wird nie den Security/Sicherheitslevel haben, wie andere Große Software, wie eben nginx/apache etc. (Ohne die Programmierer beleidigen zu wollen). Dazu sind hier viel zu viele Hobbyprogrammierer (Meinereiner Inclusieve) unterwegs und fhem erlaubt einem zu viel.
Das Terminal könntest Du über ssl absichern, Anleitung siehe Doku. Nur .... wenn es jemand schafft, dort reinzukommen ....
Hey, habe das s hier im Beitrag vergessen.... mit geht aber auch nicht.... Anleitung sehe Doku.... Habe es noch nicht gefunden... hast du einen Link für mich? Gruß Thorsten
Gesendet von iPhone mit Tapatalk
Zitat von: jailbreaker07 am 23 September 2017, 11:43:55
Lokal geht dies bei mir sehr gut...
http://192.168.1.38:8083/fhem&cmd=%7BValue%28%22Pumpe%22%29%7D&XHR=1
Nur das hier funktioniert nicht, das kommt keine Antwort.....
https://user:pswd@192.168.1.38:8084/fhem&cmd=%7BValue%28%22Pumpe%22%29%7D&XHR=1
Funktioniert dieser Link? Du hast 2 verschiedene Web-Instanzen. Eine auf Port 8083, eine auf 8084. Nur weil der erste funktioniert bedeutet dass nicht, das auf Port 8084 auch alles geht.
https://user:pswd@192.168.1.38:8084/fhem
--> Bekommst du hiermit die normale Fhem-Seite? Oder erscheint eine Fehlermeldung?
--> Hast du für Webinstanz auf Port 8084 auch CRSF deaktiviert?
Mache bitte mal ein List der beiden Webinstanzen von Port 8083 und von Port 8084. Informationen sind etwas gering um dein Problem einzugrenzen.
Welchen Browser, welches Betriebssystem nutzt du?
Zitat von: kadettilac89 am 24 September 2017, 10:12:53
--> Hast du für Webinstanz auf Port 8084 auch CRSF deaktiviert?
Hallo, danke an den CRSF hat es gelegen, habe den jetzt auf none gesetzt.... jetzt geht es :-)
Danke
Gruß
Thorsten
Zitat von: jailbreaker07 am 27 September 2017, 09:57:27
Hallo, danke an den CRSF hat es gelegen, habe den jetzt auf none gesetzt.... jetzt geht es :-)
Problem erstmal gelöst. Jetzt kannst du dich um die Absicherung kümmern, CRSF aktivieren und Link anpassen, ggf. nginx reverse proxy oder gleichwertige Authentizierung ... Risiko musst du abschätzen, ich würde es machen bzw. habe es aktiv.
Hinweis zu CRSF Aktivierung ... du kannst Parameter s. u. so setzen damit immer der selbe Token verwendet wird. Wenn du dann im Link den Teil &fwcsrf... anhängst sollte es sofort wieder funktionieren.
attr WEBCMD csrfToken csrf_10188947123456
&fwcsrf=csrf_10188947123456
Ansonsten immer noch gültig ...
Zitat von: kadettilac89 am 13 September 2017, 08:50:33
Du wirst noch in das Crsf-"Problem" laufen -->
https://forum.fhem.de/index.php/topic,69407.msg609080.html#msg609080 (https://forum.fhem.de/index.php/topic,69407.msg609080.html#msg609080)