В примере используется MikroTik CHR на VPS с внешним интерфейсом ether1. Если у вас другая конфигурация интерфейсов, адресов или уже существуют собственные firewall-правила, адаптируйте настройки под свою сеть.
Как работает Firewall в MikroTik RouterOS
Перед созданием правил разберём три основные цепочки фильтрации RouterOS:
- input — трафик, адресованный непосредственно самому MikroTik. Именно эта цепочка используется для защиты WinBox, SSH, DNS и других сервисов маршрутизатора;
- forward — трафик, который проходит через MikroTik между сетями;
- output — трафик, который создаёт сам маршрутизатор.
В этой статье основное внимание уделим цепочке input, поскольку наша задача — защитить непосредственно сам MikroTik.
Правило 1. Разрешаем established, related и untracked
Начнём с разрешения трафика уже установленных и связанных соединений.
- Откройте WinBox.
- Перейдите в IP → Firewall.
- Откройте вкладку Filter Rules.
В чистой установке MikroTik CHR список правил может быть пустым.
Нажмите кнопку +, чтобы создать новое правило.
В поле Chain доступны основные цепочки input, forward и output.
Для первого правила укажите:
- Chain —
input; - Connection State —
established,relatedиuntracked.
Во вкладке Action выберите accept и сохраните правило.
Зачем нужно это правило
Состояние established относится к пакетам уже установленного соединения, а related — к соединениям, связанным с существующим. untracked используется для трафика, который был исключён из Connection Tracking.
Например, если соединение уже установлено, его последующие пакеты не требуется каждый раз проверять всеми нижестоящими правилами.
Поэтому такое правило обычно располагают в верхней части списка.
Правило 2. Блокируем invalid-соединения
Следующим правилом отбросим пакеты, которым Connection Tracking присвоил состояние invalid.
Создайте новое правило:
- Chain —
input; - Connection State —
invalid.
На вкладке Action выберите drop.
Состояние invalid означает, что RouterOS не может корректно сопоставить пакет с отслеживаемым соединением. Причиной могут быть нарушения последовательности пакетов, особенности маршрутизации, ошибки соединения или нежелательный трафик.
Правило 3. Разрешаем ICMP
ICMP нужен не только для команды ping. Он используется для сетевой диагностики и нормальной работы ряда сетевых механизмов, поэтому полностью запрещать его без необходимости не стоит.
Создайте правило:
- Chain —
input; - Protocol —
icmp; - In. Interface —
ether1, если именно этот интерфейс используется как WAN.
На вкладке Action выберите accept.
Если необходимо дополнительно защитить публичный маршрутизатор, ICMP можно ограничить по источнику, типам сообщений или частоте запросов вместо полного запрета.
Правило 4. Разрешаем WinBox только с доверенных IP
Теперь ограничим доступ к административному интерфейсу WinBox. По умолчанию WinBox использует TCP-порт 8291.
Создайте новое правило:
- Chain —
input; - Protocol —
6 (tcp); - Dst. Port —
8291.
На вкладке Advanced в поле Src. Address List укажите:
AllowWinBox
Перейдите в IP → Firewall → Address Lists и нажмите +.
В поле Name укажите AllowWinBox, а в поле Address — внешний IP-адрес, с которого разрешено администрирование.
В моём примере использовался адрес:
178.150.9.81
Теперь правило WinBox будет разрешать подключение только для IP-адресов из списка AllowWinBox.
Правило 5. Настраиваем Port Knocking для WinBox
Если внешний IP администратора постоянно меняется, можно использовать Port Knocking. В нашем примере клиент должен последовательно обратиться к двум TCP-портам, после чего его IP временно попадёт в список AllowWinBox.
Создаём первый этап Port Knocking
Добавьте новое правило:
- Chain —
input; - Protocol —
6 (tcp); - Dst. Port —
2010.
На вкладке Action укажите:
- Action —
add src to address list; - Address List —
Stage1; - Timeout —
10s.
После обращения к первому порту исходный IP будет находиться в списке Stage1 в течение 10 секунд.
Создаём второй этап Port Knocking
Добавьте второе правило:
- Chain —
input; - Protocol —
6 (tcp); - Dst. Port —
2025.
На вкладке Advanced в поле Src. Address List выберите:
Stage1
На вкладке Action задайте:
- Action —
add src to address list; - Address List —
AllowWinBox; - Timeout —
10m.
Правильно располагаем правила Port Knocking
Правила Port Knocking должны находиться выше завершающего правила drop, иначе первый же пакет на порты 2010 или 2025 будет отброшен раньше, чем RouterOS обработает правила knocking.
Переместите правила в нужное положение.
Как работает Port Knocking
Получается следующая последовательность:
- Клиент обращается к TCP-порту
2010. - Его IP попадает в
Stage1на 10 секунд. - За эти 10 секунд клиент обращается к TCP-порту
2025. - RouterOS проверяет наличие IP в
Stage1. - IP добавляется в
AllowWinBoxна 10 минут. - В течение этого времени клиент может подключиться к WinBox на TCP-порту
8291.
Для отправки TCP-подключений лучше использовать подходящий сетевой инструмент. Обычный ввод IP:порт в браузере не всегда является удобным и предсказуемым способом Port Knocking.
Правило 6. Блокируем остальные подключения к MikroTik с WAN
После создания всех необходимых разрешающих правил и Port Knocking можно добавить завершающее правило, которое будет отбрасывать остальной входящий трафик к самому маршрутизатору с WAN.
Создайте правило:
- Chain —
input; - In. Interface —
ether1; - Action —
drop.
Итоговый порядок правил должен быть логичным: сначала разрешаем необходимый трафик и обрабатываем Port Knocking, а уже после этого отбрасываем остальные новые подключения с WAN.
Настраиваем время в MikroTik RouterOS
После настройки фаервола стоит проверить системное время. Правильные дата и время важны для журналов, расписаний, сертификатов, мониторинга и диагностики.
Добавляем дату и время в WinBox
Щёлкните правой кнопкой мыши по верхней панели WinBox и включите:
- Add Time;
- Add Date.
После этого текущая дата и время появятся в интерфейсе WinBox.
Настраиваем часовой пояс
Перейдите в System → Clock.
В поле Time Zone Name выберите свой регион. В моём примере используется:
Europe/Moscow
Примените настройки и убедитесь, что RouterOS показывает правильное локальное время.
Проверяем DNS
Если для NTP используются доменные имена серверов, MikroTik должен корректно разрешать DNS-имена.
Перейдите в IP → DNS.
При необходимости DNS-серверы можно указать вручную. Например:
1.1.1.1— Cloudflare;8.8.8.8— Google Public DNS.
Если MikroTik должен обслуживать DNS-запросы локальных клиентов, разрешайте доступ к DNS только из доверенных сетей.
Включаем синхронизацию времени NTP
Теперь настроим автоматическую синхронизацию времени.
Название и расположение клиента синхронизации зависит от версии RouterOS. На скриншотах из нашей конфигурации используется раздел System → SNTP Client.
Включите клиент и укажите серверы времени. В нашем примере используются:
time.windows.com;time.nist.gov.
Сохраните настройки.
После успешной синхронизации проверьте дату и время RouterOS.
Часто задаваемые вопросы
В каком порядке должны располагаться правила Firewall в MikroTik?
RouterOS обрабатывает правила сверху вниз. В начале обычно размещают обработку established/related, затем защитные и необходимые разрешающие правила, после них Port Knocking и другие исключения, а завершающий drop располагают ниже правил, которые должны пропускать разрешённый трафик.
Чем отличаются цепочки input и forward?
input обрабатывает трафик, адресованный самому MikroTik. forward используется для трафика, проходящего через маршрутизатор между сетями. Поэтому защита WinBox относится к input, а фильтрация клиентского трафика между LAN и Интернетом — к forward.
Можно ли полностью запретить ICMP на MikroTik?
Технически можно, но полный запрет ICMP ухудшает диагностику и может мешать некоторым сетевым механизмам. Обычно лучше разрешить необходимые ICMP-сообщения и при необходимости ограничить их по источнику или частоте.
Как не заблокировать себе доступ к WinBox?
Сначала добавьте свой IP в AllowWinBox и убедитесь, что разрешающее правило находится выше завершающего drop. При удалённой настройке обязательно оставьте открытой резервную консоль VPS-провайдера до окончания проверки.
Нужно ли открывать порт 8291 WinBox всему Интернету?
Нет. WinBox лучше разрешать только с доверенных IP-адресов или использовать его через VPN. Публиковать административный интерфейс для всего Интернета без необходимости не стоит.
Что такое Port Knocking в MikroTik?
Port Knocking позволяет временно добавить IP клиента в разрешающий список после обращения к заданной последовательности портов. В нашем примере после портов 2010 и 2025 адрес получает доступ к WinBox на 10 минут.
Port Knocking заменяет VPN?
Нет. Port Knocking только скрывает административный сервис за дополнительной последовательностью действий. Для удалённого администрирования более надёжным решением остаётся VPN, а Port Knocking можно использовать как дополнительный уровень ограничения.
Зачем MikroTik нужна синхронизация времени?
Корректное время необходимо для журналов событий, расписаний, сертификатов, мониторинга и диагностики. Если время на маршрутизаторе неверное, сопоставлять его события с логами других систем становится значительно сложнее.
Заключение
Мы настроили базовую защиту MikroTik RouterOS: разрешили трафик установленных соединений, начали отбрасывать invalid, оставили ICMP для диагностики и ограничили доступ к WinBox доверенными IP-адресами.
Для ситуаций с динамическим внешним IP добавили Port Knocking, который временно помещает адрес администратора в AllowWinBox. После всех разрешающих правил создали завершающий drop для остальных входящих подключений с WAN.
Дополнительно настроили часовой пояс, DNS и синхронизацию времени. Эта конфигурация является именно базовой отправной точкой: окончательный набор правил зависит от назначения MikroTik, схемы сети, VPN, опубликованных сервисов и используемых интерфейсов.
Если MikroTik CHR у вас ещё не установлен, начните с предыдущей инструкции: Как установить MikroTik RouterOS на VPS сервер.