Mikrotik Firewall: правила которые спасут вашу сеть
Mikrotik Firewall: правила которые спасут вашу сеть
RouterOS от Mikrotik — мощная платформа, но «из коробки» настройки firewall далеко не оптимальны. Многие администраторы ограничиваются дефолтными правилами, не понимая, что за ними скрывается и как они работают. Давайте разберём firewall RouterOS от базовых цепочек до продвинутых техник защиты.
Цепочки: input, forward, output
В RouterOS три основные цепочки:
- input — трафик, адресованный самому роутеру (доступ к WinBox, SSH, веб-интерфейсу)
- forward — трафик, проходящий через роутер (между клиентами и интернетом)
- output — трафик, исходящий от самого роутера
Правило обрабатывается сверху вниз, первое совпадение — действие. Порядок правил критичен.
Connection tracking
Connection tracking отслеживает состояние TCP-соединений. Базовая конструкция для любого firewall:
/ip firewall filter
add chain=input connection-state=established,related action=accept comment="Accept established/related"
add chain=input connection-state=invalid action=drop comment="Drop invalid"
add chain=forward connection-state=established,related action=accept
add chain=forward connection-state=invalid action=drop
Пакеты established и related пропускаем без лишних проверок — это ответы на уже установленные соединения.
Базовые защитные правила
# Разрешить loopback
add chain=input in-interface=lo action=accept
# Разрешить ICMP (ping) — ограниченно
add chain=input protocol=icmp limit=50/5s,25:packet action=accept
add chain=input protocol=icmp action=drop
# Разрешить доступ к роутеру только из LAN
add chain=input in-interface=bridge-local action=accept
# Закрыть всё остальное на input
add chain=input action=drop comment="Drop all other input"
Защита от брутфорса
Классическая техника с address lists:
/ip firewall filter
add chain=input protocol=tcp dst-port=22
src-address-list=ssh_blacklist action=drop comment="Drop SSH bruteforce"
add chain=input protocol=tcp dst-port=22
connection-state=new src-address-list=ssh_stage3
action=add-src-to-address-list address-list=ssh_blacklist
address-list-timeout=10d
add chain=input protocol=tcp dst-port=22
connection-state=new src-address-list=ssh_stage2
action=add-src-to-address-list address-list=ssh_stage3
address-list-timeout=1m
add chain=input protocol=tcp dst-port=22
connection-state=new src-address-list=ssh_stage1
action=add-src-to-address-list address-list=ssh_stage2
address-list-timeout=1m
add chain=input protocol=tcp dst-port=22
connection-state=new
action=add-src-to-address-list address-list=ssh_stage1
address-list-timeout=1m
После трёх попыток за минуту IP попадает в чёрный список на 10 дней.
Address Lists
Address lists — мощный инструмент группировки IP-адресов. Создавайте списки для доверенных сетей, блокировок, геофильтрации:
/ip firewall address-list
add list=trusted_admins address=192.168.1.100
add list=trusted_admins address=10.0.0.0/8
Используйте в правилах: src-address-list=trusted_admins action=accept.
RAW таблица: защита до conntrack
RAW таблица обрабатывает пакеты до connection tracking — это минимальные накладные расходы. Идеальна для блокировки DDoS:
/ip firewall raw
add chain=prerouting src-address-list=ddos_block action=drop
add chain=prerouting protocol=tcp tcp-flags=fin,syn action=drop comment="Drop invalid TCP flags"
Fasttrack: ускорение трафика
Fasttrack позволяет аппаратно ускорить обработку established/related трафика, выводя его из обычной обработки:
/ip firewall filter
add chain=forward connection-state=established,related action=fasttrack-connection hw-offload=yes
add chain=forward connection-state=established,related action=accept
Это значительно повышает пропускную способность на RouterBOARD с аппаратной поддержкой. Важно: fasttrack отключает некоторые функции — QoS и некоторые мангл-правила для ускоренных соединений работать не будут.
Спасибо за статью, особенно за пример с ssh_stage — давно искал нормальное объяснение этой техники. У нас на нескольких объектах такая схема стоит уже года три и работает отлично.