Coraz częściej bywa tak że posiadamy w domu jakieś urządzenie np. kamerę IP czy serwer plików i chcemy aby było ono dostępne z zewnątrz, z Internetu. W takim przypadku musimy przekierować określone porty na routerze. Finalnie chodzi o to aby router przekierował określony ruch który otrzyma z Internetu do określonego hosta w sieci lokalnej.
Artykuł został przygotowany przy użyciu systemu RouterOS w wersji 6.42.1 (current).
Statyczne przypisanie lokalnego adresu IP
Najczęściej w sieci LAN działa serwer DHCP który automatycznie konfiguruje nasze urządzenia w sieci do pracy w Internecie (nadaje im m.in. adres IP, maskę, adres bramy domyślnej i adres serwera DNS). Z uwagi że przekierowanie portu wykonuje się na określony, lokalny adresy IP najlepiej przypisać go na stałe w konfiguracji serwera DHCP. Unikniemy przez to problemów gdy np. adres IP ulegnie zmianie.
Aby to zrobić wchodzimy w IP->DHCP Server a następnie w zakładkę Leases. Widzimy w niej listę wszystkich urządzeń które pobrały adres z naszego MikroTik’a.
Klikamy prawym klawiszem na hosta któremu chcemy przypisać adres na stałe i klikany w Make Static.
Widzimy że zniknęła flaga „D” – Dynamic co oznacza ze adres został statycznie przypisany dla tego adresu MAC.
Możemy teraz przejść do konfiguracji przekierowania portów.
Przekierowanie portów
Wchodzimy zatem w IP->Firewall i wchodzimy w zakładkę NAT.
Dodajemy nową regułę:
Jako chain wybieramy dstnat (destination nat) – ponieważ interesuje którego jesteśmy celem.
Następnie wpisujemy swój publiczny adres IP (który otrzymaliśmy od naszego dostawcy internetowego) w polu Dst. Address (ponieważ na ten adres przyjdzie połączenie z Internetu). Wybieramy też protokół i port na który będziemy łączyć się z zewnątrz (Dst. Port).
Jeżeli nie jesteśmy pewni adresu publicznego lub jest on zmienny wówczas zamiast go wpisywać wybieramy Input Interface – czyli interfejs którym ten ruch wejdzie do routera – najczęściej będzie to po prostu port WAN.
Następnie przechodzimy do zakładki Action gdzie wybieramy dst-nat (bo nadal obsługujemy ruch przychodzący, docelowy). W polu To Address wpisujemy adres hosta z sieci lokalnej a jako To Ports wpisujemy port na którym nasłuchuje to urządzenie.
Port w zakładce General i Action może być taki sam (na przykład gdy uruchamiany serwer www wówczas zależy nam aby połączenie odbywało się po domyślnym porcie 80) lub inny (gdy np. mamy kamerę IP która nasłuchuje np. tylko na 80 porcie a z przyczyn bezpieczeństwa nie chcemy jej wystawiać aż tak jawnie) wówczas w zakładce General wpisujemy np. port 8080 a w Action 80. Przy takiej konfiguracji łączymy się zdalnie na adres 31.158.67.50:8080 a kamera otwiera nam zawartość którą udostępnia na porcie 80.
DMZ Host
DMZ czyli skrót od „Demilitarized zone” oznacza strefę/hosta w sieci który jest całkowicie odsłonięty od zewnątrz sieci czyli cały ruch który przychodzi z Internetu na WAN routera jest przekierowany do tego hosta.
Konfiguracja DMZ wygląda identycznie jak przekierowanie portów z tym że pola „Dst. Port” i „Protocol” w zakładce General oraz „To Ports” w zakładce Action zostawiamy puste. Wtedy cały ruch będzie przekierowany do hosta w sieci LAN.
Z DMZ Host’em należy uważać. Często bywa tak że jakieś urządzenie potrzebuje mieć przekierowane kilka portów a użytkownik nie znając ich wszystkich robi DMZ’a żeby mieć teoretyczny spokój. To duży błąd od strony bezpieczeństwa, NIGDY nie powinno się tego robić. Bo tak na prawdę nie znamy wszystkich podatności urządzenia które podłączyłyśmy. A robotów w Internecie które szukają podatnych urządzeń są tysiące. Dlatego DMZ to ostateczność, powinnyśmy zawsze preferować przekierowanie portów.
Połączenie przekierowania portów i DMZ
Załóżmy że mamy w sieci 2 serwery jeden tylko do stron WWW a drugi do „wszystkiego” (FTP, SSH, multimedia, itp) dla którego najlepiej było by ustawić DMZ. Niestety posiadamy tylko 1 publiczny adres IP na routerze. MikroTik pozwala nam połączyć z sobą te 2 funkcję w następujący sposób. Dodajemy najpierw przekierowanie portów (lub tyle ich ich potrzebujemy) a na końcu regułę dotyczącą DMZ.
W konsoli wygląda to tak:
[admin@MikroTik] > ip firewall nat export /ip firewall nat add action=masquerade chain=srcnat comment=NAT out-interface=ether1 add action=dst-nat chain=dstnat comment="Przekierowanie portu 80 do serwera WWW - strony HTTP" dst-port=80 in-interface=ether1 protocol=tcp to-addresses=192.168.100.15 to-ports=80 add action=dst-nat chain=dstnat comment="Przekierowanie portu 443 do serwera WWW - strony HTTPS" dst-port=443 in-interface=ether1 protocol=tcp to-addresses=192.168.100.15 to-ports=443 add action=dst-nat chain=dstnat comment="Przekierowanie reszty ruchu do hosta DMZ" in-interface=ether1 to-addresses=192.168.100.14
Takie działanie uzyskujemy ponieważ reguły NAT wykonywane są po kolej zgodnie z zasadą że wykona się pierwsza do której pasuje dany pakiet.