NEWS
Adapter für einen sicheren Remote-Zugriff auf ioBroker
-
@iwg sagte in Adapter für einen sicheren Remote-Zugriff auf ioBroker:
@wendy2702 weil es evtl. nicht für alle einfach WireGuard zu verstehen und einzurichten. Außerdem, man braucht ja einen Relay-Server.
Ich hatte Deinen Post wie eine frage verstanden und nicht das du einen Adapter entwickelst.
Wieso braucht man einen Relay-Server?
-
@wendy2702 einen Relay-Server braucht man als gateway zwischen dem ioBroker host und remote Geräten. Der ioBroker ist normalerweise nicht aus dem Internet erreichbar, genau so wie die remotes. Wenn man von seinem iPhone aus auf den ioBroker zugreifen möchte, dann bräuchte man einen gateway, der sowohl für den ioBroker als auch für den iPhone erreichbar ist.
-
@paul53 die ist im npm-Packet mit dabei
-
@iwg sagte in Adapter für einen sicheren Remote-Zugriff auf ioBroker:
einen Relay-Server braucht man als gateway zwischen dem ioBroker host und remote Geräten.
Bei DualStack lite. Bei reinen ipv6 oder reinen ipv4 Verbindungen braucht man das nicht.
-
@thomas-braun Na irgendwie schon. Jemand muss ja die in IPv6 eingebetete private IPv4 Adressen in die öffentlichen NATen. Der NAT Server steht dann beim Provider. Es sei denn ich stehe auf dem Schlauch
-
@iwg sagte in Adapter für einen sicheren Remote-Zugriff auf ioBroker:
@paul53 die ist im npm-Packet mit dabei
und warum nicht im GitHub Repo?
-
@iwg sagte in Adapter für einen sicheren Remote-Zugriff auf ioBroker:
Jemand muss ja die in IPv6 eingebetete private IPv4 Adressen in die öffentlichen NATen.
Bei reinen IPv6 wird nix eingebettet.
-
@iwg sagte in Adapter für einen sicheren Remote-Zugriff auf ioBroker:
@wendy2702 einen Relay-Server braucht man als gateway zwischen dem ioBroker host und remote Geräten. Der ioBroker ist normalerweise nicht aus dem Internet erreichbar, genau so wie die remotes. Wenn man von seinem iPhone aus auf den ioBroker zugreifen möchte, dann bräuchte man einen gateway, der sowohl für den ioBroker als auch für den iPhone erreichbar ist.
Was sind denn die „remote Geräte“ in deinem Beispiel?
Und wieso benötige ich den zusätzlich zu WireGuard?
Oder soll WireGuard bzw. dein Adapter in deinen Ausführungen der Relay Server sein?
Wird in deinem Adapter wenn er installiert ist auch erklärt was man in seinem Router etc. machen muss damit der VPN aufgebaut werden kann?
-
@iwg Willkommen in der Runde der Adapter-Entwickler und glückwunsch zum ersten Adapter.
Da hast Du dir gleich Thema ausgesucht welches sehr Sicherheitskritisch ist - und das als Closed Source Adapter dessen JavaScript Obfruscated ist. Den zu benutzen setzt bei den Usern einiges an Vertrauen voraus (ist für diese aber nicht ersichtlich).
Es gibt mit dem Cloud Adapter für Fernzugriff und dem Link-Adapter (inkl. Link Server-Seite für Installatoren) an sich etablierte Wege einen sicheren Fernzugriff zu gewährleisten.
Ebenso ist 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 jsonConfigAlso alles in allem muss ich sagen das das für mich nicht sonderlich vertrauenserweckend ist!
Für eine künftige Aufnahme in das Repo musst Du in jedem Fall mir (oder einem der anderen Core-Devs Zugriff geben für einen Review ... ggf schon jetzt machen?).
Bitte gib mal mehr Infos zu dem was der Adapter genau tut ...
Bitte verstehe mich nicht falsch. Ich möchte deinen Adapter keineswegs schlecht machen. Allerdings mit den Informationen in so einem sicherheitskritischen Thema hat das einen komischen Beigeschmack wie es jetzt gerade ist. Mal so interessehalber: was ist eigentlich der Grund für Closed source?
-
@wendy2702 sagte in Adapter für einen sicheren Remote-Zugriff auf ioBroker:
Wird in deinem Adapter wenn er installiert ist auch erklärt
im Repo ist ein HowTo als HTML
-
@wendy2702 Die "remote Geräte" sind Geräte, die man außerhalb des lokalen Netzwerks verwendet, um auf ioBroker zuzugreifen. Z.B. ein Smartphone, oder ein PC in einem anderen lokalen Netztwerk.
WireGuard ist die Technologie, die drunter liegt. Die vom Adapter verwendet wird.
Im Router muss man nichts machen. Die Beschreibung wie man alles einrichtet ist aus den Einstellungen des Adapters aufrufbar und liegt hier:
https://htmlpreview.github.io/?https://github.com/iwg-vpn/iobroker.iwg-vpn/blob/main/howto/read-me.html -
@homoran Richtig. Einfach dem Link folgen:
https://htmlpreview.github.io/?https://github.com/iwg-vpn/iobroker.iwg-vpn/blob/main/howto/read-me.html -
@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.