Привет, сетевой друг! Собрал три способа прокачать защиту MikroTik - особенно если роутеров уже несколько и хочется меньше ручной работы…🟣Автоматически обновлять блок-листы через RouterOS API + Python: Когда роутеров десятки, заходить на каждый и вручную добавлять подозрительные IP - сомнительное удовольствие. Через API можно централизованно обновлять address-list и быстро распространять блокировки на весь парк:
import routeros_api
connection = routeros_api.RouterOsApiPool(
'192.168.1.1',
username='admin',
password='pass',
plaintext_login=True
)
api = connection.get_api()
rules = api.get_resource('/ip/firewall/filter')
print(rules.get())
Например, добавить IP в
blocklist:api.get_resource('/ip/firewall/address-list').add(
list='blocklist',
address='10.0.0.5',
comment='auto-blocked'
)Так можно быстро блокировать адреса, полученные из SIEM, threat intelligence или внутренней системы мониторинга, сразу на всех MikroTik.
🟣Проверять доступность сервисов через Netwatch: Ping не всегда показывает реальное состояние сервиса. Хост может отвечать на ICMP, пока nginx возвращает
502, приложение не работает, а пользователи уже не могут подключиться. Для дополнительного контроля Netwatch можно связать с HTTP health-check и проверять конкретный endpoint:/tool netwatch
add host=10.0.0.10 interval=30s timeout=5s \
type=HTTP http-codes=200 \
down-script="/log error \"Web server DOWN\"" \
up-script="/log info \"Web server UP\""
Если сервис перестал отвечать,
down-script может добавить его адрес в отдельный список, отправить событие в мониторинг или запустить переключение на резервный сервер.🟣Ловить сканирование внутри сети: Скомпрометированный хост может начать быстро перебирать адреса и открывать множество TCP-соединений. Для этого можно отслеживать новые SYN и складывать активные источники в отдельный список:
/ip firewall mangle
add chain=forward protocol=tcp tcp-flags=syn \
connection-state=new \
src-address-list=!whitelist \
action=add-src-to-address-list \
address-list=syn-tracking \
address-list-timeout=30s
/ip firewall filter
add chain=forward protocol=tcp tcp-flags=syn \
connection-state=new \
src-address-list=syn-tracking \
connection-limit=30,32 \
action=add-src-to-address-list \
address-list=internal-scanner \
address-list-timeout=1h \
log=yes \
log-prefix="SCAN DETECTED:"
add chain=forward src-address-list=internal-scanner \
action=drop \
log=yes \
log-prefix="SCANNER BLOCKED: "
В итоге источник, который набирает слишком много одновременных TCP-соединений, попадает в
internal-scanner, а следующее правило уже режет ему трафик.Серверная Админа | Zeroday | #Mikrotik