Серверное оборудование для бизнеса — надёжные решения для любых задач Подробнее →
Статья

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 и некоторые мангл-правила для ускоренных соединений работать не будут.

3 Ответа

  1. Спасибо за статью, особенно за пример с ssh_stage — давно искал нормальное объяснение этой техники. У нас на нескольких объектах такая схема стоит уже года три и работает отлично.

  1. По RAW таблице: очень важно понимать, что правила там применяются до conntrack, поэтому блокировки там максимально дешёвые по CPU. При серьёзном DDoS это единственное место где можно реально что-то сделать без апгрейда железа.

  1. Fasttrack и mangle — это частая ловушка, несколько раз сталкивался с тем что QoS переставал работать после включения fasttrack. Обязательно тестируйте после включения.