MikroTik – Część 25: Automatyzacja firewall i ACL z Threat Intelligence – MikroTik + API + GitOps
Sieci komputerowe

MikroTik – Część 25: Automatyzacja firewall i ACL z Threat Intelligence – MikroTik + API + GitOps

MikroTik – kompleksowa konfiguracja sieci od podstaw do zaawansowanych rozwiązań

Część 25: Automatyzacja firewall i ACL z Threat Intelligence – MikroTik + API + GitOps

W dynamicznie zmieniającym się krajobrazie cyberzagrożeń, ręczne aktualizowanie reguł firewall staje się nieefektywne i niebezpieczne. Lista zagrożonych adresów IP, sieci złośliwych botnetów, proxy czy skompromitowanych serwerów zmienia się niemal w czasie rzeczywistym. Dlatego integracja MikroTik z zewnętrznymi źródłami Threat Intelligence, takimi jak AbuseIPDB, MISP czy AlienVault OTX, staje się kluczowym elementem strategii bezpieczeństwa.

W tej części serii pokażemy, jak zbudować dynamiczny system aktualizacji reguł firewall w MikroTik z użyciem Python, REST API i automatyzacji GitOps.

MikroTik – Część 25: Automatyzacja firewall i ACL z Threat Intelligence – MikroTik + API + GitOps
MikroTik – Część 25: Automatyzacja firewall i ACL z Threat Intelligence – MikroTik + API + GitOps

Cele i architektura rozwiązania

Główne cele systemu:

  • Dynamiczne pobieranie zaufanych list IP z serwisów Threat Intelligence
  • Automatyczna konwersja do formatu kompatybilnego z MikroTik
  • Push aktualizacji przez REST API lub CLI (zdalnie)
  • Integracja z repozytorium Git dla wersjonowania reguł
  • Kompatybilność z Ansible/GitLab CI

Diagram architektury:

[Threat Intelligence Feeds]
        ↓
   [Python Parser]
        ↓
  [Firewall Rule Generator]
        ↓
      [GitOps Repo] ↔ [Ansible/CI]
                       ↓
         [MikroTik REST API / CLI]

Krok 1: Pobieranie danych z Threat Intelligence

Przykład: AbuseIPDB

Zarejestruj się w serwisie AbuseIPDB i pobierz klucz API.

import requests

API_KEY = "TWOJ_ABUSEIPDB_KEY"
URL = "https://api.abuseipdb.com/api/v2/blacklist"

headers = {
    'Key': API_KEY,
    'Accept': 'application/json'
}

params = {
    'confidenceMinimum': '80',
    'limit': 10000
}

response = requests.get(URL, headers=headers, params=params)
data = response.json()

ips = [entry['ipAddress'] for entry in data['data']]

Można również pobierać dane z:

Czytaj  Wyjaśnienie, czym jest IPv6 i dlaczego został wprowadzony

Krok 2: Generowanie skryptu MikroTik

Zbiór IP zamieniamy na listę adresów i reguł firewall:

with open("firewall_dynamic_blacklist.rsc", "w") as f:
    f.write("/ip firewall address-list\n")
    for ip in ips:
        f.write(f"add list=blacklist address={ip} comment=\"abuseipdb\"\n")

    f.write("\n/ip firewall filter\n")
    f.write("remove [find comment=\"abuseipdb rule\"]\n")
    f.write("add chain=input src-address-list=blacklist action=drop comment=\"abuseipdb rule\"\n")

Krok 3: Wgrywanie konfiguracji do MikroTik przez API

from routeros_api import RouterOsApiPool

api = RouterOsApiPool('192.168.88.1', username='admin', password='sekret', plaintext_login=True)
conn = api.get_api()

with open("firewall_dynamic_blacklist.rsc") as file:
    for line in file:
        line = line.strip()
        if line and not line.startswith('/'):
            conn.get_binary_resource('/').call('cli', {'command': line})

Krok 4: Automatyzacja i harmonogram

Aby uruchamiać ten proces automatycznie:

  • Zintegrować z GitLab CI/GitHub Actions
  • Uruchomić skrypt jako cronjob (w Dockerze lub hostowo)
  • Pushować zaktualizowany .rsc do repozytorium Git, by zachować pełną historię zmian

Przykład harmonogramu cron:

0 */6 * * * /usr/bin/python3 /scripts/update_firewall_blacklist.py

Krok 5: Weryfikacja i rollback

GitOps zapewnia kontrolę wersji – każda zmiana w .rsc jest zapisana w historii repozytorium. W przypadku problemu możemy szybko wrócić do poprzedniej wersji:

git checkout HEAD~1 firewall_dynamic_blacklist.rsc
git commit -am "Rollback"
git push

Korzyści z automatyzacji firewall z Threat Intelligence

✅ Zwiększona skuteczność ochrony perymetrycznej
✅ Zmniejszenie liczby incydentów z udziałem znanych zagrożeń
✅ Automatyczne aktualizacje bez ręcznej ingerencji
✅ Integracja z systemami SIEM/SOAR
✅ Zgodność z wymaganiami RODO, NIS2, ISO 27001
✅ Pełna audytowalność w Git


Co dalej?

W części 26 omówimy tworzenie honeypotów przy użyciu MikroTik + Raspberry Pi + Elastic Stack, które pozwolą rejestrować i analizować próby ataków na warstwie sieciowej. Połączymy to z alertowaniem i systemem Threat Scoring.

 

Polecane wpisy
Routing Zewnętrzny BGP4+ dla IPv6: Peering i Polityki Routingowe w Ery IPv6
Routing Zewnętrzny BGP4+ dla IPv6: Peering i Polityki Routingowe w Ery IPv6

🌍 Routing Zewnętrzny BGP4+ dla IPv6: Peering i Polityki Routingowe w Ery IPv6 W dobie rosnącej implementacji protokołu IPv6, nieodzowne 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.