Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

Построение Stateful межсетевого экрана на MikroTik RouterOS (Filter, NAT, Raw)

Обновлено: 25.08.2026  ·  Официальная база знаний
  • Высокая утилизация CPU на MikroTik из-за проверки тяжелых правил Connection Tracking.
  • Сбои прохождения SIP/VoIP, FTP и IPSec трафика из-за блокировки пакетов в состоянии invalid.
  • Пропуск атак типа SYN Flood мимо стандартных правил межсетевого экрана.
  • Разрыв активных TCP-сессий при динамическом изменении таблиц маршрутизации.

1. Архитектура таблиц Packet Flow в RouterOS

  • Таблица Raw: инспекция пакетов до попадания в движок Connection Tracking (идеально для защиты от DDoS и сброса мусорного трафика без нагрузки на CPU).
  • Таблица Filter: основной контроль состояний (Stateful Inspection: established, related, untracked, invalid).
  • FastTrack: аппаратное/ядерное ускорение пересылки проверенных пакетов в обход дальнейшей цепочки фильтрации.

2. Конфигурация базового Stateful Firewall в Filter

/ip firewall filter
# 1. Разрешить установленные и связанные соединения (FastTrack)
add chain=forward action=fasttrack-connection connection-state=established,related comment="FastTrack forward"
add chain=forward action=accept connection-state=established,related comment="Accept established, related forward"
add chain=input action=accept connection-state=established,related comment="Accept established, related input"

# 2. Немедленно отбрасывать пакеты в состоянии Invalid
add chain=input action=drop connection-state=invalid comment="Drop Invalid input"
add chain=forward action=drop connection-state=invalid comment="Drop Invalid forward"

# 3. Разрешить локальный loopback и доверенный менеджмент
add chain=input in-interface=lo action=accept comment="Accept Loopback"
add chain=input in-interface-list=LAN src-address-list=ADMIN_DEVICES action=accept comment="Accept Admin Access"

# 4. Разрешить ICMP с лимитом частоты (защита от ping-флуда)
add chain=input protocol=icmp limit=50,5:packet action=accept comment="Rate-limited ICMP"

# 5. Дроп всего остального входящего трафика на роутер
add chain=input action=drop comment="Drop all other input"

# 6. Контроль транзитного трафика (Forward)
add chain=forward in-interface-list=LAN out-interface-list=WAN action=accept comment="Allow LAN to Internet"
add chain=forward action=drop comment="Drop all other forward"

3. Использование таблицы RAW для отражения DoS/DDoS

Сброс пакетов от заблокированных хостов без инициализации Connection Tracking:

/ip firewall raw
add chain=prerouting src-address-list=BLACKLIST action=drop comment="Early Drop Blacklisted IPs"
add chain=prerouting protocol=tcp tcp-flags=!fin,!syn,!rst,!ack action=drop comment="Drop Bogus TCP flags"

4. Настройка Source NAT (Masquerade)

/ip firewall nat
add chain=srcnat out-interface-list=WAN action=masquerade comment="Default WAN Masquerade"
Практический опыт инженера: Всегда ставьте правила с действием fasttrack-connection и established,related на самые первые позиции цепочек Filter. Это обеспечивает обработку до 95% пакетов по кратчайшему пути без прогона по всей таблице правил.

Частые вопросы (FAQ)

Почему FastTrack нельзя использовать вместе с Simple Queues (QoS)?

FastTrack перенаправляет пакеты в обход очередей QoS и большинства хуков ядра. При использовании очередей шейпинга FastTrack необходимо отключать, иначе лимиты скорости не будут применяться к пересылаемому трафику.

Что означает статус соединения 'untracked' в RouterOS?

Состояние untracked присваивается пакетам, для которых в таблице RAW было явно выполнено действие action=notrack. Это исключает их из таблицы Connection Tracking, экономя оперативную память и ресурсы CPU.

Чем опасны пакеты со статусом 'invalid'?

Пакеты со статусом invalid не принадлежат ни к одной известной сессии и не открывают новую (например, некорректная последовательность Sequence Numbers или испорченные заголовки). Их всегда нужно дропать.

Как безопасно настроить удаленное управление роутером WinBox/SSH?

Ограничьте входящий порт WinBox (8291) и SSH (22) списком src-address-list доверенных подсетей в цепочке input и никогда не оставляйте их открытыми для всего внешнего интерфейса WAN.