Kicekpicek's online place » Domowy lab, Komputery i Internet » Jak to jest z przekierowaniem portów + RRAS w Windows Server 200x
Jak to jest z przekierowaniem portów + RRAS w Windows Server 200x
Opisałem to po trochę na WSS, trochę na forum WSS też o tym pisałem, ale chciałbym dorzucić do tego coś więcej niż sam opis…
Na początek – po co?
Przekierowanie portu to “uwidocznienie” jakiegoś kompa za Firewallem lub routerem (NAT-ującym a właściwie PAT-ującym) dla sieci zawnętrznej – standarowo jeśli jesteś za Firewallem lub routerem jesteś widoczny w internecie pod ip routera a nie pod adresem posiadanym w sieci lokalnej.
NAT – PAT
Te dwa pojęcia używa się zamiennie, jednak różnica jest dość znaczna. Dość powiedzieć, że mając typowy NAT prawie wcale nam przekierowania portów nie trzeba.
NAT, czyli Network Address Translation, to tłumaczenie przez router adresów sieci wewnętrznej na adresy sieci zewnętrznej. W teorii służyło to do zorganizowania sobie sieci, kiedy od ISP (dostawcy neta) dostawaliśmy kilka – powiedzmy 6 (żeby było na okrągło z podsieci /29) – adresów IP i mieliśmy wewnątrz sieci 10 komputerów. Na zewnątrz dostawaliśmy adresy IP np. 52.68.y.1-6 a my w sieci stosowaliśmy sobie adresację prywatną 192.168.2.10-20. Korzystając z NAT-a, tylko 6 z naszych 10 komputerów mogło korzystać z sieci na zewnątrz – router “przepisywał” dla danego adresu wewnątrz adres zewnętrzny, na przykład
192.168.2.10 – Router – 52.68.x.1
192.168.2.12 – Router – 52.68.x.2
i tak dalej. Router można było skonfigurować statycznie (wtedy pozostałe 4 komputery w naszej sieci pozostawały lokalnymi) albo dynamicznie – “kto pierwszy ten lepszy” – wtedy pierwsze 6 komputerów “zajmowało” NAT i pozostałe mogły działać tylko lokalnie, dopóki port się nie skończył.
PAT – Port Address Translation – to coś, co jest powszechne i trafiło pod strzechy z nazwą…NAT. I mimo, że to coś innego, NAT kojarzony jest z działaniem PAT a o PAT się zapomina :)
PAT daje nam możliwość ukrycia dużej liczby komputerów za jednym zewnętrznym adresem IP. Router zapisuje sobie, z jakiego adresu IP i portu przyszedł pakiet, otwiera u siebie pseudolosowo wybrany port i wysyła pakiet dalej jako źródło pokazując swój IP i wylosowany port. Odpowiedź na pakiet trafia na ten wylosowany port, router sprawdza, komu go przypisał i tam odsyła pakiet.
Czyli w routerze zostaje nam tabelka:
192.168.2.10:909 – ROUTER – 52.68.x.1:5455
192.168.2.10:919 – ROUTER – 52.68.x.1:5855
192.168.2.13:850 – ROUTER – 52.68.x.1:1555
192.168.2.13:6532 – ROUTER – 52.68.x.1:7878
Dzięki temu router wie, że jeśli z internetu dostanie pakiet skierowany na adres 52.68.x.1:5855, ma go przesłać dalej na wewnętrzny adres 192.168.2.10 na port 919.
Jak z tego skorzystać?
Co nam to daje? Możemy na przykład opublikować kilka, kilkanaście, a nawet kilkadziesiąt stron internetowych na jednym IP. Musimy tylko ustawić statyczne przekierowania portów. Standardowo ruch HTTP to ruch na porcie 80, ale możemy przecież “wystawić” przez router wskazanie:
192.168.2.10:80 – ROUTER – 52.68.x.1:700
192.168.2.11:80 – ROUTER – 52.68.x.1:701
192.168.2.12:80 – ROUTER – 52.68.x.1:702
192.168.2.13:80 – ROUTER – 52.68.x.1:703
Teraz osoba, która wpisze w przeglądarce adres http://52.68.x.1/ nie znajdzie strony, ale jeśli wpisze http://52.68.x.1:700/ trafi na stronę hostowaną przez 192.168.2.10, jeśli :702, to na stronę hostowaną przez .2.12 i tak dalej. Tak samo można wykonać z pulpitem zdalnym, na przykład:
192.168.2.11:3389 – ROUTER – 52.68.x.1:7001
Osoba, która spróbuje połączyć się pulpitem zdalnym na adres 52.68.x.1:7001, połączy się do komputera .2.11 :)
Windows Server 200x
Ok, wiemy, z czym to się je. To teraz szybka lekcja włączania przekierowania portów w usłudze RRAS.
Wychodzę z założenia, że RRAS każdy włączyć potrafi, ale może to opiszę “in the future”.
Włączamy przystawkę Routing and Remote Access i dochodzimy do NAT (heh…), jak na rysunku:
Klikamy prawym klawiszem na interfejs obsługujący nasze połączenie z internetem (u mnie jest to “Swiat”):
Wybieramy Properties (Właściwości) i przechodzimy na ostatnią zakładkę:
Znajduje się tu lista prekonfigurowanych, ale wyłączonych mapowań portów. Jeśli na któryś z gotowców klikniemy, wyświetli nam się okno:
Nie daje nam to jednak możliwości konfiguracji portu zewnętrznego – możemy tylko wpisać adres wewnętrzny. Jednak jeśli damy Add otrzymamy okno:
Gdzie oprócz nazwy można skonfigurować protokół – UDP lub TCP a także port przychodzący i wychodzący. Ja ustawiłem przekierowanie tak, że ktoś wchodząc na http://mojip:6000/ zobaczy stronę, która udostępniona jest na komputerze o adresie 10.1.1.12.
Tyle. To już działa!
A jeśli chcę to osiągnąć z linii poleceń?
Ok, wiem, że ludzie przenoszą się z linuxa i mówią “tam mam wpisy w IPTABLES i wszystko widzę”… W Windows z linii poleceń… można to zrobić łatwiej i czytelniej!
Zamiast wpisu:
iptables -t nat -A PREROUTING -i eth1 -s 83.xx.xx.142 -p udp -m udp –dport 1567 -j DNAT –to-destination 10.0.0.205:1521
(gdzie już się pogubiłem ;) ) wystarczy, że w cmd z poziomem admina wpiszę:
netsh routing ip nat add portmapping Swiat tcp 0.0.0.0 5555 192.168.0.2 3389
Teraz… co jest co?
netsh routing ip – pokazuje, że będę konfigurował routing ipv4 (ip=ipv4) przy użyciu netsh – narzędzia do konfiguracji sieci
nat – to chyba jasne – precyzuję, że będzie to dotyczyć NAT
add portmapping – dodaję mapowanie/przekierowanie portów
Swiat – nazwa mojego interfejsu, traktowanego jako “zewnętrzny” przy mapowaniu
tcp – protokół
0.0.0.0 – adres z zewnątrz, jakiego ma to dotyczyć. Quad-zero oznacza tu “dowolny adres”
5555 – port zewnętrzny
192.168.0.2 – IP wewnątrz sieci
3389 – port urządzenia, który ma być mapowany
Dzięki temu, z jakiegokolwiek adresu ktoś będzie chciał się podłączyć pulpitem zdalnym na mojip:5555, dostanie się do komputera 192.168.0.2.
Przy takiej konfiguracji w zakładce “Services and Ports” nie będzie nazwy (jak Remote Desktop czy Visual-PS), tylko “Custom Service 1” itp.
Źródła:
Kurs Cisco + własne laby + TechNet
Filed under: Domowy lab, Komputery i Internet · Tags: routing, Windows Server