ESP32 an Fritzbox von außen steuern. Möglich?

Gast #7396436
Lesenswert?

Moinsen,

ich versuche mich kurz zu fassen. Meine FB ist von meinem Handy über https://kryptischesZeug.myfritz.netz

erreichbar, auch wenn das Zertifikat als ungültig bezeichnet wird.

Auf dem ESP32 Solar Server habe ich einen Server laufen, d.h. der ist erstmal nur da.

Kann ich mit Aufruf: https://kryptischesZeug.myfritz.netz/zeigedaten

Serverhandle:

1
   HTTPClient http;
2
   Serial.print("HTTP GET request to ");
3
   Serial.println(serverName);
4
   http.begin(serverName);
5

6
   String payload = http.getString();
7
   if (payload.indexOf("zeigedaten") != -1) {
8
       Serial.println("Hello World");
9
   }

einen Zugriff auf meine FB machen? Ich möchte kein dynDNS etc verwenden, weil das allesm Geld kostet, Fritz bietet das ja auch an.

Später sollen noch mit https://kryptischesZeug.myfritz.netz/zeigedaten&v=xxx&x=nnn& .... Parameter übergeben werden

ESPAsyncWebServer möchte ich nicht verwenden.

Grüße, Thorsten

von außen auf die Box zugreifen? D.h.

#7396443
Lesenswert?

Nein, denn https wird in Deinem Fall ja schon von der Fritzbox selbst behandelt.

Du müsstest in der Fritzbox eine Portweiterleitung von Port 443 auf Deinen ESP32 einrichten und die Fernadministration der Fritzbox entweder abschalten oder aber eine Portweiterleitung von einem anderen Port auf den Port 443 Deines ESP32 einrichten, und dann diesen Port hier statt 12345 angeben:

https://kryptischesZeug.myfritz.netz:12345

Und dann muss Dein ESP32 natürlich auch https "sprechen".

#7396475
Lesenswert?

Thorsten M. schrieb:

Ok...443 wegen SSL? SSL2 ist auf dem ESP32 möglich aber aufwendig und die Codegröße knallt durch die Decke. Die Fritzbox auf http umstellen wird wohl nicht gehen?

Du kannst natürlich auch Port 80 von der Fritzbox an Deinen ESP32 durchreichen lassen.

Dann kannst Du das über Deinen Dyndns-Namen via http ansprechen. Ja, Dyndns-Namen, denn nichts anderes ist Dein myfritz-Name.

#7396489
Lesenswert?

Thorsten M. schrieb:

https://kryptischesZeug.myfritz.netz/zeigedaten&v=xxx&x=nnn&; ....

mit http://kryptis... und einer Portweiterleitung auf der Fritzbox auf ESP32-IP port 80 ginge das, aaaber dann steht der ESP32 für ALLE sichtbar im Internet ud evt. auch auf deine gesamtes Netz je nach Bugs des ESP32. Besser und sicherer ist es auf der FB ein VPN von deinem Handy einzurichten und vom Handy aus direkt die interne IP des ESP32 anzusprechen.

#7396555
Lesenswert?

Thorsten M. schrieb:

Rüdiger B. schrieb:

Besser und sicherer ist es auf der FB ein VPN von deinem Handy einzurichten und vom Handy aus direkt die interne IP des ESP32 anzusprechen.

Bahnhof, Ägypten.... ???? An meinem wlan hängt, dnla Videoserver, samba fileserver, 8 ESP's,. OTA ... also ne Menge.

Denke Rüdiger B. meinte damit es wäre besser den esp32 von deinem privaten Netz zu trennen wenn dieser durch die Portweiterleitung aus dem Internet erreichbar ist. Ist bestimmt keine schlechte Idee so ein "iot" Gerät weitmöglichst abzusichern.

#7396629
Lesenswert?

Moin, Du kannst einfach in der Fritzbox eine Freigabe einrichten. Hast Du mehrere Geräte, kannst Du andere Ports also nicht 80 sondern z.B.424 von Außen nach Port 80 innen weiterleiten. Diese erreichst Du dann über http://kryptischeszeug.myfritz.netz:424 oder über Deine IP:424. Ich habe für 0.20€/Monat eine Domain-Weiterleitung gemietet, mit der ich meine Domain auf die Fritzbox und somit auf mein Gerät leite. Ich nutze das gerne, um die Temperatur im Haus im Urlaub zu sehen. In einigen Ländern ist es unterbunden, eine VPN nach Hause aufzubauen, http geht eigentlich immer. Gruß Carsten

Angehängte Dateien:
#7396634
Lesenswert?

Thorsten M. schrieb:

Bahnhof, Ägypten.... ???? An meinem wlan hängt, dnla Videoserver, samba fileserver, 8 ESP's,. OTA ... also ne Menge.

Kein Bahnhof, auch keine Pyramiden.

Mit einem VPN kannst Du eine durchs Internet getunnelte Netzwerkverbindung zwischen Deinem Smartphone (oder sonst einem Gerät) und Deiner Fritzbox aufbauen, und dann verhält sich Dein Smartphone so, als ob es zu Hause im WLAN eingebucht wäre.

Wenn der ESP, mit dem Du Deine Webaktionen machen willst, im lokalen Netzwerk unter http://192.168.178.123 erreichbar ist, dann ist er es über ein VPN auch. Das funktioniert auch, wenn Du in Toronto bist, oder in Kapstadt.

Und wenn Du mit Deinem Smartphone an Dateien auf Deinem NAS ranwillst, das unter 192.168.178.234 zu erreichen ist, dann geht das auch, über die gleiche VPN-Verbindung.

Anders als die bislang besprochene Portweiterleitung ist das aber /sicher/, denn es ist erst nach erfolgreichem Aufbau der VPN-Verbindung nutzbar. Eine Portweiterleitung aber würde rund um die Uhr Hinz & Kunz und allen Skriptkiddies offenstehen, die darüber allen möglichen Mist an Deinen ESP senden könnten. Da hilft es auch nicht, daß der myfritz-Name kryptisch ist, oder daß die Portnummer ungewöhnlich ist; diese Personengruppe macht beständig Portscans, um offene Ports irgendwo zu finden und um dann zu sehen, "was geht".

Das dauert im Regelfall nur ein paar Minuten, dann kommt der erste vorbei.

Mit einem VPN bist Du davor geschützt.

Carsten-Peter C. schrieb:

Ich habe für 0.20€/Monat eine Domain-Weiterleitung gemietet

Das ist eine Dyndns-Variante, der Threadstarter hat schon eine, nämlich myfritz. Das ist kostenlos, hat halt den Nachteil der kryptischen Namen.

#7396647
Lesenswert?

Harald K. schrieb:

Anders als die bislang besprochene Portweiterleitung ist das aber sicher, denn es ist erst nach erfolgreichem Aufbau der VPN-Verbindung nutzbar. Eine Portweiterleitung aber würde rund um die Uhr Hinz & Kunz und allen Skriptkiddies offenstehen, die darüber allen möglichen Mist an Deinen ESP senden könnten. Da hilft es auch nicht, daß der myfritz-Name kryptisch ist, oder daß die Portnummer ungewöhnlich ist; diese Personengruppe macht beständig Portscans, um offene Ports irgendwo zu finden und um dann zu sehen, "was geht".

Das machen nicht nur Personengruppen. Schwieriger ist heutzutage, dass es automatisiert passiert und Dienste wie Shodan quasi davon leben.

@Thorsten: Ich würde keinesfalls den ESP direkt an das Internet hängen, wie von Harald und Co. bereits geschrieben wurde. Nimm ein VPN wie vorgeschlagen.

#7396658
Lesenswert?

@Harald Nichts für Ungut, sorry für den Klugsch***. :)

Thorsten M. schrieb:

Ok...443 wegen SSL? SSL2 ist auf dem ESP32 möglich aber aufwendig und die Codegröße knallt durch die Decke. Die Fritzbox auf http umstellen wird wohl nicht gehen?

Nur als Hinweis: Moderne Browser unterstützen kein SSLv2 mehr, aus gutem Grund. Das Protokoll hat zahlreiche Schwachstellen. Selbst die Nachfolger SSLv3, TLSv1.0 und TLSv1.1 sind bereits veraltet. Lediglich TLSv1.2 und TLSv1.3 sollten noch verwendet werden.

#7396676
Lesenswert?

Harald K. schrieb:

Carsten-Peter C. schrieb:

Ich habe für 0.20€/Monat eine Domain-Weiterleitung gemietet

Das ist eine Dyndns-Variante, der Threadstarter hat schon eine, nämlich myfritz. Das ist kostenlos, hat halt den Nachteil der kryptischen Namen.

Hallo, das ist für eine .de – Domain, die ich z.B. auf meine HP, die Fritzbox oder/und Postfach leiten kann. Gruß Carsten

#7396701
Lesenswert?

Carsten-Peter C. schrieb:

Hallo, das ist für eine .de – Domain, die ich z.B. auf meine HP, die Fritzbox oder/und Postfach leiten kann.

Ja, Dyndns. Da mag noch ein Rattenschwanz mehr dran hängen, aber Deine Fritzbox muss dem Ding ja irgendwie seine IP-Adresse mitteilen. Und damit ist es dyndns, in Deinem Fall mit mehr Lametta dran.

Ich hab' was ähnliches, eine .de-Domain bei joker.com, die kostet mich irgendwas um 5€ im Jahr und bietet mir einen frei konfigurierbaren DNS-Server, mit einer besseren Handvoll dyna-Records (dyndns), mit denen ich einer Latte von Fritzboxen oder sonstwas eine ensprechende Umleitung verpassen kann.

Sowas ist gegenüber myfritz in erster Linie lesbarer (und bietet anders als myfritz auch einen MX-Record, den der eine oder andere Mail-Anbieter sogar akzeptiert, wenn man einen eigenen Mailserver selbst hosten will)

(Firma: drx) #7396707
Lesenswert?

Harald K. schrieb:

Mit einem VPN kannst Du eine durchs Internet getunnelte Netzwerkverbindung zwischen Deinem Smartphone (oder sonst einem Gerät) und Deiner Fritzbox aufbauen, und dann verhält sich Dein Smartphone so, als ob es zu Hause im WLAN eingebucht wäre.

scheinbar haben die wenigsten hier IPV6... Dann funktioniert das ganze nämlich nicht mehr ohne Umwege.

#7396722
Lesenswert?

Harald K. schrieb:

Ja, Dyndns. Da mag noch ein Rattenschwanz mehr dran hängen, aber Deine Fritzbox muss dem Ding ja irgendwie seine IP-Adresse mitteilen. Und damit ist es dyndns, in Deinem Fall mit mehr Lametta dran.

Hallo Harald, nein kein Dyndns sondern eine Domain Umleitung. Ich rufe meine .de Domain auf und werde umgeleitet auf z.B. http://kryptischeszeug.myfritz.net . Dort ist meine derzeitige IP Gespeichert. Genauso gut kann ich meine Homepage Adresse eintragen. Dann wird eben auf die HP umgeleitet. Das wurde von der Telekom mal angeboten und nennt sich MyDomain. eMails lassen sich auch weiterleiten (z.B. Post@meinedomain.de zu meinem Postfach). Gruß Carsten

Gast #7396866
Lesenswert?

Sorry, wenn ich mich hier ausgeklinkt habe. Aber es funktioniert problemlos die Fb auf http umzustellen, das Häkchen setzen für den unbeschränkten Zugriff von außen (Vorsicht, keine Firewall!) und eine Weiterleitung für Port 80 durch zu reichen an den ESP32.

Der Aufruf von http://kryptischeszeug.myfritz.net/zeigedaten

wird von meinem ESP32 brav mit

USolar = 45.V ISolar = 16.8A usw. usw

beantwortet. Ob man ESPAsyncWebServer verwendet für eine Callback Funktion oder das in den Loop packt mit WifiServer Abfragen ist wumpe. ESPAsyncWebServer ist etwas komplizierter, weil C++ Strukturen verwendet werden aber eleganter.

1
  #define PARAM_MESSAGE "zeigedaten"
2

3
    server.on("/get", HTTP_GET, [] (AsyncWebServerRequest *request) {
4
        String message;
5
        if (request->hasParam(PARAM_MESSAGE)) {
6
            message = request->getParam(PARAM_MESSAGE)->value();
7
        } else {
8
            message = "No message sent";
9
        }
10
        request->send(200, "text/plain", "GET: " + message);
11
    });

Dass jeder, der den "kryptischen Ausdruck" kennt Zugriff hat ist klar, auch wenn es nur auf den ESP32 ist über Port 80. Da sich dahinter aber kein Handler verbirgt ist das unkritisch.

PS: ChatGPT erzeugt den Code übrigens richtig und problemlos, Da reichen 3 Sätze zu beschreiben was man will.

Angehängte Dateien:
#7397033
Lesenswert?

Thorsten M. schrieb:

Dass jeder, der den "kryptischen Ausdruck" kennt Zugriff hat ist klar, auch wenn es nur auf den ESP32 ist über Port 80. Da sich dahinter aber kein Handler verbirgt ist das unkritisch.

Den "kryptischen Ausdruck" braucht dafür niemand. Angreifer scannen IP-Ranges, keine Hostnamen. Für den kompletten IPv4 Bereich des Internets braucht man mit Tools wie masscan nur wenig Zeit: https://resources.infosecinstitute.com/topic/masscan-scan-internet-minutes/ Es ist nur eine Frage der Zeit, bis das jemand findet.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren