Konfiguracja MikroTik – Część 43: Dynamiczny Firewall z użyciem skryptów i adresów listowych (Address Lists)
Sieci komputerowe

Konfiguracja MikroTik – Część 43: Dynamiczny Firewall z użyciem skryptów i adresów listowych (Address Lists)

Konfiguracja MikroTik – Część 43: Dynamiczny Firewall z użyciem skryptów i adresów listowych (Address Lists)

W czterdziestej trzeciej części naszej serii o zaawansowanej konfiguracji MikroTik zajmiemy się budową dynamicznej zapory ogniowej opartej o adresy listowe (address-list) oraz skrypty automatyzujące reakcję na zdarzenia w sieci. Dynamiczny firewall na MikroTik to potężne narzędzie, które umożliwia m.in. blokowanie skanów, automatyczne banowanie podejrzanych hostów, filtrowanie geolokalizacyjne oraz integrację z zewnętrznymi źródłami danych jak listy zagrożeń (threat feeds).


1. Wprowadzenie: Czym jest dynamiczny firewall?

Standardowy firewall to zestaw reguł pozwalających lub blokujących ruch na podstawie adresów IP, portów, protokołów itp. Dynamiczny firewall wzbogaca ten model o reakcję na kontekst:

  • wykrycie wzorca skanowania portów,
  • wykrycie prób logowania,
  • integrację z listami reputacyjnymi IP (np. spamhaus, abuse.ch),
  • czasowe banowanie adresów IP,
  • tworzenie „czarnych” i „białych” list.

W MikroTik możemy to osiągnąć za pomocą:

  • reguł firewall filter,
  • mechanizmu address-list,
  • skryptów z system scheduler lub netwatch,
  • API zewnętrznego lub fetch HTTP.
Konfiguracja MikroTik – Część 43: Dynamiczny Firewall z użyciem skryptów i adresów listowych (Address Lists)
Konfiguracja MikroTik – Część 43: Dynamiczny Firewall z użyciem skryptów i adresów listowych (Address Lists)

2. Tworzenie dynamicznych adresów listowych

Pierwszym krokiem jest definiowanie list adresowych, które będą używane w regułach filtrowania:

/ip firewall address-list
add list=ban-list address=0.0.0.0 comment="Dynamicznie blokowane adresy"

Adresy do tej listy mogą być dodawane ręcznie, skryptami lub automatycznie przez reguły firewall:

/ip firewall filter
add chain=input src-address-list=ban-list action=drop comment="Zablokowani"

3. Automatyczne blokowanie na podstawie liczby połączeń (DoS, skanowanie)

Załóżmy, że chcemy wykrywać hosty, które próbują nawiązać zbyt wiele połączeń w krótkim czasie:

/ip firewall filter
add chain=input protocol=tcp connection-state=new src-address-list=!whitelist \
  action=add-src-to-address-list address-list=ban-list address-list-timeout=1h \
  connection-limit=30,32 comment="Wykrycie podejrzanego ruchu"

4. Wykrywanie prób logowania SSH/Winbox i blokowanie

Zapiszemy logi, a następnie automatycznie przetworzymy je i zbanujemy źródła:

/system logging
add topics=login action=memory
add topics=login,info action=remote

/system script
add name=logban source="
:local logLines [/log find message~\"login failure\"];
:foreach i in=\$logLines do={
  :local ip [/log get \$i message];
  :if (\$ip ~ \"from\") do={
    :local parts [:pick \$ip ([:find \$ip \"from\"] + 5) [:len \$ip]];
    /ip firewall address-list add list=ban-list address=\$parts timeout=1h;
  }
}"

Dodaj ten skrypt do scheduler, np. co 5 minut:

/system scheduler
add name=bancheck interval=5m on-event=logban

5. Pobieranie zewnętrznych list zagrożeń

MikroTik może pobierać zewnętrzne dane z Internetu, np. z listy blocklist.de lub abuse.ch. Można to zrobić przez tool fetch:

/tool fetch url="https://example.com/blocklist.txt" dst-path=blocklist.rsc

/system script
add name=importblocklist source="import blocklist.rsc;"

Alternatywnie można czytać dane i dodawać je dynamicznie:

/tool fetch url="https://example.com/ips.txt" dst-path=ips.txt
:local iplist [/file get ips.txt contents]
:foreach line in=[:toarray \$iplist] do={
  /ip firewall address-list add list=ban-list address=\$line timeout=1d;
}

6. Zabezpieczenia i listy wyjątków (whitelist)

Ważne jest stworzenie listy adresów zaufanych:

/ip firewall address-list
add list=whitelist address=192.168.0.0/16
add list=whitelist address=10.0.0.0/8

Dodajemy warunek do reguł:

/ip firewall filter
add chain=input src-address-list=whitelist action=accept place-before=0

7. Monitoring i diagnostyka

Podstawowe komendy do podglądu stanu dynamicznego firewalla:

/ip firewall address-list print
/log print where message~"login failure"
/ip firewall connection print where src-address~"ban-list"

Dodatkowo można skonfigurować eksport danych do syslog lub SIEM:

/system logging action
add name=remote target=remote remote-address=192.168.1.100 remote-port=514

/system logging
add topics=firewall action=remote

8. Rozszerzenia: GeoIP i dynamiczne reguły czasowe

Zaawansowani użytkownicy mogą wdrożyć:

  • skrypty z analizą lokalizacji IP (GeoIP z zewnętrznego API),
  • mechanizmy usuwające wpisy po czasie nieaktywności,
  • dynamiczne reguły czasowe (np. inna ochrona w godzinach pracy).
Czytaj  Sztuczna inteligencja w bezpieczeństwie sieciowym: Nowy paradygmat ochrony infrastruktury IT

Podsumowanie

Dynamiczny firewall MikroTik łączy prostotę implementacji z elastycznością i ogromnymi możliwościami. Dobrze skonfigurowany system reaguje automatycznie na anomalie w ruchu sieciowym, minimalizuje ryzyko ataków brute-force, DoS i nadużyć. To fundament nowoczesnego bezpieczeństwa sieciowego w każdej organizacji – niezależnie czy to domowe laboratorium, czy sieć ISP. W kolejnych częściach omówimy wykorzystanie NetFlow + SIEM do korelacji wykrytych incydentów oraz rozbudowę dynamicznych reguł o uczenie maszynowe.

 

Polecane wpisy
Sztuczna inteligencja w programowaniu: rewolucja, która zmienia zasady gry
Sztuczna inteligencja w programowaniu: rewolucja, która zmienia zasady gry

Sztuczna inteligencja w programowaniu: rewolucja, która zmienia zasady gry Sztuczna inteligencja (AI) już od dawna przestała być jedynie tematem badań Czytaj dalej

Jak wybrać odpowiednią infrastrukturę WAN?
Jak wybrać odpowiednią infrastrukturę WAN?

Jak wybrać odpowiednią infrastrukturę WAN? Infrastruktura WAN to zestaw urządzeń i usług, które umożliwiają połączenie sieci lokalnych (LAN) w różnych Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.