· 17 мин чтения

MikroTik firewall: лучшие практики правил для корпоративного офиса

MikroTik firewall: лучшие практики правил для корпоративного офиса

Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш. За 15+ лет настройки MikroTik я видел всякое: офисы с firewall «allow all», где внутренние принтеры торчали в интернет с открытым PJL, и офисы с двумя сотнями правил, половина из которых дублировала друг друга. Правильный firewall — это компромисс между безопасностью и производительностью. Хороший комплект на RB4011 или CCR2004 из дата-центра МТС должен держать 1 Gbps NAT, 50+ правил и минимум 0,5 Gbps шифрования без просадок.

Цепочки firewall: input, forward, output

ЦепочкаЧто фильтруетПример правил
inputТрафик на само устройствоSSH, Winbox, SNMP из LAN
forwardТранзитный трафик через устройствоLAN-WAN, LAN-LAN
outputТрафик с устройства наружуОбычно не ограничивают

Основная работа — input (защита роутера) и forward (защита сетей). Output трогают редко, только если роутер сам генерирует подозрительный трафик или нужны маркировки для балансировки.

Универсальный шаблон input

/ip firewall filter
# 1. Принимаем established и related
add chain=input action=accept connection-state=established,related \
  comment="accept est/rel"
# 2. Дропаем invalid
add chain=input action=drop connection-state=invalid comment="drop invalid"
# 3. ICMP с rate-limit
add chain=input protocol=icmp limit=50,50:packet action=accept \
  comment="accept ICMP limited"
# 4. Разрешаем из LAN всё
add chain=input in-interface-list=LAN action=accept comment="accept from LAN"
# 5. Whitelist управления (если нужен удалённый доступ)
add chain=input src-address-list=management action=accept \
  comment="accept management"
# 6. Port knocking / honeypot — переносим Winbox на нестандартный порт
add chain=input dst-port=22,8291 protocol=tcp action=add-src-to-address-list \
  address-list=knock-stage1 address-list-timeout=30s
# 7. Финальный drop
add chain=input action=drop comment="drop rest"

Ключевое правило — «state first». Строка с established/related должна быть №1, иначе каждая пакет-ответа проходит весь список правил, что катастрофически снижает производительность.

Универсальный шаблон forward

# FastTrack для увеличения NAT-производительности
/ip firewall filter
add chain=forward action=fasttrack-connection connection-state=established,related \
  comment="fasttrack"
add chain=forward action=accept connection-state=established,related
add chain=forward action=drop connection-state=invalid
# Блок спуфинга
add chain=forward in-interface-list=WAN src-address-type=local action=drop \
  comment="drop spoofing"
# Защита от trashmasquerade
add chain=forward action=drop src-address-list=blacklist
# Разрешение пользовательских сетей наружу
add chain=forward src-address=192.168.10.0/24 out-interface-list=WAN \
  action=accept comment="office out"
# Запрет гостевой сети в корпоративные
add chain=forward src-address=192.168.20.0/24 dst-address=192.168.10.0/24 \
  action=drop comment="block guest→office"
add chain=forward src-address=192.168.20.0/24 dst-address=192.168.30.0/24 \
  action=drop comment="block guest→infra"
# DNAT для публичного веб-сервиса
add chain=forward dst-address=192.168.30.50 dst-port=443 protocol=tcp \
  action=accept comment="public HTTPS"
# Финальный drop
add chain=forward action=drop comment="drop rest"

Address-list: динамические списки IP

Address-list — ключевая фича MikroTik. Вы можете добавлять IP в список при срабатывании правила (например, после 5 неудачных SSH), а потом проверять принадлежность к списку в других правилах.

# Каскадная защита от брутфорса SSH
/ip firewall filter
add chain=input protocol=tcp dst-port=22 src-address-list=ssh-banned \
  action=drop comment="drop banned SSH"
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-banned \
  address-list-timeout=1d comment="ban SSH"
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

Четвёртая попытка подключения за минуту — клиент улетает в бан на сутки. Работает против 99% автоматических сканеров.

Raw-цепочка: разгружаем conntrack

Если на WAN льётся мусор (сканеры, ботнеты), conntrack занят пустой работой. Raw-таблица позволяет дропнуть пакет до трекинга.

/ip firewall raw
# Дропаем bogons (невалидные IP)
add chain=prerouting src-address-list=bogons action=drop \
  comment="drop bogons"
# Дропаем спуфинг
add chain=prerouting src-address=192.168.0.0/16 in-interface-list=WAN \
  action=drop comment="drop rfc1918 from WAN"
add chain=prerouting src-address=10.0.0.0/8 in-interface-list=WAN action=drop
add chain=prerouting src-address=172.16.0.0/12 in-interface-list=WAN action=drop

# Список bogons добавляется автоматически из RIPE
/ip firewall address-list
add list=bogons address=0.0.0.0/8
add list=bogons address=127.0.0.0/8
add list=bogons address=169.254.0.0/16
add list=bogons address=224.0.0.0/4
add list=bogons address=240.0.0.0/4

Защита от сканирования портов

/ip firewall filter
# PSD (port scan detector)
add chain=input protocol=tcp psd=21,3s,3,1 \
  action=add-src-to-address-list address-list=port-scanners \
  address-list-timeout=2w comment="detect port scan"
# Nmap NULL/FIN/XMAS
add chain=input protocol=tcp tcp-flags=fin,!syn,!rst,!psh,!ack,!urg \
  action=add-src-to-address-list address-list=port-scanners \
  address-list-timeout=2w
add chain=input src-address-list=port-scanners action=drop \
  comment="drop port scanners"

Кейс: укрепление firewall после взлома

В июне 2025 к нам пришёл клиент — производственная компания 80 рабочих мест в Подмосковье. На их MikroTik RB3011 был взломан пароль admin, злоумышленник изменил DNS на сервер с MITM, пользователи получали фишинговые страницы. Обнаружили через неделю по странному трафику. Факт взлома — пустой пароль mikrotik на Winbox, 8291 открыт в мир.

За один рабочий день мы:

За полгода — 14 862 попыток брутфорса SSH, все заблокированы каскадом. Ни одного успешного входа. Стоимость работ — 42 000 руб, включая расследование инцидента.

FastTrack и Connection Tracking

FastTrack — это обход основных таблиц firewall для уже принятых соединений. Повышает производительность NAT на 3–5x, но делает невидимым mangle и queue для этих пакетов. Если вы используете маркировку пакетов или shaper — отключите FastTrack или исключите нужные соединения.

# Проверить использование conntrack
/ip firewall connection print count-only
/ip firewall connection tracking print

Логирование и мониторинг

# Логируем дропы в отдельную тему
/system logging action
add name=fw-drops target=memory memory-lines=5000
/system logging
add topics=firewall action=fw-drops

# В правилах
add chain=input action=log log-prefix="drop-input" connection-state=new

# Экспорт на syslog-сервер
/system logging action
add name=remote target=remote remote=192.168.10.5 remote-port=514
/system logging add topics=firewall action=remote

Аудит и усиление firewall MikroTik

Провожу аудит существующих правил firewall, составляю рекомендации, переписываю или строю с нуля по лучшим практикам. Работа с любыми моделями от hEX до CCR. Документация с комментариями к каждому правилу, схема сетевого трафика.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — правила firewall MikroTik

В каком порядке обрабатываются правила?
Сверху вниз до первого совпадения. Established+related всегда №1, final drop — последний.
Чем отличается filter от raw?
Raw работает до connection tracking и дешевле по ресурсам для мусорного трафика.
Стоит ли блокировать по странам?
Geo-blocking помогает, но не заменяет полноценную защиту. VPN и TOR обходят.
Как защититься от брутфорса?
Каскадный бан через address-list с timeout, перенос портов на нестандартные.
Нужен ли DDoS-protection на MikroTik?
Базовая защита встроена, но для серьёзных атак — облачные анти-DDoS сервисы.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.