Erreichen eines Geräts in meinem LAN über das Internet


18

Ich habe ein eingebettetes Gerät, das ich über Ethernet IP programmieren kann, wenn es am gleichen Router wie der PC angeschlossen ist:

Bildbeschreibung hier eingeben

Ist es möglich, den gesamten Datenverkehr über das Internet zu senden und dennoch zu programmieren? Um es ein bisschen klarer zu machen, so etwas wie:

Bildbeschreibung hier eingeben


6
"Ethernet IP"? Ist das nicht einfach ... ein normales LAN-ähnliches Netzwerk?
Grawity

„Programmieren über Ethernet - IP“ - was genau das bedeutet es würde helfen , wenn Sie angeben können , welches Gerät und IDE Sie sprechen , ich die IDE - Verbindung zu dem Gerät auf eine bestimmte IP - Adresse und TCP - Port annehmen , Befehle zu empfangen?.?
slhck

@grawity ja, es ist ein reguläres LAN. Wie ein Netzwerk & bei slhck verwende ich Codesys IDE und ein Gerät mit Codesys Runtime darauf!
Motor

3
Die offensichtliche Antwort ist natürlich IPv6.
Michael Hampton

1
@grawity Ethernet / IP ist ein industrielles Automatisierungsprotokoll, das nicht mit IP over Ethernet zu verwechseln ist :(
richardb

Antworten:


50

Die einfache (und unsichere) Methode

Was Sie suchen, nennt sich Port Forwarding [ 1 ] [ 2 ] .

Nehmen wir zum Beispiel Folgendes an:

  • Ihr programmierbares Gerät arbeitet am Port 22und hat die IP192.168.1.5

  • Ihre öffentliche IP ist 122.176.11.55

Dann können Sie in die Einstellungen Ihres Routers gehen und einen WAN-Port (zB 8022) an weiterleiten 192.168.1.5:22.

Jetzt können Sie von überall aus über das Internet auf das Gerät zugreifen, indem Sie 122.176.11.55:8022statt 192.168.1.5:22in Ihrer IDE auf zugreifen .

Beachten Sie, dass sich Ihre öffentliche IP-Adresse jederzeit ändern kann, sofern Sie keine statische IP- Adresse haben . In diesem Fall sollten Sie die dynamischen DNS-Dienste überprüfen .

HINWEIS : Wenn Ihr Gerät nicht über eine Authentifizierungsmethode verfügt, kann mit ziemlicher Sicherheit jemand mit böswilliger Absicht im offenen Web darauf zugreifen. Siehe unten für eine sichere Alternative.

Die sichere (und ehrlich gesagt nicht viel kompliziertere) Methode

Hinterlassen Sie einen PC (oder Raspberry Pi oder ähnliches) , die mit Ihrem Netzwerk und den Zugriff , die fern anstatt durch etwas sicher wie SSH, und dann durch sie über LAN programmieren Sie Ihr Gerät.
Dies hat auch den zusätzlichen Vorteil, dass Sie auch dann arbeiten können, wenn Ihr Gerät weder TCP noch UDP verwendet :)

Ein bisschen langweilig, ja. Aber sicher.


10
Es wäre auch hilfreich, sich zu merken, dass jeder andere auf der ganzen Welt möglicherweise den Code ändern könnte, wenn OP dafür eine Portforwarding-Funktion aktiviert. Es sei denn, es gibt früher oder später auch eine Form der Authentifizierung, dann finden die Portschiffer den Port und ein Hacker versucht einzubrechen. Das ist eine Garantie.
LPChip

@ LPChip In der Tat! Ich hätte das erwähnen sollen, mein Schlimmes.
rahuldottech unterstützt Monica

Schöne Ergänzung. :) Ich würde dir eine +1 dafür geben, aber ich habe es schon früher gegeben, denn auch ohne die Warnung war es schon eine gute Antwort. :)
LPChip

2
@FreeMan Später als in, kann es Tage dauern, bis ein Bot-Crawler erscheint, je nachdem, welchen Port Sie verwenden, aber früher in dem Sinne, dass es, wenn Sie Pech haben, in wenigen Minuten passieren kann.
LPChip

1
@IsmaelMiguel Natürlich sollten Sie alle offensichtlichen grundlegenden Sicherheitsvorkehrungen treffen. Ich habe einfach keine Möglichkeit zu wissen, was sie in diesem speziellen Fall sind.
rahuldottech unterstützt Monica

11

Die einzig richtige Antwort kann "VPN" sein.

Die einfache Verwendung von IPv6 würde "funktionieren" (vorausgesetzt, der Router ist nicht für die Firewall außerhalb des Geräts konfiguriert und alle ISPs, Geräte und Laptops unterstützen IPv6), aber aus dem gleichen Grund ist die Portweiterleitung eine schreckliche Idee.

Abgesehen von der bekannten IPv6-Propaganda möchten Sie eigentlich nie, dass die Geräte in Ihrem LAN eindeutig identifizierbar oder sogar über das Internet zugänglich sind. Nein, das ist keine gute Sache.

Die Portweiterleitung würde mit dem guten alten IPv4 "funktionieren", macht das Gerät jedoch nicht nur für Sie, sondern für alle zugänglich. Niemand weiß es, also ist das kein Problem, oder?
Nun, es gibt eine Armee von automatisierten Port-Scannern, die 24/7 arbeiten und zufällige Adressen / Ports scannen, in der Hoffnung, dass irgendetwas irgendwo beantwortet werden kann. Daher ist es im Allgemeinen nicht optimal , ein Gerät zu haben, das online auf eine externe Anfrage antwortet. Wenn sich ein Gerät gerne entsprechend dem programmieren lässt , was über das Netzwerk eingeht, ist das ein Rezept für eine Katastrophe.
Das obige gilt im Prinzip auch für VPN, aber es ist so gut wie möglich, wenn Sie Zugriff haben möchten. Die einzig wirklich sichere Sache ist, dass es überhaupt keine Internetverbindung gibt, was aus offensichtlichen Gründen keine praktikable Option ist. Das nächste, was für "kein Internet" am sichersten ist, ist VPN. Genau ein Port auf genau einem Gerät (nun ja, es hängt von bis zu drei Ports ab), macht VPN verfügbar und nichts anderes wird an das Internet weitergeleitet.

Mit VPN können Sie - aber niemand anders - über das Internet auf ein Gerät in Ihrem LAN zugreifen, als befänden Sie sich im selben LAN (allerdings etwas langsamer). Es verhindert unbefugten Zugriff, bietet Vertraulichkeit und Datenintegrität.

Praktisch jeder No-Shit-Router unterstützt standardmäßig mindestens eine VPN-Variante. Leider kann es, abhängig von Ihrem Router-Modell, zu einer schlechten VPN-Version kommen, oder es ist nur unzureichend dokumentiert, wie der Remotecomputer konfiguriert wird. Trotz der möglichen Mühe, herauszufinden, wie man es konfiguriert - wenn Sie nichts Besseres haben, ist dies bei weitem die beste Option!
Die meisten gängigen NAS-Boxen unterstützen zwei oder drei No-Suck-VPN-Methoden, und auf jedem 3-Watt-Computer mit einer Kreditkartengröße von 20 US-Dollar kann problemlos ein VPN-Server ausgeführt werden. Selbst viele moderne Mobiltelefone unterstützen VPN, ohne dass zusätzliche Software installiert werden muss, sodass Sie sogar auf Ihr Heimnetzwerk zugreifen können, wenn Sie das mobile Internet Ihres Telefons nutzen (sogar über einen privaten Hotspot).

Zum Beispiel ist L2TP / IPSec vielleicht nicht die beste Wahl, aber es ist zu 99% gut und es dauert eine Minute, um es auf meiner Disk Station und meinem Samsung-Telefon einzurichten. Noch eine Minute, wenn mein Windows-Laptop es auch benutzen soll (unabhängig vom Telefon). Es wird keine zusätzliche Software benötigt.
OpenVPN dauert etwa 3-5 Minuten, da Sie die Client-Software herunterladen müssen, um sie auf dem Laptop zu installieren. Aber im Großen und Ganzen zählt ein 5-Minuten-Setup als "Null", im Vergleich dazu, dass es völlig unsicher ist.


5
Der Kauf von Drittanbieter-Diensten ist nicht die einzige Antwort. Sie können den gleichen Effekt mit SSH oder RDP erzielen.
Jpaugh

4
Die zwei und einzig richtigen Antworten sind VPN- oder SSH-Tunnel ... Einige VPN-Protokolle sind auch nicht sehr gut darin, MITM zu verhindern ...
Trognanders

5
SSH ist viel billiger, bequemer und einfacher einzurichten und wahrscheinlich die bessere Option in diesem Szenario
Rahuldottech unterstützt Monica

@jpaugh: VPN beinhaltet keine Dienste von Drittanbietern. Ich bin mir zwar einig, dass SSH zum Laufen gebracht werden kann, aber es ist nicht annähernd das Gleiche wie VPN, wenn es um die einfache Einrichtung, die universelle Verfügbarkeit ohne zusätzliche Installationen und nicht zuletzt um die nahtlose Benutzerfreundlichkeit geht . Nun, über RDP ... Sie scherzen natürlich, oder? Es ist nicht nur die makellose Implementierung der wahrscheinlich meistgenutzten Software der Welt (oder zumindest in den Top-5), sondern auch das Protokoll selbst ist von Natur aus unsicher, indem es fehlerhafte (funktionsfähige, nicht theoretische) Chiffren und eine TLS-Version verwendet, die wurde vor einem Jahrzehnt abgelöst.
Damon

4
-1 Einfach für "one and only" im Titel, SSH mit Portweiterleitung ist auch vollständig gültig und wahrscheinlich sicherer, da Sie nicht unbedingt Remotezugriff auf Ihr gesamtes Netzwerk gewähren müssen, sondern nur auf einen Port eines Geräts und höchstwahrscheinlich Die Konfiguration ist einfach und Sie verlassen sich nicht auf die zufällige Implementierung einer selten verwendeten Funktion durch die Software eines Routers.
Bill K

2

Hosten Sie ein VPN, entweder in einer Router- / Sicherheits-Gateway-Appliance oder in einer anderen Box mit Portweiterleitung zu dieser Box. Wenn Sie remote arbeiten möchten, stellen Sie eine Verbindung zum VPN her, und das eingebettete Gerät wird angezeigt, als befände es sich in einem lokalen Netzwerk. Es ist wahrscheinlich eine gute Idee, das eingebettete Gerät in einem isolierten Subnetz zu platzieren , um Angriffe auf Ihr Hauptnetzwerk zu verhindern, wenn das VPN oder das eingebettete Gerät gefährdet sind.


1

Machen Sie aus einem Windows-PC ohne IDE einen Linux-PC in einer einigermaßen sicheren Konfiguration, während sshd ausgeführt wird. Portweiterleitung von Ihrem Router zum SSH-Port auf dem Linux-Computer. Verwenden Sie SSH-Tunnel, um eine Verbindung mit der IP des eingebetteten Geräts herzustellen. Wenn Sie dann auf Ihrem Remote-Computer mit einer IDE programmieren, stellen Sie anstelle der LAN-IP eine Verbindung zu localhost her.

Das Hören im Internet mit einem gehärteten Dienst wie SSH ist einigermaßen sicher. Mit der Entwicklung direkt im Internet zuzuhören, ist eine fabelhafte schlechte Idee. SSH ist ein Gatekeeper. Wenn Sie sicherstellen, dass Sie den Host-Schlüssel überprüfen, schützt er absolut vor MITM. Es verwendet eine gute Kryptographie. Das Tunneling-Setup beinhaltet kein Routing oder Bridging, sondern sieht so aus, als würden Sie direkt von der SSHD-Maschine aus eine Verbindung herstellen. Dies ist sehr viel einfacher zu installieren.


Sie können ... Führen Sie einfach einen SSH-Server unter Windows aus, Sie benötigen hier kein Linux.
rahuldottech unterstützt Monica

"Wenn Sie dann auf Ihrem Remote-Computer mit einer IDE programmieren, stellen Sie eine Verbindung zu localhost anstelle der LAN-IP her." Das ergibt für mich keinen Sinn, oder?
rahuldottech unterstützt Monica

@rahuldottech Die SSH-Portweiterleitung funktioniert auf TCP-Ebene. Auf dem Server öffnet der sshd Verbindungen zur Ressource in der lokalen LAN und leitet den Inhalt dieses Sockets über SSH weiter. Auf dem Remotecomputer überwacht der ssh-Client einen lokalen Host-Port. Wenn Sie an diesem Port eine Verbindung zu localhost herstellen, handelt es sich um den SSH-Client, der lediglich die TCP-Verbindungen miteinander verbindet. Etwas seltsam, aber sehr vielseitig, da es kein IP-Routing gibt!
Trognanders

-1

Vor kurzem habe ich eine bessere Lösung für den nur persönlichen Fernzugriff gefunden. Besprechen wir zunächst den Umfang des Problems. Es gibt drei Probleme, die ins Spiel kommen: die NAT, die IP-Adresse und die Sicherheit. In den gängigen Fällen, in denen Sie beispielsweise einen SSH- oder Webserver in einem Heimnetzwerk ausführen möchten, werden traditionell die Portweiterleitung und dynamische DNS sowie branchenübliche Best Practices für die Sicherheit verwendet. Dies hat Nachteile für Ihren Fall, da Ihr Gerät nicht über die Standardsicherheit verfügt. Dies kann durch die Verwendung der SSH-Portweiterleitung im Gegensatz zum Öffnen Ihres Geräts für das Internet verringert werden.

Es gibt jedoch eine einfachere Lösung, und ob Sie es glauben oder nicht, ist dies für versteckte Dienste. versteckte dienste des tor fungieren im grunde als portforward, werden jedoch automatisch durchlaufen und haben keine sich ändernde adresse, sodass keine dynamischen dns erforderlich sind. Es gibt natürlich Probleme mit der Zwiebeladresse, an die man sich nur schwer erinnern kann, aber wenn Sie der einzige Benutzer sind, können Sie diese in eine Ihrer Projektdateien eintragen. Ich würde empfehlen, dies immer noch mit einem SSH-Server zu vergleichen, um die Authentifizierung zu ermöglichen, aber Sie können entscheiden, dass die lange Zwiebeladresse ausreicht. Auch bei versteckten Diensten wird die gesamte Verbindung mit Ausnahme des letzten Hops verschlüsselt, sodass die einzige Möglichkeit zur Verbesserung die End-to-End-Verschlüsselung ist. Dies hängt jedoch von dem Gerät ab, das Sie programmieren.


4
Die Verwendung von Zwiebelservices macht diesen Weg nur noch komplizierter, ohne dass zusätzliche Vorteile entstehen. Tor kann nützlich sein. Wird nicht in diesem Fall sein.
rahuldottech unterstützt Monica
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.