Skip to content

Тонкости настройки фаервола в MikroTik - практическое руководство

Фаерволл (брандмауэр) в роутерах MikroTik — один из самых мощных и гибких инструментов для обеспечения безопасности сети. Несмотря на простой интерфейс, правильная настройка требует понимания логики обработки трафика, приоритетов правил и особенностей работы фильтрации на разных уровнях. В этой статье мы разберём ключевые тонкости настройки фаервола в MikroTik, чтобы помочь вам построить защищённую и эффективную сеть.


1. Архитектура фаервола в MikroTik

MikroTik использует систему Netfilter, похожую на ту, что применяется в Linux. Фаервол разделён на несколько цепочек (chains), каждая из которых обрабатывает пакеты на определённом этапе:

  • input — трафик, направленный на сам роутер (SSH, WinBox, WebFig и т.д.)
  • forward — трафик, проходящий через роутер (между LAN и WAN)
  • output — трафик, генерируемый самим роутером

Также есть цепочки для NAT (nat) и mangle, но в рамках статьи сосредоточимся на фильтрации.


2. Основные принципы построения правил

Приоритет правил

Правила обрабатываются сверху вниз. Как только пакет соответствует какому-либо правилу — дальнейшие правила в цепочке игнорируются. Поэтому важно:

  • Размещать более конкретные правила выше — например, разрешение доступа к SSH с определённого IP.
  • Завершать цепочку блокирующим правилом — например, drop all.

Использование действия (action)

Наиболее распространённые действия: - accept — разрешить трафик - drop — отбросить без уведомления - reject — отклонить с отправкой ICMP-сообщения

Рекомендация: используйте drop для внешних интерфейсов — это усложняет сканирование сети.


3. Тонкости настройки: что часто упускают

3.1. Защита самого роутера (input chain)

Многие администраторы защищают только трафик между сетями (forward), забывая про input. Это критично: если роутер доступен извне, его порты (22, 80, 8291 и др.) могут стать мишенью.

Пример безопасной настройки input:

/ip firewall filter
add chain=input action=accept protocol=icmp comment="Allow ICMP"
add chain=input action=accept connection-state=established,related comment="Allow established"
add chain=input action=accept src-address=192.168.1.0/24 protocol=tcp dst-port=22 comment="Allow SSH from LAN"
add chain=input action=accept src-address=192.168.1.100 protocol=tcp dst-port=8291 comment="WinBox from trusted IP"
add chain=input action=drop in-interface=ether1 comment="Drop all from WAN"

Важно: никогда не оставляйте SSH, WinBox или WebFig открытыми для всех (0.0.0.0/0).

3.2. Stateful-фильтрация

MikroTik поддерживает отслеживание состояния соединений (connection-state). Это позволяет автоматически разрешать ответный трафик без дополнительных правил.

Ключевые состояния: - established — соединение уже установлено - related — связанный трафик (например, FTP-данные) - invalid — повреждённые или несвязанные пакеты

Рекомендация: всегда добавляйте правило accept established,related в начало цепочек input и forward.

3.3. Обработка недопустимого трафика

Пакеты со статусом invalid могут быть признаком атаки или сбоев. Их лучше отбрасывать:

add chain=forward action=drop connection-state=invalid comment="Drop invalid"
add chain=input action=drop connection-state=invalid

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

Используйте механизм connection tracking и address lists для блокировки подозрительных IP.

Пример: блокировка IP после нескольких неудачных попыток подключения к SSH

/ip firewall filter
add chain=input protocol=tcp dst-port=22 src-address-list=ssh_blacklist action=drop comment="SSH brute force"
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=1d comment="Add to blacklist"
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=5m
add chain=input protocol=tcp dst-port=22 connection-state=new action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=5m

3.5. Фильтрация по интерфейсу

Используйте in-interface и out-interface для точного определения направления трафика. Это особенно важно в сложных топологиях (VLAN, мосты, PPPoE).

Пример: запретить доступ из гостевой сети в основную

add chain=forward src-address=192.168.2.0/24 dst-address=192.168.1.0/24 action=drop comment="Block guest to LAN"

3.6. Проблемы с скоростью и производительностью

Слишком много правил в forward-цепочке может снижать скорость маршрутизации. Чтобы минимизировать влияние:

  • Упрощайте условия (избегайте сложных регулярных выражений)
  • Используйте quick=yes (в RouterOS 7) для остановки обработки после совпадения
  • Помещайте самые частые правила выше

4. Распространённые ошибки

Ошибка Последствие
Отсутствие правила established,related Отсекается легитимный ответный трафик
Открытый SSH/WinBox на WAN Риск брутфорса и взлома
Неправильный порядок правил Более раннее правило блокирует нужный трафик
Использование reject вместо drop Упрощает разведку сети
Нет логирования Невозможно отследить атаки

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

Включайте логирование для критичных правил:

add chain=input action=drop in-interface=ether1 log=yes log-prefix="DROP-WAN"

Затем просматривайте логи:

/log print where message~"DROP-WAN"

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


6. Пример базовой конфигурации фаервола

# Разрешить established и related
/ip firewall filter add chain=forward connection-state=established,related action=accept
/ip firewall filter add chain=input connection-state=established,related action=accept

# Блокировать invalid
/ip firewall filter add chain=forward connection-state=invalid action=drop
/ip firewall filter add chain=input connection-state=invalid action=drop

# Защита роутера: только LAN и доверенные IP
/ip firewall filter add chain=input src-address=192.168.1.0/24 protocol=tcp dst-port=22 action=accept
/ip firewall filter add chain=input protocol=icmp action=accept

# Блокировка всего входящего с WAN
/ip firewall filter add chain=input in-interface=ether1 action=drop

# Блокировка гостевой сети
/ip firewall filter add chain=forward src-address=192.168.2.0/24 dst-address=192.168.1.0/24 action=drop

# Блокировка агрессоров (SSH)
# ... (правила с address-list выше)

# Запретить всё остальное в forward (на всякий случай)
/ip firewall filter add chain=forward action=drop

Заключение

Настройка фаервола в MikroTik — это не просто «закрыть порты», а продуманная система правил, учитывающая безопасность, удобство и производительность. Правильное использование connection tracking, address lists, приоритетов и интерфейсов позволяет построить надёжный барьер против внешних угроз и внутренних утечек.

Главные советы: - Начинайте с базовой защиты роутера (input) - Всегда разрешайте established и related - Используйте address lists для динамической блокировки - Логируйте, но умеренно - Регулярно аудируйте правила

Помните: безопасность — это процесс, а не разовое действие. Регулярно проверяйте и обновляйте конфигурацию фаервола в соответствии с изменениями в сети.


Примечание: Примеры приведены для RouterOS v6. Для RouterOS v7 доступны дополнительные возможности (например, quick=yes, улучшенная обработка пакетов).