2011-05-16 04:00:37 +0000 2011-05-16 04:00:37 +0000
219
219

Co to jest spedycja portów i do czego służy?

Istnieje wiele pytań na temat ‘spedycji portów’ , ale wydaje się, że nie ma takiego, które jasno określałoby co to jest i do czego służy. Więc:

  1. Co to jest przekierowanie portów?

  2. Do czego służy i po co miałabym go potrzebować?

Odpowiedzi (1)

324
324
324
2011-05-16 04:35:44 +0000

The Basics

Aby naprawdę wyjaśnić przekierowanie portów, musisz najpierw zrozumieć trochę więcej o tym co robi twój router . Twój dostawca usług internetowych przydziela jeden adres IP do Twojego połączenia internetowego. Wszystkie komputery w Internecie potrzebują unikalnego adresu IP, ale masz wiele komputerów w swoim domu i tylko jeden adres. Więc jak to działa?

Jeżeli wiesz co to jest i po prostu chcesz wiedzieć jak to zrobić : http://portforward.com/ ma sposób na zrzuty ekranu dla dosłownie setek różnych routerów. Dokumentacja jest tam ukryta za stroną reklamową dla ich automatycznego narzędzia portconfig. (Po prostu kliknij trochę, aby ją znaleźć.)

NAT - Co to jest? Dlaczego go używamy?

Twój router domowy ma wbudowaną funkcję o nazwie Network Address Translation, czyli NAT. Wewnątrz sieci, komputery mają adresy takie jak 192.168.1.100. Wszystkie adresy w zakresie 192.168.* (lub w zakresie 10.*) to adresy _ prywatne “_ lub _ zastrzeżone ”_. Adresy te są oficjalnie przypisane przez IANA do użytku wewnątrz sieci prywatnych. Twój router automatycznie przydziela taki adres każdemu komputerowi podłączonemu przez DHCP . Adresy te są sposobem, w jaki komputery w sieci komunikują się z routerem i ze sobą.

Twój router ma oddzielny interfejs sieciowy, który łączy go z Internetem. Interfejs ten ma zupełnie inny adres, który jest przypisany przez dostawcę usług internetowych. Jest to jeden z adresów, o których wspomniałem wcześniej, a Twój router używa go do komunikacji z innymi komputerami w Internecie. Komputery wewnątrz twojej sieci mają non-routable prywatne adresy IP, co oznacza, że jeśli będą wysyłać pakiety bezpośrednio do Internetu, zostaną one automatycznie usunięte (pakiety z prywatnymi adresami nie mogą przechodzić przez Internet ze względów stabilności). Ale Twój router ma adres routable. Network Address Translation, jak sugeruje nazwa, translates pomiędzy tymi dwoma rodzajami adresów, pozwalając wielu komputerom w sieci pojawiać się w Internecie jako jeden komputer z jednym adresem.

Szczegóły

Chociaż może to zabrzmieć skomplikowanie, w rzeczywistości jest to dość proste, jak twój router to robi. Za każdym razem gdy komputer w twojej sieci chce się połączyć z komputerem w internecie, wysyła żądanie połączenia do routera (wie, aby wysłać je do routera, ponieważ jego parametr Default Gateway jest ustawiony na adres routera). Następnie router odbiera to żądanie połączenia (żądanie SYN w TCP/IP) i zmienia adres źródłowy (“reply-to” lub adres zwrotny) i zmienia go z prywatnego IP komputera na publiczne IP routera, tak aby odpowiedź została wysłana do routera. Następnie odnotowuje w bazie danych (zwanej tabelą NAT), że połączenie zostało zainicjowane, aby zapamiętać je później.

Gdy odpowiedź wróci z komputera zdalnego (“SYN-ACK”), router spojrzy w swoją tabelę NAT i zobaczy, że połączenie z tym hostem na tym porcie zostało wcześniej zainicjowane przez komputer prywatny w sieci, zmieni adres docelowy na prywatny adres komputera i przekaże go do sieci. W ten sposób pakiety mogą nadal przechodzić tam i z powrotem pomiędzy sieciami, a router w sposób transparentny zmienia adresy tak, aby działały. Po zakończeniu połączenia router po prostu usuwa je z tabeli NAT.

Albo pomyśl o tym w ten sposób

To może być trochę łatwiejsze do wizualizacji za pomocą metafory - powiedzmy, że jesteś spedytorem w USA pracującym z chińskimi klientami. Muszą oni wysyłać paczki do wielu klientów w USA, ale z powodów niestandardowych/papierowych łatwiej jest wysłać paczkę tylko w jedno miejsce. Tak więc, paczka przychodzi do Ciebie od jednego z Twoich klientów w Chinach (prywatna sieć, w tym przykładzie) z rzeczywistym miejscem przeznaczenia gdzieś w USA (internet). Zmieniasz etykietę adresową na skrzyni na adres w USA (publiczny), a adres zwrotny na swój własny adres publiczny (ponieważ nie można jej zwrócić bezpośrednio do Chin bez dyskomfortu klienta) i przekazujesz ją na pocztę. Jeśli klient zwróci produkt, przychodzi on do Ciebie. Sprawdzasz go w swojej dokumentacji i widzisz, z jakiej firmy w Chinach pochodzi, i zmieniasz miejsce przeznaczenia na tę firmę (jej adres prywatny) oraz adres zwrotny na Twój prywatny adres, aby mógł on odesłać zamiennik przez Ciebie.

To działa świetnie, ale jest pewien problem. Co zrobić, jeśli klient potrzebuje wysłać coś do firmy, powiedzmy przekaz pieniężny w ramach zapłaty za coś? Albo powiedzmy, że komputer w Internecie inicjuje połączenie z routerem (żądanie SYN), powiedzmy do serwera WWW, który jest w sieci. List/pakiet ma na nim tylko adres publiczny routera, więc router w rzeczywistości nie wie, gdzie go wysłać! może być przeznaczony dla któregokolwiek z komputerów w sieci. sieci, albo dla żadnego z nich. Mogłeś doświadczyć tego problemu, gdy dzwoniłeś na czyjś telefon domowy - gdy do ciebie dzwoniłeś, nie było problemu, ale gdy do niego dzwoniłeś, nie mógł wiedzieć, do kogo dzwonisz, więc zła osoba mogła odebrać.

Podczas gdy jest to wystarczająco łatwe dla ludzi, aby rozwiązać ten problem, jest to o wiele trudniejsze dla komputerów, ponieważ nie każdy komputer w Twojej sieci zna wszystkie inne komputery.

I w końcu dostajemy się do Przekierowanie portów

Przekierowanie portów jest to, jak rozwiązać ten problem: jest to sposób, aby powiedzieć swojemu routerowi, jaki komputer w sieci połączeń przychodzących powinien być skierowany do. Mamy trzy różne sposoby, na które możemy to zrobić:

  • Faux-DMZ : wiele routerów posiada funkcję o nazwie DMZ. Oznacza to Strefę Zdemilitaryzowaną, która jest rodzajem konfiguracji bezpieczeństwa sieciowego. Strefa zdemilitaryzowana na routerach domowych jest często określana jako faux-DMZ, ponieważ nie posiada ona cech rzeczywistej strefy zdemilitaryzowanej. Jest to najprostszy sposób obsługi połączeń przychodzących: wszystkie przychodzące żądania połączenia będą wysyłane do jednego określonego w sieci. Jest to bardzo proste - wpisujesz adres IP do konfiguracji routera, a wszystkie połączenia przychodzące są tam przesyłane. To jednak nie zawsze działa, ponieważ możesz mieć wiele komputerów, które muszą przyjmować połączenia przychodzące. Do tego mamy…
  • Przekierowanie portów : Wszystkie żądania połączeń sieciowych zawierają “port”. Port jest tylko liczbą i jest częścią tego, jak komputer wie, co to jest pakiet. IANA określiła, że port 80 jest używany dla HTTP. Oznacza to, że przychodzący pakiet, który mówi o porcie 80 musi być żądaniem przeznaczonym dla serwera sieciowego. Przekierowanie portów na routerze pozwala na wprowadzenie numeru portu (lub ewentualnie zakresu lub kombinacji numerów, w zależności od routera) oraz adresu IP. Wszystkie połączenia przychodzące z pasującym numerem portu zostaną przekierowane do komputera wewnętrznego o tym adresie.
  • PortUPnP do przodu : Przekierowanie UPnP działa dokładnie tak samo jak przekierowanie portów, ale zamiast tego oprogramowanie na komputerze wewnątrz sieci automatycznie ustawia router na przekierowanie ruchu na dany port.

Przykład

Spójrzmy na przykład użycia. Wiele gier wideo dla wielu graczy (na przykład Counter Strike) pozwala na uruchomienie serwera gier na komputerze, z którym mogą się łączyć inne osoby w celu gry z Tobą. Twój komputer nie zna wszystkich ludzi, którzy chcą grać, więc nie może się z nimi połączyć - zamiast tego musi wysyłać nowe żądania połączenia do Twojego komputera z Internetu.

Gdybyś nie miał nic skonfigurowanego na routerze, otrzymywałby te żądania połączenia, ale nie wiedziałby, na którym komputerze w sieci znajduje się serwer gry, więc po prostu by je zignorował (lub, dokładniej, odesłałby pakiet wskazujący, że nie może się połączyć). Na szczęście, znasz numer portu, który będzie na żądanie połączenia z serwerem gry. Tak więc na routerze ustawiamy port przekierowywania z numerem portu, którego oczekuje serwer gry (np. 27015) oraz adresem IP komputera z serwerem gry (np. 192.168.1.105). Router będzie wiedział, jak przekierowywać przychodzące żądania połączenia do 192.168.1.105 wewnątrz sieci, a komputery na zewnątrz będą mogły się połączyć.

Innym przykładem może być sieć lokalna z dwoma maszynami, gdzie druga z nich o IP 192.168.1.10 hostuje stronę internetową za pomocą Apache'a. Dlatego router powinien przekierowywać przychodzące żądania na port 80 do tej maszyny. Korzystając z przekierowania portów, obie maszyny mogą pracować w tej samej sieci w tym samym czasie.

Gry wideo są prawdopodobnie najczęstszym miejscem, w którym codzienni użytkownicy spotykają się z przekierowaniem portów, chociaż większość nowoczesnych gier wykorzystuje UPnP, dzięki czemu nie trzeba robić tego ręcznie (zamiast tego jest to w pełni automatyczne). Musisz to robić zawsze, gdy chcesz mieć możliwość bezpośredniego połączenia się z czymś w swojej sieci (a nie przez jakiegoś pośrednika w Internecie). Może to obejmować uruchomienie własnego serwera WWW lub połączenie poprzez Remote Desktop Protocol do jednego z komputerów.

Uwaga na temat bezpieczeństwa

Jedną z ładnych rzeczy w NAT jest to, że zapewnia on pewne wbudowane zabezpieczenia bez wysiłku. Wiele osób wędruje po Internecie w poszukiwaniu maszyn, które są podatne na zagrożenia… i robią to próbując otworzyć połączenia z różnymi portami. Są to połączenia przychodzące, więc, jak wspomniano powyżej, router je zrzuci. Oznacza to, że w konfiguracji NAT tylko sam router jest podatny na ataki z wykorzystaniem połączeń przychodzących. Jest to dobra rzecz, ponieważ router jest znacznie prostszy (a więc mniej podatny na ataki) niż komputer z pełnym systemem operacyjnym z dużą ilością oprogramowania. Należy więc pamiętać, że poprzez DMZing komputera wewnątrz sieci (ustawiając go jako miejsce docelowe DMZ) traci się tę warstwę bezpieczeństwa dla tego komputera: tojest teraz całkowicie otwarty na połączenia przychodzące z Internetu, więc trzeba go zabezpieczyć tak, jakby był bezpośrednio podłączony. Oczywiście za każdym razem, gdy przekierujemy port, komputer po stronie odbiorcy staje się wrażliwy na ten konkretny port. Upewnij się więc, że uruchamiasz aktualne oprogramowanie, które jest dobrze skonfigurowane.