NEWS
Adapter für einen sicheren Remote-Zugriff auf ioBroker
-
@apollon77 Erstmal Vielen Dank fürs Willkommenheissen. Und ich verstehe das nicht falsch. Alles sind berechtigte Einwände.
Mit dem Satz kann ich leider nichts anfangen, vielleicht könntest Du ihn für dummies umformulieren: "...die Admin-Konfig Seite in deinem npm Paket "bogus" weil Sie dem Template entspricht für admin <5 ... die seite für admin5+ da ist was drin weil jsonConfig."
Ich habe mir die etablierten Wege eines sicheren Fernzugriffs angeschaut. Die sind auch gut, aber nicht perfekt. Cloud Adapter geht über HTTP, was einen erheblichen Performance drawback und eingeschränkte Funktionalität bedeutet. Link-Adapter kann HTTP und sogar UDP, braucht aber für UDP einen Client, das NodeJs basiert ist, also nicht optimal für mobile Geräte. Außerdem auch er hat erhebliche Nachteile, wie: kein Support für HTTPs oder Login-Maske im ioBroker Web-UI.
Dieser Adapter ist auch bei Weitem nicht perfekt. Aber bietet beste Performance, alle Protokolle ab UDP und es sollen noch weiter Features kommen, wie z.B. NAT ins lokale Netzwerk.
Mit dem Vertrauen ja, ist so eine Sache. Ich wüsste allerdings nicht warum unbedingt Open Source mehr Vertrauen bedeuten soll. Was der Adapter macht, ist, glaube ich, aus der Beschreibung relativ klar. Wenn nicht, bin ich bereit es noch detaillierter zu machen. Würde ich persönlich was im Schilde führen, so würde ich es nicht im Adapter-Code packen, sondern in einer Dependency. Da schaut ja keiner hin
Und, generell, glaube ich, dass jeder mit dem ioBroker und unzähligen WiFi "smart" Geräten so viel Code und Funk permanent bei sich laufen lässt, da blickt keiner mehr durch
Ich will damit nicht sagen, dass Sicherheit unwichtig ist oder ich daran nicht gedacht haben. Es ist vor allem in meinem Interesse die ganze Sache sicher zu gestalten. Ich habe mir auch Gedanken gemacht wie ich das erreichen kann und viel Zeit in die Implementierung gesteckt. Ich kann konkrete Fragen dazu beantworten, man kann letztlich auch das lokale Netzwerk sniffen und sich selbst überzeugen.
Ok, lange Rede, kurzer Sinn, vielen Dank fürs Feedback. Ich werde an den Verbesserungsvorschlägen arbeiten. -
@iwg sagte in Adapter für einen sicheren Remote-Zugriff auf ioBroker:
Mit dem Satz kann ich leider nichts anfangen, vielleicht könntest Du ihn für dummies umformulieren: "...die Admin-Konfig Seite in deinem npm Paket "bogus" weil Sie dem Template entspricht für admin <5 ... die seite für admin5+ da ist was drin weil jsonConfig."
Du hast eine index_m.html drin, welche nur "option1" und "option2" enthält. Dieses würde von Admin 4.x genutzt und alle User die mit Admin 4 unterwegs sind würde damit "keine" gescheite Admin-Seite bekommen. Die jsonConfig, wlche ab Admin 5 genutzt wird macht da mehr sinn. Am besten mach eine "globalDependency" zu Admin >= 5.1.0 rein dann ists egal und du kannst auch die index_m.html rausnehmen.
Und vielen Dank für deine restlichen Ausführungen
-
@apollon77 Oh... jetzt verstehe ich was Du meintest. Vielen Dank für den Hinweis!
-
@iwg
Der Adapter nimmt doch nur die Konfiguration des Host und der Peers ab?
Wenn ich mir wg installieren warum sollte ich denn dann die Konfiguration mit closed source tools machen und nicht wissen wie der relay server oder peers konfiguriert werden.
Wie teuer wird die Lizenz sein? Wird es ein Bundle mit dem KNX Adapter geben? -
@tombox sagte in Adapter für einen sicheren Remote-Zugriff auf ioBroker:
Wie teuer wird die Lizenz sein?
Wieso wirfst du denn jetzt eine Kostenpflicht in den Raum?
Wo hast du gefunden, dass es überhaupt kostenpflichtig sein soll?
aber wenn, warum meinst du
@tombox sagte in Adapter für einen sicheren Remote-Zugriff auf ioBroker:Wird es ein Bundle mit dem KNX Adapter geben?
Was hat denn der Adapter von @chefkoch009 damit zu tun?
-
@tombox
Der Adapter hilft, under anderem, die Konfiguration zu erstellen. Das ist richtig. Die Konfiguration liegt aber im Plain-Text auf dem ioBroker host bzw. muss man die Konfiguration als Plain-Text auf einem Peer einspielen. Was macht es dann für Unterschied, ob die Konfiguration mit Open oder Closed Source gemacht worden ist? Die Nutzung für persönliche non-kommerzielle Zwecke ist kostenfrei. -
@iwg said in Adapter für einen sicheren Remote-Zugriff auf ioBroker:
Mit dem Vertrauen ja, ist so eine Sache. Ich wüsste allerdings nicht warum unbedingt Open Source mehr Vertrauen bedeuten soll.
Ich will damit nicht sagen, dass Sicherheit unwichtig ist oder ich daran nicht gedacht haben.
Was macht es dann für Unterschied, ob die Konfiguration mit Open oder Closed Source gemacht worden ist?
Vertrauen ist gut, Kontrolle ist besser. Viele Augen sehen mehr, Fehler sind menschlich.
In der Zeit wo @apollon77 deinen obfuskierten Code defacto nicht überprüfen konnte, hätte er bei einem open source project den code wahrscheinlich schon beeugt, vielleicht sogar eventuelle bugs gefunden und gleich einen PR dazu geschickt.
Und faktisch baut dein closed source adapater ja (komplett?) auf open source Projekte. "Zurückzugeben" ist ein intergralel Bestandteil von open source, der aber eben voll auf Freiwilligkeit setzt.
Und ja, Sicherheit ist der Grund warum praktisch alle (weit verbreiteten) VPN Technologien auf open source setzten und eben kein security by obscurity (closed source) sind
-
@opensourcenomad
Hallo,Vielen Dank für Dein Kommentar.
Ich werde demnächst den Adapter-Code offen im npm-Paket legen. Dann könnte jeder den Code auch kontrollieren.
Hier möchte ich aber noch mal betonen, dass der Adapter in der eingentlichen Kommunikation nicht teilnimmt. Der Adapter nimmt keine Netzwerkpakete des VPNs entgegen und leitet auch keine Netzwerkpakete weiter. Die Kommunikation wird ausschliesslich von WireGuard abgewickelt.
Der Adapter erstellt lediglich die WireGuard-Konfigurationsdatei, die im Klartext auf der Platte des ioBroker hosts liegt bzw. auf ein Peer übertragen werden muss.
Wie WireGuard funktioniert und was WireGuard genau macht ist sehr detailliert im WireGuard Whitepaper beschrieben ist. -
Mal schauen was sich etabliert, gibt ja mehrere Entwicklungen hier im Forum.
Oder auch hier, oder hier.
Vielleicht kommt da ja noch mehr.... -
@iwg
Wer ist der Betreiber des relay Servers?
Der muss ja der Vermittler für die verbindungsaufnahme spielen wenn das eigentliche Ziel nicht im Internet steht.
Ich gehe mal davon aus, das darüber auch der traffic läuft -
@oliverio said in Adapter für einen sicheren Remote-Zugriff auf ioBroker:
@iwg
Wer ist der Betreiber des relay Servers?
Der Server wird auch von mir betrieben.
-
Der Adapter unterstützt jetzt 1:1 NAT ins ioBroker's lokale Netzwerk.
-
Hallo,
viele neue Features wurden hinzugefügt. Details, wie immer, hier: https://htmlpreview.github.io/?https://github.com/iwg-vpn/iobroker.iwg-vpn/blob/main/howto/read-me.html
Der Merge-Request ist immer noch pending...: https://github.com/ioBroker/ioBroker.repositories/pull/1701
-
Merge request ist durch, der Adapter kann via iobroker UI (latest repo) installiert werden.
-
@iwg
@oliverio sagte in Adapter für einen sicheren Remote-Zugriff auf ioBroker:
Ich gehe mal davon aus, das darüber auch der traffic läuft
Ist dem so?
Wurde einem der Adapter mitlerweile von einem Core-Dev "begutachtet"?
EDIT:
War mal neugierig und habs getestet.
Adapter startet nach Anpassung der Rechte.Habe einen Peer angelegt (Habe eine willkürliche IP aus der Liste genommen):
Jedoch bleibt diese Seite leer:
iwg-vpn.0 2022-05-16 16:10:34.848 debug remotes config changed or started with no config iwg-vpn.0 2022-05-16 16:10:32.599 debug local peer config changed or started with no config iwg-vpn.0 2022-05-16 16:10:32.516 debug successfuly published PEERS to server iwg-vpn.0 2022-05-16 16:10:32.364 info Successfuly registered client iwg-vpn.0 2022-05-16 16:10:32.234 debug registering client at iwg-vpn.net iwg-vpn.0 2022-05-16 16:10:32.232 info Set id to: xxxxxxxxxxxxxxxxxxxxxxx iwg-vpn.0 2022-05-16 16:10:32.202 debug keys found. importing... iwg-vpn.0 2022-05-16 16:10:32.082 info starting. Version 0.9.1 in /opt/iobroker/node_modules/iobroker.iwg-vpn, node: v14.19.1, js-controller: 4.0.23 iwg-vpn.0 2022-05-16 16:10:31.268 debug States connected to redis: 127.0.0.1:9000 iwg-vpn.0 2022-05-16 16:10:31.178 debug States create User PubSub Client iwg-vpn.0 2022-05-16 16:10:31.176 debug States create System PubSub Client iwg-vpn.0 2022-05-16 16:10:31.091 debug Redis States: Use Redis connection: 127.0.0.1:9000 iwg-vpn.0 2022-05-16 16:10:31.017 debug Objects connected to redis: 127.0.0.1:9001 iwg-vpn.0 2022-05-16 16:10:31.008 debug Objects client initialize lua scripts iwg-vpn.0 2022-05-16 16:10:30.835 debug Objects create User PubSub Client iwg-vpn.0 2022-05-16 16:10:30.834 debug Objects create System PubSub Client iwg-vpn.0 2022-05-16 16:10:30.831 debug Objects client ready ... initialize now iwg-vpn.0 2022-05-16 16:10:30.720 debug Redis Objects: Use Redis connection: 127.0.0.1:9001 iwg-vpn.0 2022-05-16 16:10:25.743 info Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason iwg-vpn.0 2022-05-16 16:10:25.740 info terminating iwg-vpn.0 2022-05-16 16:10:25.721 info Got terminate signal TERMINATE_YOURSELF
-
@david-g
Hallo,
hast Du bei Dir Simple-API aktiviert? Die Seite, die QR-Codes generiert, liest die Konfiguration via Simple-API. -
@iwg
dann füge doch das simple api repo als dependency in iobroker.json hinzu
-
@iwg
Ja,
hab ich am laufen und in Benutzung.
Ist folgendermaßen konfiguriert:EDIT:
Hab es grad mal umgestellt, dass er auf alle IPs hört. Ändert aber nichts, -
@david-g
das ist schlecht... Könntest Du nachschauen, ob in der Browser-Konsole irgendwelche Fehler angezeigt werden?
Um Deinen Peer zu konfigurieren könntest Du (als Workaround) die Konfiguration manuell übertragen. Die ist unter Objects->iwg-vpn->0->Peers->test->config einsehbar. -
@oliverio
das ist nicht wirklich eine Dependency. Ist eine Art Komfort-Lösung zu Konfiguration von mobilen Peers. Meinst Du es sollte trotzdem als Dependency deklariert werden?