Распределенные атаки на отказ в обслуживании (DDoS) остаются одной из главных угроз для сетевой инфраструктуры. Встроенные средства защиты Mikrotik RouterOS позволяют эффективно противостоять атакам на сетевом (L3) и транспортном (L4) уровнях без привлечения сторонних решений. Это руководство содержит проверенные на практике конфигурации межсетевого экрана, механизмы ограничения соединений и динамической блокировки, которые вы можете внедрить в своей сети за 30 минут.
Мы разберем конкретные правила для противодействия SYN-flood, UDP-flood и ICMP-flood, объясним логику работы защиты и дадим инструменты для мониторинга. Все настройки адаптированы под RouterOS версии 7 и новее, совместимы с оборудованием серий RB, CCR и CHR.
Базовые принципы защиты от DDoS в RouterOS: что нужно понимать перед настройкой
Защита в RouterOS строится на трех ключевых механизмах: отслеживании состояния соединений (stateful firewall), ограничении их количества с одного источника (connection limiting) и динамическом пополнении черных списков (address-list). Эти инструменты работают на уровне анализа заголовков IP-пакетов, что минимизирует нагрузку на процессор. Ваша цель - отфильтровать аномальный трафик до того, как он потребит ресурсы роутера или целевых серверов.
Как RouterOS отличает атаку от легитимного трафика: ключевые механизмы
Основу анализа составляет модуль connection tracking. Он запоминает состояние каждого сетевого соединения: новые (new), установленные (established), связанные (related) или недействительные (invalid). DDoS-атака часто характеризуется аномально высокой скоростью создания новых соединений (new connection rate) или отправки пакетов (packet rate). Например, при SYN-flood атакующая сторона инициирует тысячи TCP-сессий в секунду, но не завершает handshake, оставляя их в состоянии «syn-sent».
Параметр timeout в правилах фаервола определяет, как долго RouterOS хранит информацию о неактивном соединении. Для TCP в состоянии «new» это значение не должно превышать 10-20 секунд. Сокращение таймаута освобождает память и ускоряет очистку от фальшивых сессий.
Цепочки firewall в RouterOS: правильная последовательность для защиты
Порядок обработки пакетов критичен для производительности. Используйте эту схему:
- Цепочка raw: Применяется до connection tracking. Здесь размещайте правила для быстрой отбраковки трафика по IP-адресам или протоколам. Блокировка в raw не нагружает систему отслеживания соединений.
- Цепочка mangle: Используется для маркировки пакетов, если нужна сложная логика маршрутизации в ответ на атаку.
- Цепочка filter: Основная цепочка для stateful-фильтрации. В ней работают правила с connection limiting и проверкой состояния.
Для защиты самого роутера от попыток исчерпания его ресурсов настройте правила в цепочке input. Для защиты серверов за роутером - в цепочке forward. Блокирующие правила (action=drop) ставьте как можно раньше в каждой цепочке.
Готовые конфигурации firewall: правила для блокировки распространенных DDoS-атак
Приведенные ниже блоки команд можно скопировать и вставить в Terminal (CLI) или последовательно добавить через Winbox/WebFig. Перед применением убедитесь, что у вас есть доступ к устройству через альтернативный интерфейс, чтобы не заблокировать себя.
Защита от SYN-flood атак на веб-серверы и другие TCP-сервисы
Это правило ограничивает скорость установки новых TCP-соединений с одного IP-адреса к вашему публичному сервису.
/ip firewall filter add chain=forward protocol=tcp dst-port=80,443 connection-state=new \
action=drop limit=20,5:30 src-address-list=!trusted \
comment="SYN Flood Protection - HTTP/HTTPS"
Параметр limit=20,5:30 означает: разрешить не более 20 новых соединений за 30 секунд, с «запасом» в 5 соединений (burst). Адреса из списка trusted (например, ваша офисная сеть) проверке не подвергаются. Для DNS-серверов (порт 53) установите limit=50,10:30, для SSH (порт 22) - limit=5,2:60.
Дополнительно настройте таймаут для TCP-соединений: /ip firewall connection tracking set tcp-syn-sent-timeout=10s tcp-syn-received-timeout=10s. Это ускорит очистку незавершенных handshake.
Блокировка UDP-flood и ICMP-flood (Smurf-атаки)
Для борьбы с флудом не требующими ответа UDP-пакетами или эхо-запросами ICMP используйте цепочку raw. Это максимально эффективно.
/ip firewall raw add chain=prerouting protocol=icmp action=drop \
limit=100,50:1 src-address-list=!trusted \
comment="ICMP Flood Protection"
/ip firewall raw add chain=prerouting protocol=udp dst-port=!500,4500,53 action=drop \
limit=1000,200:1 src-address-list=!trusted \
comment="UDP Flood Protection - exclude VPN and DNS"
Первое правило отбрасывает более 100 ICMP-пакетов в секунду с одного источника. Второе правило ограничивает UDP-трафик на все порты, кроме используемых IPsec/IKEv2 (500, 4500) и DNS (53). Лимит в 1000 пакетов в секунду (с burst 200) достаточен для большинства сервисов, но не позволит заполнить канал.
Динамическая блокировка источников атак с помощью address-list
Механизм address-list позволяет автоматически добавлять нарушителей в черный список на заданное время. Создайте список и правило для его пополнения.
/ip firewall address-list add list=ddos_blacklist timeout=1h comment="Dynamic DDoS Blacklist"
/ip firewall filter add chain=input protocol=tcp connection-state=new action=add-src-to-address-list \
address-list=ddos_blacklist address-list-timeout=1h limit=100,20:10 \
comment="Auto-block IPs with >100 new conns in 10 sec"
После этого создайте правило в начале цепочки input или forward для блокировки трафика из этого списка:
/ip firewall filter add chain=input src-address-list=ddos_blacklist action=drop \
comment="Block traffic from blacklisted IPs"
Просмотреть текущие записи можно командой /ip firewall address-list print where list=ddos_blacklist. Очистить список - /ip firewall address-list remove [find list=ddos_blacklist].
Для комплексной защиты от различных векторов атак, включая прикладной уровень (L7), изучите наше руководство по многоуровневой защите от DDoS. Там вы найдете схемы взаимодействия и конфигурации для Nginx и iptables.
Тонкая настройка connection limiting: баланс между защитой и производительностью
Стандартные значения лимитов - отправная точка. Для точной настройки под вашу сетевую нагрузку необходимо собрать базовые метрики легитимного трафика.
Как определить нормальные показатели трафика для вашей сети
Воспользуйтесь встроенным инструментом Torch (в Winbox: Tools → Torch, в CLI: /tool torch). Настройте его на внешний интерфейс и в течение 24 часов, включая часы пиковой нагрузки, отслеживайте:
- Rate of new connections: Количество новых соединений в секунду по протоколам TCP и UDP.
- Packet rate: Общее количество пакетов в секунду.
Запишите максимальные значения. Для малого бизнес-сайта типичный показатель новых TCP-соединений - 5-15 в секунду. Для сервиса с балансировкой нагрузки - 50-200. Установите лимит в правилах на 20-30% выше пикового нормального значения. Это создает запас для легитимных всплесков, но отсекает атаку.
Настройка для высоконагруженных сервисов: веб с балансировкой нагрузки и DNS
Если за роутером находится кластер веб-серверов или публичный рекурсивный DNS, стандартные лимиты будут мешать работе. В этом случае примените избирательный подход:
/ip firewall filter add chain=forward protocol=tcp dst-port=443 connection-state=new \
src-address-list=trusted action=accept comment="Allow trusted networks"
/ip firewall filter add chain=forward protocol=tcp dst-port=443 connection-state=new \
limit=200,50:30 action=accept comment="High limit for public HTTPS"
/ip firewall filter add chain=forward protocol=tcp dst-port=443 connection-state=new \
action=drop comment="Drop all other new HTTPS connections"
Правила обрабатываются сверху вниз. Сначала пропускается трафик из доверенных сетей, затем принимается публичный трафик в рамках увеличенного лимита, все остальное блокируется. Для DNS (порт 53 UDP) такой же принцип, но лимит на packet rate: limit=5000,1000:1.
Для автоматизации ответных действий на сложные атаки, включая интеграцию с системами мониторинга, используйте инструкции из статьи о настройке мониторинга и автоматического реагирования на DDoS.
Диагностика и мониторинг: как убедиться, что защита работает
После внедрения правил необходимо проверить их эффективность и собрать данные для возможной корректировки.
Анализ логов firewall: какие правила срабатывают и почему
Включите логирование для ключевых блокирующих правил. В Winbox откройте правило, установите галочку Log. В CLI добавьте параметр log=yes log-prefix="DDOS" к команде создания правила.
Логи можно просматривать в Log (/log print). Фильтруйте записи по действию drop и префиксу. Массовые записи с одним подсетом-источником - явный признак атаки. Обращайте внимание на правило, которое сработало (chain и comment), это укажет на вектор: например, частое срабатывание правила с connection-state=new свидетельствует о flood-атаке.
Что делать, если атака прошла: план действий и дальнейшая настройка
Если базовой защиты оказалось недостаточно и сервис стал недоступен, действуйте по этому алгоритму:
- Быстрая диагностика: Откройте Tools → Torch на внешнем интерфейсе. Определите тип протокола (TCP/UDP/ICMP) и порт-мишень, на который идет основной поток пакетов.
- Эскалация защиты: Немедленно ужесточите лимит для этого протокола и порта. Например, временно снизьте
limitв 2-3 раза. Добавьте временное правило в цепочку raw для полной блокировки атакующей подсети:/ip firewall raw add chain=prerouting src-address=203.0.113.0/24 action=drop. - Анализ и адаптация: После отражения атаки проанализируйте логи. Если атака была объемной (Volumetric DDoS) и исчерпала полосу пропускания, рассмотрите подключение к облачному scrubbing-центру или услугам очистки трафика у вашего провайдера.
- Апгрейд правил: На основе данных лога дополните списки
trustedиddos_blacklist, скорректируйте таймауты.
Для защиты административного доступа к сетевым устройствам в условиях атаки критически важно настроить ACL и VPN. Подробные шаги описаны в гайде по защите веб-интерфейсов.
Регулярный мониторинг и адаптация правил под меняющуюся нагрузку - залог устойчивости вашей сети. Представленные конфигурации закрывают большинство сценариев L3/L4 атак, а для построения комплексной системы безопасности используйте связку RouterOS с автоматизированными системами блокировки IP на серверах.
Если вы работаете с игровыми сервисами, где специфика атак отличается, обратитесь к специализированному руководству по защите серверов Minecraft от DDoS.