NEWS
... is reachable from internet without any protection!
-
Seit einem der Updates kommt beim Start des Admin-Adapters immer diese Warnung:
2023-10-14 13:09:29.625 - error: admin.2 (10377) Error: The URL "http://111.222.333.444:80" is reachable from internet without any protection!
mit meiner öffentlichen IP-Adresse.
Ist mir schon klar das dort ein Webserver läuft - ich habe eine feste IP-Adresse und betreibe dahinter einen Webserver mit Port 80 und 443. Da ist also etwas völlig anderes dahinter als ioBroker.Wenn er schon prüft, dann eventuell nicht auch ob er wirklich selbst dahinter steht?
-
@bananajoe Das scheint vom mqtt Adapter zu kommen
https://github.com/ioBroker/ioBroker.mqtt/blob/master/README.md
aus dem changelog5.1.0 (2023-10-11) (bluefox) Added security check if the server is available from the internet without protection
-
@bananajoe Port 80, also http, sollte man heitzutage ja auch nicht mehr unbedingt verwenden. Hast Du keine Möglichkeit, den Webserver mit einem Zertifikat von Letsencrypt auszustatten und dann per https/443 laufen zu lassen. Vielleicht erledigt sich die Meldung damit ja?! Wobei ich vermute, da wird nur geprüft, ob eine Antwort von der IP zurück kommt und nicht, was da genau zurück kommt.
Gruss, Jürgen
P.S.: Über meine öffentliche IP sind auch, je nach Subdomain, verschiedene Dienste erreichbar, ohne Subdomain kommt meine Wetterhomepage. Alles per https. Ich habe so eine Meldung noch nie im Log gesehen.
-
eigentlich doch.
zumindest um einen redirect auf https durchzuführen. -
@feuersturm sagte in ... is reachable from internet without any protection!:
@bananajoe Das scheint vom mqtt Adapter zu kommen
es kommt von diesem packet, welches vom iobroker.web adapter verwendet wird
https://github.com/ioBroker/webserver/network/dependents
also dort ein issue erfassen?
-
@oliverio Ich meinte damit, dass ich nicht weiss, was der Adapter da genau prüft. Wenn er nur schaut, ob unter der öffentlichen IP eine gültige Antwort von einem Webserver kommt anstatt einer Fehlermeldung, dann würde die Meldung im Log ja auch auftauchen, wenn die Adresse per https erreichbar ist. Wobei ich nun fast denke, es wird nur Port 80 geprüft? Denn der wird bei mir automatisch auf 443 umgeleitet und, wie gesagt, keinerlei derartige Meldungen im Log.
Gruss, Jürgen
-
wenn man in den code reinschaut, dann ist das so korrekt.
er prüft auch, sofern der port abweichend ist, ob 80/443 über die öffentliche IP erreichbar ist.deswegen: entweder issue für das packet anlegen oder die Meldung ertragen oder für den webserver ein alternativer port nehmen (aber auch nicht 8081)
-
@oliverio sagte in ... is reachable from internet without any protection!:
es kommt von diesem packet, welches vom iobroker.web adapter verwendet wird
Danke. Ich hatte mich nur an den Changelog erinnert, da ich gestern meine Adapter aktualisiert hatte.
-
@oliverio sagte in ... is reachable from internet without any protection!:
er prüft auch, sofern der port abweichend ist, ob 80/443 über die öffentliche IP erreichbar ist.
Ich sehe eben, das ist ja erst in Version 5.1.0 (also auf Github) im MQTT-Adapter eingepflegt. Ich bin auf stable 4.1.1. Das heißt, wenn ich jetzt von Github updaten würde, hätte ich die Meldung auch, obwohl es nicht mein iobroker ist, der da von außen erreichbar ist, sondern diverse andere Geräte und Dienste bzw. der davor liegende Reverse Proxy? Nur weil ich eben nur die eine öffentliche IP habe, die sich alle geräte n meinem Netz teilen (müssen).
Das wäre in der Tat dann Käse.Gruss, Jürgen
-
@wildbill sagte in ... is reachable from internet without any protection!:
@bananajoe Port 80, also http, sollte man heitzutage ja auch nicht mehr unbedingt verwenden. Hast Du keine Möglichkeit, den Webserver mit einem Zertifikat von Letsencrypt auszustatten und dann per https/443 laufen zu lassen. Vielleicht erledigt sich die Meldung damit ja?! Wobei ich vermute, da wird nur geprüft, ob eine Antwort von der IP zurück kommt und nicht, was da genau zurück kommt.
Gruss, Jürgen
P.S.: Über meine öffentliche IP sind auch, je nach Subdomain, verschiedene Dienste erreichbar, ohne Subdomain kommt meine Wetterhomepage. Alles per https. Ich habe so eine Meldung noch nie im Log gesehen.
Der Port 80 wird aus 2 Gründen benötigt:
- Weiterleitung von Port 80 auf 443
- Automatische Erzeugung von Lets Encrypt Zertifikaten. Ok, das könnte man wohl mit TLS-ALPN umgehen, hatte ich mich aber noch nicht näher beschäftigt
Dahinter ist ein Apache Webserver mit diversen Subdomains für verschiedene Dienste, zumeist auch als Reverse Proxy. Jede Domain läuft hierbei unter einem eigenen, eingeschränkten Benutzer (und das bei mir der sonst immer nur als root arbeitet). Zudem nutze ich intensiv Geoblocking, bis auf meine Homepage ist alles nur aus Deutschland erreichbar.
Ich denke also ich weis was ich tue.
Port 443 wird ja auch gar nicht geprüft, er scheint nur zu testen ob hinter Port 80 was kommt (vermutlich holt er sich die 200 Ok Meldung und das war es dann).
-
@bananajoe Ist ja ähnlicher Aufbau wie bei mir. Bei mir ist Port 80 auch erreichbar, wird aber eben auch auf 443 umgeleitet. Nur bin ich halt auf stable. Und die Version, um die öffentliche IP zu checken, scheint ja erst mit der letzten Github-Version vom MQTT-Adapter hinzugekommen zu sein. Also wird die Meldung sehr wahrscheinlich auch bei mir auftauchen wenn ich den jetzt auf die Github-Version anheben würde. Was ich aber nicht tue. Stable ist eben doch stable.
Gruss, Jürgen
-
Hey all,
Ja das ist ein neues Feature und ja bei „Profi setups“ ist die Erkennung etwas wackelig. Ihr seid auch nicht die primäre Zielgruppe. Von daher seht es als Info und hakt es für euch ab wenn ihr wisst was ihr tut … die Aussage an sich ist ja nicht falsch das da was ungesichert im Netz steht. Würde auch von euch dann aber keinen thread ala „Ich bin gehackt worden“ erwarten. (Wobei der letzte thread dazu für mich aussieht als ob ein nicht aktueller Apache das erste einfallstor war und gar nicht iobroker direkt)
Unerfahrene User sind da schon eher die Zielgruppe und die Idee kommt ja nicht von ungefähr wenn man so die threads bzw. Support Anfragen bei Bluefox oder die üblichen Quellen anschaut.
Wenn ihr also Ideen habt wie man die false - positive Meldungen reduzieren kann durch Anpassungen an der Logik da man bitte als issue beim Web Adapter anlegen. Danke
-
@apollon77 sagte in ... is reachable from internet without any protection!:
Wenn ihr also Ideen habt wie man die false - positive Meldungen reduzieren kann durch Anpassungen an der Logik da man bitte als issue beim Web Adapter anlegen. Danke
auf einer bestimmten url liefert der iobroker ein zertifikat aus oder irgendeine datei, anhand man feststellen kann, das es der iobroker ist.
http(s)://<ip>:<port>/proofofiobroker.html
wenn auf dieser url nix kommt, ist es kein iobroker -
@oliverio sagte in ... is reachable from internet without any protection!:
wenn auf dieser url nix kommt, ist es kein iobroker
wenn aber
@apollon77 sagte in ... is reachable from internet without any protection!:
ein nicht aktueller Apache das erste einfallstor war und gar nicht iobroker direkt)
nutzt das doch auch nichts
-
@oliverio im Falle von Mqtt oder sonstige Server schwierig …. Aber für wen/admin vllt eine Idee. Ein issue mit der Idee wäre cool.
-
es geht jetzt um die falsch positiven herauszufiltern.
d.h. jemand betreibt einen iobroker und zusätzlich, evtl komplett unabhängig vom iobroker in seine netzwerk einen webserver, der auf der öffentlichen ip horcht.
dann meldet der iobroker das problem, obwohl es nix mit iobroker zu tun hat.wenn jemand öffentlich einen webserver betreibt, dann spricht es ihn nicht davon frei evtl weitere sicherheitsmaßnahmen zu ergreifen. aber iobroker hat damit erst mal nix zu tun
-
@oliverio sagte in ... is reachable from internet without any protection!:
es geht jetzt um die falsch positiven herauszufiltern.
ist mir klar. Vollkommen zurecht.
Für jemanden der so paranoid ist wie ich, und dann diese Meldung unberechtigt bekommt, geht dann die blanke Panik los.
-