Найти в Дзене

Mikrotik, Настройка Firewall

В Mikrotik действует принцип - разрешено все что не запрещено. Правила применяются по цепочке сверху вниз и как-только проходящий трафик (пакет) соответствует какому-то правилу, то он прекращает движение по цепочке. Цепочки (chain) - это логические потоки обработки трафика, их следует размещать в следующей последовательности: Состояния соединений (Connection State) — контекстный анализ трафика: Действия (Actions) — что делать с пакетом: Правила (Rules) — условия фильтрации: Важно! Порядок правил критичен: первые правила обрабатываются раньше. Выполняйте настройку firewall при удаленном подключении к MikroTik используя режим Safe Mode. Настройки цепочек будем делать через Winbox, идем IP -> Firewall Создадим основные правила для цепочки Input и Forward: 1) Разрешаем все установленные и связанные подключения На вкладке Action выставляем accept
(ВЕЗДЕ ДЛЯ РАЗРЕШАЮЩИХ ПРАВИЛ) 2) Разрешаем ICMP запросы 3) Разрешаем входящее подключение для Winbox 4) Запрещаем все неверные (Invalid) пакеты
Оглавление

Принцип работы Firewall в MikroTik

В Mikrotik действует принцип - разрешено все что не запрещено. Правила применяются по цепочке сверху вниз и как-только проходящий трафик (пакет) соответствует какому-то правилу, то он прекращает движение по цепочке.

Цепочки (chain) - это логические потоки обработки трафика, их следует размещать в следующей последовательности:

  1. Input - пакеты, направленные на сам роутер (например, SSH, WinBox, пинг)
  2. Forward - пакеты, проходящие через роутер (из локальной сети в интернет и обратно)
  3. Output - пакеты, исходящие от роутера (например, DNS‑запросы с устройства)

Состояния соединений (Connection State) — контекстный анализ трафика:

  1. new — новый сеанс (требуется проверка).
  2. established — уже установленное соединение (доверенный трафик).
  3. related — связанное с существующим сеансом (например, FTP‑данные).
  4. invalid — некорректные или повреждённые пакеты (часто атака).
  5. untracked — пакеты, не требующие отслеживания (например, определённые служебные).

Действия (Actions) — что делать с пакетом:

  1. accept — пропустить.
  2. drop — молча отбросить (без уведомления отправителя).
  3. reject — отбросить с отправкой уведомления об ошибке (менее безопасно).
  4. log — записать в журнал перед выполнением действия.

Правила (Rules) — условия фильтрации:

  1. IP‑адреса (источник/получатель);
  2. порты и протоколы (TCP, UDP, ICMP);
  3. интерфейсы (например, ether1, bridge-local);
  4. время действия правила;
  5. пользовательские списки (address‑lists).

Как работает обработка трафика

  1. Пакет поступает на интерфейс роутера.
  2. Система определяет, к какой цепочке (input, output, forward) он относится.
  3. Пакет последовательно проверяется по правилам сверху вниз в рамках цепочки.
  4. При совпадении с условием выполняется указанное действие (accept, drop и т. д.).
  5. Если пакет не подошёл ни под одно правило, применяется политика по умолчанию (обычно drop).
Важно! Порядок правил критичен: первые правила обрабатываются раньше.

Базовая настройка Firewall

Выполняйте настройку firewall при удаленном подключении к MikroTik используя режим Safe Mode.

Настройки цепочек будем делать через Winbox, идем IP -> Firewall

Создадим основные правила для цепочки Input и Forward:

1) Разрешаем все установленные и связанные подключения

-2

На вкладке Action выставляем accept
(ВЕЗДЕ ДЛЯ РАЗРЕШАЮЩИХ ПРАВИЛ)

-3

2) Разрешаем ICMP запросы

-4

3) Разрешаем входящее подключение для Winbox

-5

4) Запрещаем все неверные (Invalid) пакеты

-6
-7

На вкладке Action выставляем drop
(ВЕЗДЕ ДЛЯ ЗАПРЕЩАЮЩИХ ПРАВИЛ)

5) Запрещаем весь остальной трафик

-8

Тоже самое делаем для цепочки Forward, кроме Winbox. Должно получиться следующее:

-9
Это минимальная настройка Firewall, которая запрещает весь входящий трафик, кроме ICMP и возможности подключаться к маршрутизатору через Winbox, и при этом не ограничивает исходящий трафик.

Установим параметру TCP Established Timeout значение равное 2 часам:

-10
-11

Расширенная настройка Firewall

Настройка фильтрации трафика в цепочке Input

Разрешаем DNS запросы к Mikrotik

-12

В строчке In. Interface обязательно ставим "!" - это исключит разрешение на DNS запросы к интерфейсу ISP, что бы отсечь запросы из дикого интернета.

Настройка фильтрации трафика в цепочке Forward


Имеется сеть:

-13

Настроим сетевое взаимодействие так, чтобы к серверам из клиентской сети можно было попасть только по TCP/IP портам соответствующим их ролям. Данное взаимодействие подпадает под цепочку Forward, т.к. этот трафик проходит сквозь маршрутизатор.

Для каждого Vlan настроен отдельный сетевой интерфейс

-14

Правила можно нацеливать на конкретные IP адреса, но мы будем использовать Address Lists. Создадим листы для: DC, FS и WEB, так как подобных серверов может быть по нескольку, и что бы не создавать отдельные правила для каждого просто перечислим их в листе.

-15

Правило для DC:

-16
-17
-18

Это мы создали для портов TCP, и такое же нужно создать для UDP.

Эти действия можно выполнить в Terminal

/ip firewall filter

add action=accept chain=forward comment=AddressList-DC dst-address-list=AddressList-DC dst-port=\ 53,88,123,135,389,636,445,4500,3268-3269,9389,49152-65535 protocol=tcp

add action=accept chain=forward comment=AddressList-DC dst-address-list=AddressList-DC dst-port=\ 53,88,123,135,389,636,445,4500,3268-3269,9389,49152-65535 protocol=udp

-19

Далее аналогичные правила буду записывать в виде команды

Правило для FS:

add action=accept chain=forward comment=AddressList-FS dst-address-list=AddressList-FS dst-port=\ 135,137-139,389,445,49152-65535 protocol=tcp

add action=accept chain=forward comment=AddressList-FS dst-address-list=AddressList-FS dst-port=\ 135,137-139,389,445 protocol=udp

Правило для WEB:

add action=accept chain=forward comment=AddressList-WEB dst-address-list=AddressList-WEB dst-port=\ 80,443 protocol=tcp

Правило для CA, KMS, NPAS

Так как подобных серверов редко бывает более 1, будем создавать правило нацеливаясь на их IP адрес

Пример для CA
Пример для CA

add action=accept chain=forward comment=CA dst-address=172.16.8.131 dst-port=80,135,137-139,443,445 protocol=tcp

add action=accept chain=forward comment=CA dst-address=172.16.8.131 dst-port=80,135,137-139,443,445 protocol=udp

add action=accept chain=forward comment=KMS dst-address=172.16.8.141 dst-port=1688 protocol=tcp

add action=accept chain=forward comment=NPAS dst-address=172.16.8.151 dst-port=1812,1813 protocol=udp

Правило для PBX

Сервер телефонии PBX и SIP клиенты должны находиться в одном Vlan и тогда правило настраивать нет необходимости, но если часть клиентов находятся в другой сети, то:

add action=accept chain=forward comment=PBX dst-address=172.16.64.1 dst-port=5060,10000-20000 protocol=tcp

add action=accept chain=forward comment=PBX dst-address=172.16.64.1 dst-port=5060,10000-20000 protocol=udp

Правило для ПК Администратора

Сделаем так что бы у системного администратора был неограниченный доступ доступ во все сети. Нацеливать политику будем через Address List на случай если админов больше 1.

Создадим лист AddressList-GodMode

-21

И само правило

-22
-23

ИТОГ

-24

В итоге должна получиться вот такая цепочка правил, где:

  • Сначала идет цепочка Input а потом Forward
  • Правило с наибольшим трафиком стоят выше чем с наименьшим трафиком (например accept established,related)
  • Запрещающее правило всегда должно стоять в самом низу соответствующей цепочки, но бывают исключения.