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 schedulerlubnetwatch, - API zewnętrznego lub fetch HTTP.

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).
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.






