MikroTik od podstaw do zaawansowania — część 6: Automatyzacja ZTNA, NAC, EDR i SOAR z Ansible i Pythonem
MikroTik od podstaw do zaawansowania — część 6: Automatyzacja ZTNA, NAC, EDR i SOAR z Ansible i Pythonem
Wstęp: Infrastruktura jako kod i cyberbezpieczeństwo
W świecie zdominowanym przez automatyzację, integracja bezpieczeństwa na poziomie infrastruktury staje się nie tyle opcją, co koniecznością. MikroTik, choć często utożsamiany z SOHO, może pełnić rolę bramy w środowiskach brzegowych wspierających podejście Zero Trust, jeśli zostanie odpowiednio zautomatyzowany. Niniejsza część koncentruje się na implementacji „Infrastructure as Code” w kontekście bezpieczeństwa: automatyczne konfigurowanie reguł, zarządzanie dostępem, wykrywanie incydentów i reagowanie na nie w czasie rzeczywistym.

1. MikroTik + Ansible: podstawy integracji
Dlaczego Ansible?
Ansible pozwala na deklaratywne zarządzanie konfiguracją urządzeń MikroTik z poziomu YAML oraz Python Jinja2. Idealnie sprawdza się w środowiskach, gdzie konfiguracja musi być powtarzalna i bezpieczna.
Playbook: podstawowa konfiguracja VPN + firewall
- name: Konfiguracja MikroTik ZTNA
hosts: mikrotik
connection: local
gather_facts: no
tasks:
- name: Ustawienie interfejsu WireGuard
routeros_command:
commands:
- /interface/wireguard/add name=wg0 private-key={{ private_key }} listen-port=51820
- name: Dodanie peer VPN
routeros_command:
commands:
- /interface/wireguard/peers/add interface=wg0 public-key={{ user_pubkey }} allowed-address=10.10.10.2/32
- name: Reguła firewall ograniczająca dostęp
routeros_command:
commands:
- /ip/firewall/filter/add chain=forward action=accept protocol=tcp dst-port=22 src-address=10.10.10.2/32 in-interface=wg0
2. MikroTik + Python: dynamiczne reagowanie na incydenty
Python, dzięki bibliotekom takim jak requests, paramiko i librouteros, pozwala dynamicznie reagować na zdarzenia z SIEM lub EDR, np. izolując zagrożone IP.
Skrypt Python – blokowanie adresu IP po incydencie
from librouteros import connect
api = connect(username='admin', password='haslo', host='192.168.88.1')
ip = '203.0.113.50'
api.path('ip', 'firewall', 'address-list').add(list='blokada', address=ip, comment='EDR: incydent')
Można go wywołać z dowolnego SOAR po otrzymaniu alertu.
3. Automatyzacja NAC — dynamiczny dostęp VLAN
Dzięki Ansible i API MikroTik możemy dynamicznie przypisywać urządzenia do odpowiednich VLAN-ów zgodnie z profilem bezpieczeństwa.
Playbook: przypisanie VLAN do portu po autoryzacji
- name: Dynamiczny VLAN po autoryzacji RADIUS
hosts: mikrotik
tasks:
- name: Przypisanie PVID portowi
routeros_command:
commands:
- /interface bridge port set numbers=ether3 pvid=300
Można to połączyć z serwerem RADIUS (np. FreeRADIUS) integrującym się z LDAP lub AD.
4. Automatyczne reguły bezpieczeństwa – scenariusz EDR + MikroTik
Scenariusz: Wykrycie ransomware na stacji roboczej
- EDR (np. CrowdStrike lub SentinelOne) wykrywa ransomware.
- SIEM otrzymuje alert o wysokim priorytecie.
- SOAR aktywuje webhook → wywołuje skrypt Python blokujący adres.
- MikroTik natychmiast dodaje IP do
address-list blokada.
Rozszerzenie: Blokada VLAN lub portu fizycznego
api.path('interface', 'bridge', 'port').set(**{'numbers': 'ether2', 'pvid': 999})
5. Wizualizacja i monitoring w Grafana + Loki
Zbieranie logów z MikroTik przez syslog i ich przetwarzanie przez Loki umożliwia tworzenie dashboardów:
- Prób logowania
- Alertów firewall
- Detekcji skanowania
- Utraconych pakietów
Grafana pozwala szybko ocenić, czy incydent jest jednostkowy, czy rozproszony.
6. Architektura automatycznego reagowania
[SIEM] ← syslog z MikroTik / alerty EDR
↓
[SOAR] – reguła automatyczna (np. TheHive + Cortex)
↓
[Python Script] – wywołanie REST lub SSH/API do MikroTik
↓
[MikroTik RouterOS] – blokada, przekierowanie VLAN, alert
7. Testowanie scenariuszy — symulacja i odtwarzalność
Aby w pełni przetestować konfigurację, warto użyć:
- np. Kali Linux do symulacji skanów
- EDR sandbox – do testowania fałszywych alarmów
- Mockowane zdarzenia SIEM – generowane przez playbook lub webhook
8. Gotowe komponenty do pobrania i rozszerzenia
- Ansible playbook ZTNA + Firewall
- Python skrypty reagujące na incydenty
- Loki + Grafana konfiguracja dashboardu
- Wzorcowa polityka NAC z mapowaniem VLAN
- Instrukcje integracji z FreeRADIUS i LDAP
W kolejnej części rozwiniemy te narzędzia do pełnego systemu SIEM/SOAR „na własnym serwerze” z logiką, regułami i alertowaniem.






