TECHNOLOGIA · CYBERBEZPIECZEŃSTWO · BIZNES

Jak skutecznie zabezpieczyć MikroTik RouterOS? [z archiwum ICT]

[miejsce publikacji] ICT Professional, Nr 20 – Jesień 2018

[rubryka] Baza Wiedzy

[autor] Michał Filipek

[tytuł] Jak skutecznie zabezpieczyć MikroTik RouterOS?

W ostatnim czasie głośno jest o lukach w systemie RouterOS. W idealnym świecie nie powinny się pojawiać, lecz praktyka wskazuje, że każdy producent ma na swoim koncie mniej lub więcej wpadek. Co za tym idzie, stosując zasadę ograniczonego zaufania, warto zadbać o bezpieczeństwo naszych routerów. Poniższy tekst pokazuje elementy, na które należy zwrócić szczególną uwagę, zabezpieczając nasz router. Zajmiemy się kolejno: kontami użytkowników, zabezpieczeniem dostępu po IP i adresach MAC, interfejsami, usługami typu DNS czy bt-Test, regułami firewall i kilkoma jeszcze.

Konta użytkowników

Na początek przejdźmy do użytkowników systemowych (System -> Users). Użytkownicy ci będą mogli logować się na router i w zależności od uprawnień, przeglądać lub modyfikować konfigurację. Zaleceniem jest tu zmiana domyślnego loginu: admin na inny, korzystanie z silnych, złożonych i długich haseł oraz przydzielenie osobnych kont dla każdego z administratorów.

/user set 0 name=nazwaUżytkownika

/user set 0 password=”odpowiednioSkomplikowaneHasło”

W większych środowiskach, zamiast lokalnej bazy użytkowników, warto rozważyć wykorzystanie serwera Radius do autoryzacji – oczywiście z zachowaniem wcześniej przytoczonych zasad. W temacie użytkowników warto ograniczyć dostęp dla kont, gdzie i tak wiemy, że wykorzystywane są jedynie z sieci wewnętrznej (np. allowed-address=192.168.1.0/24).

/user set 0 allowed-address=192.168.1.0/24

Dostęp z sieci bezpośrednio podłączonych do routera, adres mac

Dobrą praktyką jest wyłączenie wszystkich fizycznych interfejsów, które nie są obecnie używane:

/interface set 1,2,3 disabled=yes

Następnie warto zastanowić się, jak nasz router podłączony jest do sieci zewnętrznej oraz czy aby na pewno wszystkie sieci prywatne są sieciami zaufanymi. Typowy schemat podłączenia routera poniżej:

Można rozważyć przeznaczenie jednego z interfejsów do zarządzania lokalnie naszym urządzeniem. Na pozostałych interfejsach powinniśmy wyłączyć możliwość łączenia się do routera za pomocą adresu MAC, jak również wyłączyć działanie protokołu MNDP (MikroTik Neighbor Discovery Protocol). W tym celu wykonujemy następujące kroki:

/interface list add name=mgmt

/interface list member add interface=ether5 list=mgmt

/ip neighbor discovery-settings set discover-interface-list=mgmt

/tool mac-server mac-winbox set allowed-interface-list=mgmt

/tool mac-server set allowed-interface-list=mgmt

/tool mac-server ping set enabled=no

W powyższym przykładzie ograniczyliśmy działanie protokołu MNDP do interfejsu ether5. Jeżeli MNDP jest włączony na danym interfejsie, to za jego pomocą nasz RouterOS może wykrywać inne urządzenia, jak i sam staje się wykrywalny. Poza faktem bycia wykrytym, router ujawni również swój identyfikator, platformę, na jakiej działa, a także, jakie oprogramowanie jest na nim zainstalowane (w której wersji).

Podobnie zrobiliśmy, ograniczając możliwość zalogowania się na urządzenie, za pomocą opcji mac- winbox, mac-telnet, tylko do interfejsu ether5.

Metody dostępu do urządzenia (z wykorzystaniem IP) oraz inne usługi

RouterOS umożliwia nam zarządzanie naszym routerem na wiele sposobów. Każdy z nich może stać się słabym punktem naszego bezpieczeństwa. Dlatego dostęp do naszego routera powinniśmy ograniczyć do jednej, czasami dwóch metod.

/ip service disable [find name=telnet]

/ip service disable [find name=ftp]

/ip service disable [find name=www]

/ip service disable [find name=www-ssl]

/ip service disable [find name=api]

/ip service disable [find name=api-ssl]

W tym przypadku pozostawiliśmy jedynie dostęp ssh oraz winbox. Dodatkowo, możemy zmienić domyślne numery portów, na jakich działają usługi winbox, ssh, oraz wskazać, z jakich adresów IP będziemy mogli się do nich podłączyć.

/ip service set port=2022 address=10.10.10.10,10.10.10.11 [find name=ssh]

/ip service set port=18291 address=10.10.10.10,10.10.10.11 [find name=winbox]

Kolejnym elementem podnoszącym bezpieczeństwo jest ustawienie silnej kryptografii dla połączeń ssh:

/ip ssh set strong-crypto=yes

Pozostałe usługi, jakie powinniśmy wyłączyć:

/tool bandwidth-server set enabled=no

/ip dns set allow-remote-requests=no

/ip socks set enabled=no

Usługa UPnP pozwala na dynamiczne tworzenie reguł dst-nat dla urządzeń w sieci LAN, które o to poproszą. Najczęściej są nimi konsole do gier czy telewizory IP. Gdy tylko jest to możliwe, zalecane jest wyłączenie tej funkcjonalności.

/ip upnp set enable=no

RP Filter – metoda blokowania pakietów mających niepoprawny adres źródłowy (spoofing). Tzn. z naszej sieci LAN nie powinien wyjść pakiet, którego adres źródłowy nie odpowiada wpisom w tablicy FIB.

/ip settings set rp-filter=strict

Jeżeli nie korzystamy z usługi MikroTik ip cloud, powinniśmy ją wyłączyć:

/ip cloud set ddns-enable=no update-time=no

Podobnie postępujemy z:

/ip proxy set enabled=no /ip socks set enabled=no

Część urządzeń MikroTik posiada wbudowane wyświetlacze LCD. Jeżeli nie kontrolujemy fizycznego dostępu do routera (przestrzenie współdzielone) lub nie korzystamy z tej funkcjonalności, należy się zastanowić nad wyłączeniem wyświetlacza:

/lcd set enabled=no

Dostęp z zewnątrz do routera

Możliwość kontrolowania routera z zewnątrz powinna zostać szczegółowo zaplanowana i możliwie ograniczona. Dobrą praktyką jest zablokowanie łączenia się bezpośrednio z zewnątrz sieci do naszego routera. Mechanizmami, które zwiększą nasze bezpieczeństwo są technologie VPN oraz odpowiednie reguły firewalla.

Opcja 1 – dostęp tylko ze znanych adresów IP (gdy mamy stały adres IP)

/ip firewall filter add chain=input comment=”Accept Established, Related” connection- state=established,related action=accept

/ip firewall filter add chain=input src-address=45.32.154.212 action=accept

/ip firewall filter add chain=input src-address=45.32.154.100 action=accept

/ip firewall filter add chain=input action=drop

Opcja 2 – dostęp tylko z VPN (możemy łączyć się z różnych adresów IP)

Przed zalogowaniem się do routera należy wcześniej nawiązać połączenie VPN.

/ip firewall filter add chain=input comment=”Accept Established, Related” connection- state=established,related action=accept

/ip firewall filter add chain=input comment=”SSTP VPN” protocol=tcp dst-port=443 action=accept

/ip firewall filter add chain=input src-address=172.16.10.0/24 action=accept

/ip firewall filter add chain=input action=drop

Opcja 3 – port knocking (możemy łączyć się z różnych adresów IP)

Mechanizm port knocking polega na dynamicznym modyfikowaniu reguł dostępowych firewalla w przypadku, gdy nastąpiła określona akcja. Aby móc zalogować się za pomocą winboxa, należy wcześniej wykonać dodatkowe czynności, np. podjąć próbę komunikacji z routerem na port 2133/tcp, a następnie 7117/tcp. Po wykonaniu tej sekwencji, router doda nasz adres IP do odpowiedniej listy adresów, która będzie miała dostęp do wcześniej zablokowanego portu winboxa.

/ip firewall filter add chain=input comment=”Accept Established, Related” connection- state=established,related action=accept

/ip firewall filter add chain=input protocol=tcp dst-port=2133 action=add-src-to-address-list address- list=port-knocking-stage1 address-list-timeout=00:01:00

/ip firewall filter add chain=input protocol=tcp dst-port=7117 src-address-list=port-knocking-stage1 action=add-src-to-address-list address-list=port-knocking-stage2 address-list-timeout=00:01:00

/ip firewall filter add chain=input src-address-list=port-knocking-stage2 protocol=tcp dst-port=8291 action=accept

/ip firewall filter add chain=input action=drop

Jeżeli nasz komputer wyposażony jest w narzędzie telnet, możemy zasymulować próbę połączenia na wskazane porty:

telnet adresIProutera 2133

telnet adresIProutera 7117

Dopiero teraz możemy użyć winboxa do połączenia z naszym routerem.

Uwagi

Opcjonalnie można ustawić na urządzeniu wiadomość powitalną dla każdego, kto się loguje. Tego typu informacja może zawierać notę prawną lub inny komunikat mający na celu poinformowanie intruza o fakcie, iż jego poczynania są od teraz monitorowane.

/system note set show-at-login=yes

/system note set note=”Dostęp do urządzenia jest monitorowany.”

Zalecamy zbieranie zdarzeń systemowych typu Syslog, najlepiej na zewnętrznym serwerze do tego przeznaczonym. Dodatkowo, warto zastanowić się nad skorzystaniem z Netflow w celu zalogowania pakietów przychodzących do naszego routera i późniejszej analizy.

Oczywiście regularnie powinniśmy tworzyć kopie zapasowe naszej konfiguracji, pamiętając, aby nie przechowywać ich bezpośrednio na routerze.

 

Michal.Koch
Michal.Koch
Dziennikarz i researcher. Tworzy teksty o najnowszych technologiach, 5G, cyberbezpieczeństwie i polskiej branży telekomunikacyjnej.

przeczytaj najnowszy numer isporfessional

Najnowsze