NEWS
Simple API sender herausfinden
-
Hallo,
ich habe seit heute meiner simpl API ein username und passwort spendiert.
Nun bekomme ich immer mal wieder das hier:simple-api.0 2025-05-06 16:31:43.358 warn No password or username! simple-api.0 2025-05-06 16:31:41.222 warn No password or username! simple-api.0 2025-05-06 16:31:35.973 warn No password or username! simple-api.0 2025-05-06 16:31:35.972 warn No password or username!
Nur leider kann ich es keiner Aktion zuordnen.
Gibt es irgendwie die Möglichkeit herauszufinden, woher die Anfrage kommt? -
Leider wohl nicht so simpel.
Im Adapter ist kein log enthalten das so eine Information ausgeben würde.Mit ein wenig hacken würde man das hinbekommen, zumindest die Absender ip herauszubekommen.. Kommt halt darauf an wie wichtig dir das ist.
Dazu musst du den simple api Adapter auf github Forken.
Dienen vorhandenen deinstallieren
In deinem Form dann an dieser Stelle die ip Adresse aus dem request Objekt herauslesen
https://github.com/ioBroker/ioBroker.simple-api/blob/6dab896d1a75e16cb8c1329381ede15f8dc42284/src/lib/SimpleAPI.ts#L180Die Adresse müsste man wie folgt ermitteln können
https://stackoverflow.com/questions/10849687/express-js-how-to-get-remote-client-addressDann deinen fork mittels Adapter von github installieren holen.
Und dann abwarten bis die Fehler Situation wieder auftritt
Zum Schluss dann alles wieder rückgängig.Wenn die Wahrscheinlichkeit hoch ist, das die Anfrage vom gleichen Rechner kommt, dann lohnt sich das eher nicht.
Du könntest auch den simple api Adapter deaktivieren und auf die Fehlermeldungen von der anderen Seite aus überprüfen
-
@oliverio Nee, schon ok. so wichtig ist es dann auch nicht
-
@oliverio wenn ich es über eine subdomain und proximanager nginx aktiviert habe. Kann es sein, dass das von nginx irgendwie abgepingt wird?
-
@ben1983
nginx macht von alleine nix. wenn dann hat es einen request bekommen.
falls du den falsch konfiguriert hast, kommt beim iobroker dann nicht alles an.
du kannst ja mal die zeiten im access-log/error-log vom nginx vergleichen. -
@oliverio OK, wo soll das sein?
Edit: habe in die datei rein geschaut.
es wird zumindest nichts versucht aufzurufen -
ich nutze selbst nicht den proxy manager.
ich verwende ein docker image namens
https://hub.docker.com/r/jwilder/nginx-proxyallerdings verwende ich das nicht für den iobroker
nur für nextcloud und ein paar andere diensteversuche doch mal den simple-api adapter zu deaktivieren.
evtl siehst ja im iobroker fehlermeldungen von irgendwelchen skripten.
dem log nach wird ja wohl alle paar sekunden aufgerufen -
@oliverio das war Zufall im log, es kommt mal so alle 30min was oder so.
wenn ich den Nginx ausschalte (domain deaktiviere), dann ist es weg.Hier ein Auszug aus der access.log
Das ist eine externe ip
kommt aus richtung seattle.
Könnte das Amazon sein?
Wenn ja, warum? -
ja das ist eine compute unit von amazon
https://whois.ipip.net/cidr/18.237.35.0/24warum kommt von außen da was drauf was du nicht zuordnen kannst?
hast du ports geöffnet?
hast du dich um die sicherheit gekümmert?
jeder offener port wird innerhalb von sekunden gefunden und gescannt.
wenn die software dahinter nicht wasserdicht ist, dann ist dein computer/LAN relativ schnell nicht mehr sicher, da man nie weiß was da gemacht wurde.
iobroker ist keine software die frontal im internet stehen kann.
auch ein reverse proxy vermindert nur die angriffsfläche.
ich würde dringendst dazu raten mal noch fail2ban einzusetzen,
wenn der Zugriff von außen überhaupt notwendig ist. -
@oliverio ich habe eine subdomain über nginx und letsencrypt zertifikat auf den 8087 der rest api gelgt.
-
warum denken immer alle ssl macht alles sicher.
ssl ist eine transportverschlüsselung.
d.h. daten die vom sender zum empfänger über mehrere server laufen
sind verschlüsselt.
falls irgendjemand an einem server etwas aufzeichnen würde, dann könnte er nicht mitlesen und irgendwelche passwörter kreditkartendaten etc. auszulesen.es sichert aber nicht irgendwelche zugänge ab.
hier mal die offiziellen nodejs fehler mit cve nummer. ok nicht alle betreffen hier irgendwelches internet zeugs. aber wer weiß das, in welcher kombination da was ausgenutzt wird
https://www.cvedetails.com/vendor/12113/so sieht es im vergleich zu nginx aus. das ist eine software die dazu gedacht ist frontal im internet zu stehen. da werden bugs auch wirklich richtig schnell gefixt
https://www.cvedetails.com/vendor/10048/ -
fail2ban verhindert ebenfalls keinen angriff.
wenn das richtig konfiguriert ist, erkennt es aber fehlerhafte zugriffe und setzt die ip adresse auf eine ban liste und weißt alle weiteren anfragen dann für eine konfigurierbare zeit ab.
das verhindert das rumprobiert werden kann.
es verhindert nicht direkte angriffe unter ausnutzung von sicherheitslücken. -
@oliverio Ja, hatte ja zum glück mit passwort gesichert.
habe ja einige webserver via nginx online.dachte die simple api könnte man so auch gut nutzen.
Nei den anderen seiten sohe ich nichts in der richtung im log -
@ben1983 sagte in Simple API sender herausfinden:
zum glück mit passwort gesichert
das ist nur eine illusion. wer sicherheitslücken ausnutzen kann benötigt keine passwörter.
das hält nur skript kiddies ab. -
@oliverio ok, aber amazon wird ja jetzt nicht über die simple api über den iobroker aus dem proxmox ins netzwerk gekommen sein
-
@ben1983
das ist eine compute unit, nicht amazon selbst
die kannst du mieten
bzw. im ersten jahr 750 Stunden pro monat kostenlos nutzen (das ist rund um die uhr)
https://aws.amazon.com/de/free/?all-free-tier.sort-by=item.additionalFields.SortRank&all-free-tier.sort-order=asc&awsf.Free Tier Types=*all&awsf.Free Tier Categories=*alldie hackers holen sich alle der reihe nach solche virtuellen maschinen lassen das internet abgrasen.
hier kannst du auchmal schauen. evtl findest du deine ip?
https://www.shodan.io/search?query=iobrokerdas sind alle iobrokers die im internet stehen.
shodan ist eine suchmaschine genau für soetwas.
also wenn du eine sicherheitslücke hast für nodejs/express/iobroker musst du nichtmal selber scannen.
man sagt, das da sogar welche ohne passwortschutz sind.
probiere es aber nicht, da das definitiv ein straftatbestand ist, falls er entdeckt wird. Bei deinem eigenen Rechner darfst du aber.
https://www.gesetze-im-internet.de/stgb/__202a.html -
@oliverio nee steht nicht drin. es steht ja auch nicht der ioBroker online, hatte ja nur die simple api drin... aber habe die deaktiviert
-
erzähl mal warum die simple api offen im internet sein sollte. evtl gibts noch eine andere möglichkeit?
-
@oliverio hatte die einfach zum ansteuern von gewissen Dingen genutzt. NFC Tag im Garten und damit was angestoßen.
-
und das muss aus dem internet sein?
wenn ja dann nutze den iobroker glaube cloud nennt sich das.
da hast du zugriff auf den iobroker aus dem internet, aber auf eine sichere weise. kostet aber etwas.
kostenlos mit vpn/wiregard oder tailscale. muss man halt im internet immer noch einen extraknopf drücken um das vpn zu aktivieren.
bei wireguard muss man überlegen ob man schon im wlan ist oder nicht. sonst klappt das mit wireguard nicht, da der vpn tunnel von innerhalb des netzes nicht aufgebaut werden kann. aber das sollte man hinbekommen