Dotarcie do urządzenia w mojej sieci LAN z Internetu

18

Mam urządzenie wbudowane, które mogę programować przez Ethernet IP, gdy jest podłączone do tego samego routera z komputerem w następujący sposób:

wprowadź opis zdjęcia tutaj

Czy można wysłać cały ruch przez Internet i nadal móc go zaprogramować? Aby było to trochę bardziej jasne, coś w stylu:

wprowadź opis zdjęcia tutaj

Silnik
źródło
6
„Ethernet IP”? Czy to nie tylko ... zwykła sieć podobna do sieci LAN?
user1686,
„Programowanie przez Ethernet IP” - co to właściwie znaczy? Pomógłbyś określić, o którym urządzeniu i IDE mówisz. Zakładam, że IDE łączy się z urządzeniem na danym adresie IP i porcie TCP, aby otrzymywać polecenia?
slhck,
@grawity tak, jest to zwykła sieć LAN. Podobnie jak w sieci & w slhck używam IDS codys i urządzenia z uruchomionym CodeS Runtime!
Silnik,
3
Oczywistą odpowiedzią jest oczywiście IPv6.
Michael Hampton
1
@grawity Ethernet / IP to protokół automatyki przemysłowej, którego nie należy mylić z IP over Ethernet :(
richardb

Odpowiedzi:

50

Prosta (i niebezpieczna) metoda

To, czego szukasz, nazywa się przekierowaniem portów [ 1 ] [ 2 ] .

Załóżmy na przykład, że:

  • Twoje programowalne urządzenie działa na porcie 22i ma adres IP192.168.1.5

  • Twój publiczny adres IP to 122.176.11.55

Następnie można przejść do ustawień routera i przekazuje port WAN (na przykład 8022) do 192.168.1.5:22.

Teraz możesz zdalnie uzyskać dostęp do urządzenia z dowolnego miejsca za pośrednictwem Internetu, uzyskując dostęp 122.176.11.55:8022zamiast 192.168.1.5:22w swoim IDE.

Pamiętaj, że jeśli nie masz statycznego adresu IP, twój publiczny adres IP może się zmienić w dowolnym momencie, w takim przypadku powinieneś sprawdzić dynamiczne usługi DNS .

UWAGA : chyba że twoje urządzenie ma jakąś metodę uwierzytelnienia, ktoś ze złośliwymi zamiarami prawie na pewno znajdzie do niego dostęp w otwartej sieci. Zobacz poniżej bezpieczną alternatywę.

Bezpieczna (i szczerze mówiąc niewiele bardziej skomplikowana) metoda

Zostaw komputer (lub Raspberry Pi, lub podobny) podłączonego do sieci oraz dostępu , który zdalnie zamiast przez coś podobnego bezpieczne SSH, a następnie zaprogramować urządzenie przez niego przez LAN.
Ma to również tę dodatkową zaletę, że działa, nawet jeśli twoje urządzenie nie używa TCP ani UDP :)

Trochę nudne, tak. Ale bezpiecznie.

rahuldottech obsługuje Monikę
źródło
10
Pomogłoby to również zanotować, że jeśli OP ustawi portforwarding w tym celu, wszyscy inni na całym świecie mogą potencjalnie zmienić kod. Chyba że istnieje jakaś forma uwierzytelnienia, prędzej czy później portnicy odnajdą port i haker spróbuje się włamać, to gwarancja.
LPChip
@LPChip Rzeczywiście! Powinienem o tym wspomnieć, mój zły.
rahuldottech obsługuje Monikę
Miły dodatek. :) Dałbym ci za to +1, ale już dawałem temu zarabianie, ponieważ nawet bez ostrzeżenia była to już dobra odpowiedź. :)
LPChip
2
@FreeMan później, jak za chwilę, może upłynąć kilka dni, zanim pojawi się robot indeksujący, w zależności od używanego portu, ale wcześniej w tym sensie, że jeśli będziesz miał pecha, może to nastąpić w ciągu kilku minut.
LPChip
1
@ IsmaelMiguel Oczywiście powinieneś robić wszystkie oczywiste podstawowe rzeczy związane z bezpieczeństwem. Po prostu nie mam pojęcia, jakie są w tym konkretnym przypadku.
rahuldottech obsługuje Monikę
11

Jedyną poprawną odpowiedzią może być „VPN”.

Samo użycie IPv6 „działałoby” (zakładając, że router nie jest skonfigurowany do zapory ogniowej poza urządzeniem, a wszystkie ISP, urządzenia i laptop obsługują IPv6), ale jest to straszny pomysł z tego samego powodu, dla którego przekierowanie portów jest.

Poza promowaniem przez znaną propagandę IPv6, tak naprawdę nigdy nie chcesz, aby którekolwiek z urządzeń w Twojej sieci LAN były jednoznacznie identyfikowalne, a nawet dostępne z Internetu. Nie, to nie jest dobra rzecz.

Przekierowywanie portów „działałoby” na starym dobrym IPv4, ale czyni to urządzenie dostępnym nie tylko dla ciebie, ale dla wszystkich. Nikt nie wie, więc to nie problem, prawda?
Cóż, armia automatycznych skanerów portów działa 24 godziny na dobę, 7 dni w tygodniu i skanuje losowe adresy / porty w nadziei, że cokolwiek, gdziekolwiek, może odpowiedzieć, więc generalnie posiadanie dowolnego urządzenia, które odpowie na zewnętrzne żądanie online nie jest optymalne. Jeśli urządzenie z radością sam się zaprogramuje zgodnie z tym, co przychodzi przez sieć, jest to przepis na katastrofę.
Powyższe jest w zasadzie prawdziwe również dla VPN, ale jest tak dobre, jak możesz, jeśli chcesz uzyskać dostęp. Jedyną naprawdę bezpieczną rzeczą jest w ogóle brak połączenia z Internetem, co z oczywistych powodów nie jest praktyczną opcją. Kolejną najbezpieczniejszą rzeczą do „braku internetu” jest VPN. Dokładnie jeden port na dokładnie jednym urządzeniu (cóż, to zależy, do trzech portów), odsłaniając VPN i nic więcej , przekierowywany przez port do Internetu.

VPN pozwala - ale nikomu innemu - uzyskiwać dostęp do urządzenia w sieci LAN przez Internet, tak jakbyś był w tej samej sieci LAN (choć nieco wolniej). Zapobiega nieautoryzowanemu dostępowi, zapewnia poufność i integralność danych.

Praktycznie każdy router bez gówna obsługuje co najmniej jeden smak VPN po wyjęciu z pudełka. Niestety, w zależności od posiadanego modelu routera, może to być zły smak VPN lub słabo udokumentowana konfiguracja komputera zdalnego. Mimo to, mimo możliwych problemów z ustaleniem, jak to skonfigurować - jeśli nie masz nic lepszego, to zdecydowanie najlepsza opcja!
Najpopularniejsze urządzenia NAS obsługują dwie lub trzy metody VPN bez zasysania, a każdy komputer o mocy 3 Watt o wielkości karty kredytowej o wartości 20 USD może obsługiwać serwer VPN, bez problemu. Nawet wiele nowoczesnych telefonów komórkowych obsługuje VPN bez konieczności instalowania dodatkowego oprogramowania, dzięki czemu możesz nawet uzyskać dostęp do sieci domowej, gdy korzystasz z mobilnego internetu telefonu (nawet przez prywatny hotspot).

Na przykład L2TP / IPSec może nie jest najfajniejszym wyborem, ale jest w 99% dobry i zajmuje minutę, aby skonfigurować na mojej Disk Station i telefonie Samsung. Jeszcze jedna minuta, jeśli mój laptop z systemem Windows również z niego skorzysta (niezależnie od telefonu). Nie wymaga dodatkowego oprogramowania.
OpenVPN zajmuje około 3-5 minut instalacji, ponieważ musisz pobrać zainstalować oprogramowanie klienckie na laptopie. Ale na większym obrazie konfiguracja 5-minutowa liczy się jako „zero”, w porównaniu z całkowitym niebezpieczeństwem.

Damon
źródło
5
Kupowanie usług innych firm nie jest jedyną odpowiedzią. Ten sam efekt można uzyskać dzięki SSH lub RDP.
jpaugh
4
Dwie i jedyne poprawne odpowiedzi to tunele VPN lub SSH ... Niektóre protokoły VPN nie są zbyt dobre w zapobieganiu MITM ...
trognanders
5
SSH jest znacznie tańszy, wygodniejszy i łatwiejszy w konfiguracji i prawdopodobnie lepsza opcja w tym scenariuszu
rahuldottech obsługuje Monikę
@jpaugh: VPN nie obejmuje żadnych usług stron trzecich. Chociaż chętnie się zgodzę, że SSH można sprawić, by działał, nie jest on wcale taki sam jak VPN, jeśli chodzi o łatwość konfiguracji, uniwersalną dostępność bez dodatkowych instalacji, brak uniwersalności i wreszcie bezproblemową użyteczność . Teraz, jeśli chodzi o RDP ... oczywiście żartujesz, prawda? Nie tylko jest to nieskazitelna implementacja prawdopodobnie prawdopodobnie najczęściej wykorzystywanego oprogramowania na świecie (lub przynajmniej w pierwszej piątce), ale także sam protokół jest z natury niepewny, używając uszkodzonych (wykonalnych, nie teoretycznych) szyfrów oraz wersji TLS, która został zastąpiony dziesięć lat temu.
Damon
4
-1 po prostu „tylko jeden” w tytule, SSH z przekierowaniem portów jest również całkowicie poprawny i prawdopodobnie bezpieczniejszy, ponieważ niekoniecznie musisz dawać zdalny dostęp do całej sieci, tylko jednego portu jednego urządzenia, i najprawdopodobniej jest łatwy w konfiguracji i nie polegasz na losowej implementacji oprogramowania routera rzadko używanej funkcji.
Bill K
2

Hostuj VPN albo w routerze / urządzeniu bramy bezpieczeństwa, albo w innym urządzeniu z portem przekierowującym do tego urządzenia. Kiedykolwiek chcesz pracować zdalnie, połącz się z VPN, a zobaczysz urządzenie osadzone tak, jakby było w sieci lokalnej. Prawdopodobnie byłoby to dobry pomysł, aby umieścić wbudowanego urządzenia w izolowanym podsieci, aby pomóc zapobiegać atakom na swojej głównej sieci VPN lub jeśli urządzenie wbudowany jest zagrożona.

Michael P.
źródło
1

Zmień komputer z systemem Windows bez IDE w komputer z systemem Linux w dość bezpiecznej konfiguracji z uruchomionym programem sshd. Prześlij dalej z routera do portu SSH na komputerze z systemem Linux. Użyj tuneli SSH, aby połączyć się z IP urządzenia wbudowanego. Następnie, programując na zdalnym komputerze za pomocą IDE, połączysz się z localhost zamiast z IP LAN.

Słuchanie w Internecie za pomocą hartowanej usługi, takiej jak SSH, jest względnie bezpieczne. Słuchanie bezpośrednio w internecie z rozwojem cokolwiek jest bajecznie zły pomysł. SSH jest strażnikiem. Jeśli upewnisz się, że zweryfikowałeś klucz hosta, to absolutnie chroni przed MITM. Korzysta z dobrej kryptografii. Konfiguracja tunelowania nie wymaga routingu ani mostkowania, ale wygląda na to, że łączysz się bezpośrednio z maszyny SSHD. Jest to o wiele łatwiejsze do prawidłowego skonfigurowania.

trognandery
źródło
Możesz ... Wystarczy uruchomić serwer SSH w systemie Windows, nie potrzebujesz tutaj Linuksa.
rahuldottech obsługuje Monikę
„Następnie, programując na zdalnym komputerze za pomocą IDE, połączysz się z localhost zamiast z IP LAN.” To nie ma dla mnie sensu, skomplikowane?
rahuldottech obsługuje Monikę
Przekierowanie portów @rahuldottech SSH działa na poziomie TCP. Na serwerze sshd otwiera połączenia z zasobem w lokalnej sieci LAN i przekazuje zawartość tego gniazda przez SSH. Na zdalnym komputerze klient ssh nasłuchuje na porcie localhost. Gdy łączysz się z hostem lokalnym na tym porcie, jest to klient SSH i po prostu łączy ze sobą połączenia TCP. Trochę dziwne, ale naprawdę wszechstronne, ponieważ nie ma routingu IP!
trognanders
-1

Ostatnio natknąłem się na lepsze rozwiązanie dla zdalnego dostępu osobistego. Najpierw omówmy zakres problemu. W grę wchodzą trzy kwestie: nat, adres IP i bezpieczeństwo. Na przykład w typowych przypadkach, w których chcesz uruchomić serwer SSH lub WWW w sieci domowej, tradycyjnym podejściem jest przekierowywanie portów i dynamiczne usługi DNS oraz najlepsze praktyki w branży dotyczące bezpieczeństwa. Ma to wady twojej obudowy, ponieważ twoje urządzenie nie ma standardowych zabezpieczeń. Można to złagodzić za pomocą przekierowania portów ssh zamiast otwierania urządzenia do Internetu,

Istnieje jednak prostsze rozwiązanie i wierzcie lub nie, że są to usługi ukryte. Usługi ukryte w zasadzie działają jako port przekierowujący, ale automatycznie obsługuje nat natraversal i nie ma zmieniającego się adresu, więc dynamiczne dns nie jest potrzebne. Istnieją oczywiście problemy z zapamiętaniem adresu cebuli, ale jeśli jesteś jedynym użytkownikiem, możesz zapisać go w jednym z plików projektu. Polecam nadal parowanie tego z serwerem ssh w celu zapewnienia uwierzytelnienia, ale możesz zdecydować, że długi adres cebuli jest wystarczający. Również usługi ukryte zapewniają szyfrowanie całego łącza, z wyjątkiem ostatniego przeskoku, więc jedynym sposobem na poprawę jest szyfrowanie od końca do końca, ale to zależy od programowanego urządzenia.

Hildred
źródło
4
Korzystanie z usług cebulowych tylko skomplikuje ten sposób bez żadnych dodatkowych korzyści. Tor może być przydatny. Nie będzie w tym przypadku.
rahuldottech obsługuje Monikę