Jak uniknąć przekierowania portów podczas wystawiania urządzeń IoT na zewnętrzny Internet?


15

Otrzymałem kilka dobrych odpowiedzi na pytanie Czego potrzebuję, aby stworzyć własną chmurę osobistą dla urządzeń IoT? i jedną z rzeczy, które tam zrozumiałem, jest to, że muszę „narazić” swój HUB lub BRAMA na zewnętrzny internet. Proponowanym rozwiązaniem jest przekierowanie portów .

Stworzyłem to jako osobne pytanie, ponieważ trudno byłoby właściwie śledzić tylko komentarze do wszystkich odpowiedzi, ktoś mógłby się zgubić. Te informacje mogą być również przydatne dla osób, które mają podobne pytanie.

Nie podoba mi się pomysł przejścia do konfiguracji routera i skonfigurowania przekierowania portów, ponieważ oznacza to, że muszę skonfigurować urządzenie, które pomimo bycia częścią infrastruktury Internetu Rzeczy, nie jest jednym z „moich” urządzeń. Musi to w jak najmniejszym stopniu zakłócać istniejącą sieć domową. Ponadto miałem przypadki, w których nie znam hasła administratora określonego routera i bardzo trudno było je zdobyć.

Jestem pewien, że istnieje sposób na obejście tego, nawet jeśli oznacza to posiadanie mocniejszego IoT HUBa, być może działającego pod Linuksem, po prostu nie wiem co to może być. Jest nieco bardziej skomplikowany HUB, jeśli ten „alternatywny” sposób pozwala uniknąć konfiguracji przekierowania portów.

Mówię, że jestem pewien, że istnieje sposób myślenia o tym, jak aplikacje takie jak przeglądarka zespołów nie muszą konfigurować przekierowania portów.

Pytanie zatem brzmi: czy ktoś zna sposób na „udostępnienie” urządzenia wbudowanego IoT zewnętrznemu internetowi w celu uzyskania dostępu z dowolnego miejsca na świecie, które nie wymaga przekierowania portów?

Odpowiedzi:


10

Jeśli nie możesz przekierować routera, być może będziesz musiał skorzystać z dziurkowania :

Dziurkowanie jest techniką w sieci komputerowej do ustanawiania bezpośredniego połączenia między dwiema stronami, w których jedna lub obie są za zaporami ogniowymi lub za routerami używającymi translacji adresów sieciowych (NAT). Aby zrobić dziurę, każdy klient łączy się z nieograniczonym serwerem strony trzeciej, który tymczasowo przechowuje adres zewnętrzny i wewnętrzny oraz informacje o porcie dla każdego klienta. Serwer następnie przekazuje informacje o każdym kliencie drugiemu i używając tych informacji, każdy klient próbuje nawiązać bezpośrednie połączenie; w wyniku połączeń korzystających z prawidłowych numerów portów restrykcyjne zapory ogniowe lub routery akceptują i przekazują przychodzące pakiety z każdej strony.

NAT na swój sposób routerów, że klienci spoza sieci nie może łączyć się z otwartymi portami urządzeń wewnątrz sieci, ale nie ograniczają urządzeń w sieci z podłączeniem do „pośrednik”. Korzystając z odrobiny pośrednictwa , możesz ustanowić bezpośrednie połączenie między dwoma urządzeniami bez faktycznego otwierania portów - w zasadzie to robią usługi takie jak Skype i Hamachi.

Oczywiście wymaga to zewnętrznego serwera do koordynowania połączenia i prawdopodobnie chciałbyś zaufać serwerowi, który wykonywał dziurkowanie.

Komunikacja peer-to-peer przez translatory adresów sieciowych autorstwa Bryana Forda, Pydi Srisuresh i Dana Kegela jest interesującą lekturą, aby uzyskać więcej informacji na temat mechanizmów dziurkowania i na ile jest to niezawodne.


Wspaniale! Jedno pytanie, czy ten zewnętrzny serwer lub „broker” może być również w moim domu? I być na przykład wbudowaną płytą Linux? Ponieważ w przeciwnym razie podejście to wprowadziłoby jeszcze większy problem mówiący o posiadaniu zewnętrznych elementów zewnętrznych we wdrożeniu Internetu Rzeczy. Jeśli wbudowana płyta Linux nie może tak być, to co by to było?
m4l490n

3
@ m4l490n: Musiałby w jakiś sposób znajdować się poza twoją siecią . Wyobrażam sobie, że może to być gdzieś serwer w chmurze, a ty możesz użyć płyty Linux, jeśli to zostało przekierowane. Dziurkowanie UDP działa tylko wtedy, gdy masz serwer / urządzenie, które jest publicznie dostępne w Internecie. To nie jest idealne, ale nie można obejść faktu, że coś musi być publicznie dostępne w Internecie, aby się z nim połączyć. Podejrzewam, że wbudowana płyta Linux w twojej domowej sieci nie przyniesie żadnej korzyści; musisz tylko przekierować to zamiast swojego urządzenia IoT.
Aurora0001

1
Doskonały! Mimo że nie była to bezpośrednia intencja twojej odpowiedzi, a nie pierwotna intencja mojego pytania, w końcu rozumiem rolę serwera w chmurze w infrastrukturze IoT !.
m4l490n

Jeśli rozumiem, dziura jest trochę wirtualna, w przeciwieństwie do przekierowania portów, w którym stan routera jest zmodyfikowany. Każdy koniec łącza komunikuje się tylko z serwerem? Uważam, że byłby to typowy model IoT, skoro ogólna sieć jest od wielu do wielu?
Sean Houlihane

7

W świecie IoT, w którym urządzenia mają niskie zasoby do obsługi niechcianego ruchu z połączeń zewnętrznych i oczywiście konieczność obsługi wszelkich problemów z przekierowaniem portów i zaporą w routerach doprowadziła do następującego podejścia, które można zaobserwować w wielu rozwiązaniach zaplecza IoT:

Urządzenia nie przyjmują żadnych niechcianych informacji o sieci. Wszystkie połączenia i trasy zostaną ustanowione przez urządzenie tylko w ruchu wychodzącym. Tak więc urządzenie otworzy połączenia wychodzące, więc żadne poprawki zapory / routera nie będą potrzebne i utrzyma kanał otwarty tak długo, jak to konieczne.

Ładny artykuł o problemach komunikacyjnych i rozwiązań na świecie IoT.


W przypadku MQTT urządzenie jest klientem (wydawcą, subskrybentem lub jednym i drugim) i inicjuje połączenie z brokerem (serwerem).
Wsparcie Gambit

„urządzenia mają niskie zasoby do obsługi niechcianego ruchu z połączeń wychodzących ” ???? to nie ma żadnego sensu. Wychodzące połączenia mogą być inicjowane tylko wewnątrz sieci.
Chris Stratton,

@ChrisStratton, połączenia wychodzące mogą być kierowane bezpośrednio do urządzeń za pomocą przekierowania portów, jeśli używany jest NAT. Mogą również mieć własne adresy IP i można uzyskać do nich bezpośredni dostęp z Internetu.
shachar

Wygląda na to, że źle rozumiesz znaczenie słowa „wychodzące” i błędnie używasz go, gdy to, co masz na myśli, to „przychodzące”. Połączenie wychodzące to urządzenie IoT docierające do serwera w chmurze. Połączenie przychodzące to coś poza siecią domową (powiedz telefon, gdy idziesz ulicą), próbując połączyć się z urządzeniem w sieci.
Chris Stratton,

@ChrisStratton, masz rację, kiedy pisałem tekst wychodzący, miałem na myśli ruch z zewnątrz, który jest w zasadzie połączeniem „przychodzącym” dla czujnika. Zredagowałem swoją odpowiedź: Dzięki
shachar,

3

Spróbuj Port Knocking . Nadal musisz przekierować, ale port jest otwarty dopiero po wysłaniu tajnej kombinacji pingów. Następnie możesz zamknąć port inną tajną kombinacją pingów. Może działać na wbudowanym systemie Linux, takim jak router Wi-Fi z OpenWrt.


3

Chociaż nie mogę zalecić, aby umożliwić dostęp do dowolnego urządzenia IoT z publicznego Internetu, można to osiągnąć natywnie za pomocą protokołu IPv6.

Jeśli Twój dostawca usług internetowych i sieć lokalna są skonfigurowane do obsługi protokołu IPv6, a urządzenia IoT go obsługują, mogą one automatycznie uzyskać adres IPv6, który można routować z dowolnego miejsca w Internecie (IPv6 eliminuje potrzebę translacji NAT i przekierowywania portów). Musisz tylko upewnić się, że wszystkie stanowe zapory ogniowe (router) są skonfigurowane tak, aby zezwalać na ruch do każdego urządzenia. Niektórzy mogą domyślnie na to pozwolić (niepewnie).


2

Skonfiguruj serwer VPN w domu, a następnie połącz się z nim z dowolnego miejsca. Myślę, że byłoby to znacznie bezpieczniejsze niż udostępnianie dowolnego rodzaju urządzenia IoT w otwartym Internecie.


Czy to nie jest jakaś brama?
Helmar

hm? VPN to połączenie typu punkt-punkt (zwykle szyfrowane) między urządzeniem a siecią. sprawia, że ​​urządzenie łączące działa tak, jakby było częścią sieci. Myślę, że możesz myśleć o tym jak o bramie ... ale to usługa.
Maurice

Jasne, ale ta usługa wciąż musi ominąć router domowy - zwykle przez przekierowanie portów lub nieprzerwane połączenia wychodzące.
Helmar

tak, nadal musisz przekierować port, na którym działa VPN. ale jest to bezpieczniejsze niż eksponowanie pojedynczych urządzeń (potencjalnie mniej wygodne, w zależności od tego, co próbujesz osiągnąć)
Maurice
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.