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  Protokoły sieciowe i ich porty

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
Planowanie Przestrzeni Adresowej IPv6: Strategie Podziału Dużych Prefiksów
Planowanie Przestrzeni Adresowej IPv6: Strategie Podziału Dużych Prefiksów

Planowanie Przestrzeni Adresowej IPv6: Strategie Podziału Dużych Prefiksów W dobie wdrażania IPv6 na szeroką skalę, kluczowe znaczenie dla administratorów sieci Czytaj dalej

Jak drukować z systemu Windows za pomocą CMD i PowerShell: kompletny przewodnik
Jak drukować z systemu Windows za pomocą CMD i PowerShell: kompletny przewodnik

Jak drukować z systemu Windows za pomocą CMD i PowerShell: kompletny przewodnik Drukowanie dokumentów w systemie Windows zazwyczaj odbywa się 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.