Mikrotik – Zabezpieczenie routera

Mikrotik – Zabezpieczenie routera

 
Otrzymałem wiele głosów, że nie powinniśmy wystawiać niezabezpieczonego routera na świat po publikacji poprzednich dwóch artykułów – macie racje. Zasad BHP powinniśmy przestrzegać a one mówią jednoznacznie żeby nie wystawiać swojego MT na świat bez odpowiednich zabezpieczeń.
W dzisiejszym artykule opisze podstawowego firewalla podnoszącego poziom bezpieczeństwa którego używam i zastanowimy się nad usługami z których korzystamy i które muszą być wystawione na świat.
 

Założenia

Nasza dzisiejsza konfiguracja ma na celu zabezpieczenie naszego MT przed dostępem osób nieautoryzowanych. Osobiście uważam, że zarządzanie urządzeniem w żadnym wypadku nie powinno być udostępnione na świat dla wszystkich.
 
  1. Wyłączenie usług z których nie będziemy korzystać
  2. Konfiguracja podstawowego firewalla (filtrujemy ruch przychodzący do routera, pozwalamy na ruch wychodzący bez ograniczeń)
  3. Ograniczamy dostęp do usług nasłuchujących na MT tylko do znanych IP
 

Wyłączamy zbędne usługi

 

Mikrotik domyślnie posiada właczone usługi które według mojej oceny nie powinny być wystawione na świat bez zabezpieczenia. Nie jestem w stanie zagwarantować, że poniższa konfiguracja idealnie nada się do Waszego środowiska. Jest to konfiguracja którą ja stosuje i u mnie się sprawdza po większym lub mniejszym dostosowaniu do danych potrzeb. Mam na celu pokazać w jaki sposób to robię abyście mogli sami dostosować swoją konfigurację pod siebie.

Sprawdźmy jakie usługi są domyślnie właczone na naszym MT.

IP > Services w winbox lub w terminalu

 /ip service print 

Jak widzimy jest tego całkiem sporo. Ja korzystam w większości przypadków tylko w winboxa zatem resztę wyłączam.

/ip service
set telnet disabled=yes
set ftp disabled=yes
set www disabled=yes
set ssh disabled=yes
set api disabled=yes
set api-ssl disabled=yes 

Jeśli nie będziemy korzystać z usługi testowania przepustowości to proponuję również ją wyłączyć. Osobiście jeśli muszę skorzystać to włączam ją jednorazowo.

Tools > BTest server > Odznaczamy Enabled

/tool bandwidth-server set enabled=no 

Konfiguracja firewalla

W tym poradniku interesuje nas ruch w gałęzi INPUT (przychodzący do routera). Ruch w gałęzi FORWARD (przechodzący przez router) nas nie interesuje.
Ponieważ ze swoimi mikrotikami łącze się zawsze z dwóch lokalizacji (dom i praca) ograniczę dostęp do zarządzania tylko do tych adresów. Kiedy muszę się połączyć gdy jestem w ruchu i korzystam z internetu mobilnego łącze się za pomocą VPN do jednej z tych dwóch lokalizacji a dopiero wtedy prezentując się zaufanym IP łącze się za pomocą winboxa do docelowej lokalizacji.
W obu lokalizacjach posiadam jako router mikrotika oraz zmienny publiczny adres IP.
Aby ograniczenie dostępu w tej konfiguracji działało musimy najpierw uruchomić usługę dynamicznego dns w lokalizacji z której się będziemy łączyć.
Przyczyna jest prosta, nie możemy w regule firewalla użyć adresu IP który się zmienia, więc musimy użyć nazwy domenowej która się aktualizuje do aktualnego IP.
 

Tworzymy listę zaufanych adresów / domen

IP > Firewall > Address Lists > ADD
Name: management (dowolna nazwa której będziemy używać potem przy regułach firewalla)
Address: zaufany adres IP z którego będziemy się łączyć jeśli mamy stały lub domena jeśli korzystaliśmy z mojego artykułu (może być domena własna cname lub bezpośrednio DNS Name z IP > Cloud)
 
Czynność powtarzamy dla każdego zaufanego adresu IP / zaufanej domeny. Ważne aby we wszystkich wpisach w polu Name była ta sama nazwa, wtedy adresy będą należeć do tej samej listy i będziemy mogli z niej skorzystać przy regułach firewalla (ze wszystkich adresów w jednej regule)
/ip firewall address-list
add address=adres1.damianmac.pl list=management
add address=adres2.damianmac.pl list=management
add address=adres3.damianmac.pl list=management 

Na liście pojawiły się nasze statyczne wpisy oraz wpisy dynamiczne (litera D w pierwszej kolumnie D = dynamic) rozwiązujące nazwę na adres IP. Na moim przykładzie adres1, adres2 i adres3 rozwiązuje się na adresy serwerów DNS google 8.8.8.8, 8.8.4.4 oraz cloudflare 1.1.1.1. Dodałem te wpisy tylko do celów testowych w praktyce nie mają zastosowania bo musielibyśmy logować się np. do winboxa z powyższych adresów co jest niemożliwe.

Czas utworzyć nasze reguły firewalla.

/ip firewall filter
add action=fasttrack-connection chain=forward comment=fasttrack connection-state=established,related
add action=accept chain=input comment="established and related input" connection-state=established,r
add action=accept chain=input comment="allow snmp" disabled=yes dst-port=161 protocol=udp
add action=accept chain=input comment="allow vpn" disabled=yes dst-port=1701,500,4500 protocol=udp
add action=accept chain=input comment="allow vpn" disabled=yes protocol=ipsec-esp
add action=accept chain=input comment="allow winbox from management" dst-port=8291 protocol=tcp src-address-list=management
add action=accept chain=input comment="allow ntp" disabled=yes dst-port=123 protocol=tcp
add action=accept chain=input comment="allow icmp" protocol=icmp
add action=accept chain=input comment="allow all input from lan" in-interface=bridge1
add action=drop chain=input comment="drop all input !=management" src-address-list=!management 

Do każdego wpisu dodałem komentarz który powinien wystarczyć żeby zrozumieć za co odpowiada dana reguła. Część reguł jest wyłączonych ponieważ odpowiada za połączenie VPN, snmp lub ntp. Mam w planie w późniejszych artykułach wykorzystać te reguły przy konfiguracji serwera VPN czy monitorowania mikrotika przy pomocy zabbix.

13 thoughts on

Mikrotik – Zabezpieczenie routera

  • MrTomek

    Wydaj mi się że w komendach firewall masz błąd

    bodajże powinienes miec
    /ip firewall filter add action=accept chain=input comment=”allow winbox from management” dst-port=8291 protocol=tcp src-address-list=management

    • Damian

      Masz rację, ucięło przy kopiowaniu. Już poprawione. Dzięki!

  • eLMo

    Zastanawia mnie fakt, że dwie prierwsze polityki masz na początku:
    add action=fasttrack-connection chain=forward comment=fasttrack connection-state=established,related
    add action=accept chain=input comment=”established and related input” connection-state=established,r

    Ja zawsze daję, je na końcu, przed polityką blokowania całego ruchu.

    • Damian

      Firewall leci po regułach od góry, najważniejsze żeby było przed dropem, według mnie warto zrobić na pierwszym miejscu, żeby dla połączeń już nawiązanych nie musiał sprawdzać pozostałych reguł.

  • Marcin

    Zrobiłem wszystko jak w tutorialu. Aktualnie loguję się przez Mikrotik Cloud. Jednak jak właczam firewala z moją AdressListIP, nie moge się zalogować z zewnątrz. Lokalnie nie wiem, gdyz router mam poza domem.

    • Damian

      Dodałeś adresy IP czy nazwy domenowe do listy?

      • Marcin

        U mnie tak samo. Jak dodam Moją ListęIP to nie moge sie połaczyć. Łączę się domeną Cloud Mikrotika.

      • Marcin

        🙂 Nie zauważyłem, że to mój komentarz. Jeszcze raz. Tak, łaczę sie za pomocą nazwy domenowej Cloud Mikrotik.

        • Damian

          Czy jak wyłączysz regułę DROP to połączenie działa?

          • Marcin

            Niestety nic się nie zmienia. Nadal jak uaktywnię moją listę IP, nie mogę się zalogować.

  • aldii

    Niestety. Nic sie nie zmienia. Dalej nie moge sie zalogować. Mogę jakoś pokazać ci moją zakładkę Ip/firewall?

    • Damian

      Na czym stanęło?

  • Aleksander

    Mam problem. Nie mogę dodać repeatera do mikrotika hap ac2. Repeater to asus rp-ac51. Nie umiem nic w Internecie znaleźć. Pomoże ktoś?

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Podoba Ci się blog?
Zapisz się do newslettera.

Wpisz swój adres żeby nie ominąć nowego artykułu.
Z przyjemnością Cię o nim poinformuje.
Nie przejmuj się, nigdy nie wyśle Ci żadnego spamu.