Настройка firewall на роутере Mikrotik

Firewall на микротик состоит из следующих составляющих, это цепочки (chain) и действия в этих цепочках (Action), а также различные фильтры к трафику который обрабатывается в цепочках.

Нужно разобраться с MikroTik, но не определились с чего начать? В курсе «Настройка оборудования MikroTik» все по порядку. Подойдет и для начала работы с этим оборудованием, и для того, чтобы систематизировать знания. Это видеокурс из 162 уроков и 45 лабораторных работ, построен на официальной программе MTCNA. Проходить можно, когда удобно и пересматривать по необходимости – материалы курса выдаются бессрочно. Также есть 30 дней на личные консультации с автором. На пробу выдают 25 уроков бесплатно, заказать их можно на странице курса.

Firewall Chain

В Mikrotik существуют следующие цепочки

Input – цепочка для обработки пакетов поступающих на маршрутизатор, имеющих в качестве адреса назначение ip самого маршрутизатора.

Forward – в этой цепочки обрабатываются пакеты проходящие через маршрутизатор

Output – цепочка для обработки пакетов созданных маршрутизатором, например когда мы с маршрутизатора пингуем или подключаемся по telnet

Из описания понятно, что для защиты маршрутизатора нужно использовать цепочку input. А для обработки трафика от пользователей и к пользователям использовать chain forward. Использование Output мне не приходилось.

Firewall Action

В цепочках можно осуществлять следующие действия

Параметр Действие
Accept Разрешить
add-dst-to-address-list Добавить ip назначение в список адресов указанный в Address List
add-src-to-address-list Добавить ip источника в список адресов указанный в Address List
Drop запретить
fasttrack-connection Обрабатывать пакеты включив FastTrack т.е пакеты будут проходить по самому быстрому маршруту, минуя остальные правила firewall и обработку в очередях
Jump Прыжок, переход на другую цепочку заданную в Jump target
log Запись в лог
passthrough Перейти к следующему правилу не делая никаких действий(полезно для сбора статистики)
Reject Отбить пакет с причиной указанной в Reject with
Return Вернуть пакет в цепочку из который он пришел
tarpit захватывает и поддерживает TCP-соединения (отвечает с SYN / ACK на входящий пакет TCP SYN)

Фильтрация в firewall

Фильтрация пакетов которые могут попасть в цепочки может осуществляться по

Src.Address – адрес источника

Dst.Address – адрес назначения

Protocol – Протокол(TCP, UDP и т.д)

Src.Port – порт источника

Dst.Port –порт назначения

In.Interface –входящий интерфейс

Out.Interface – исходящий интерфейс

Packet.Mark – метка пакета

Connection.Mark –метка соединения

Routing Mark – метка маршрута

Roting table — адрес получателя которых разрешен в конкретной таблице маршрутизации

Connection Type – тип соединения

Connection State — состояние соединения (установлено, новое и т.д)

Connection NAT State – цепочка NAT (srcnat, dstnat)

Примеры настройки firewall

Рассмотрим некоторые примеры по настройки firewall на маршрутизаторе микротик.

Настройка безопасности Микротик

Для начала настроим безопасность на наше маршрутизаторе, Для этого сделаем следующие

1.Запретим пинговать наше устройство

2.Запретим доступ к микротику всем кроме локальной сети и разрешенных ip адресов

Для настройки подключаемся к роутеру с помощью утилиты winbox и идем в меню IP-Firewall. Вкладка Filter Rules и нажимаем добавить.

Запрещаем пинги на наше устройство, для этого, на вкладке general, chain выбираем input protocol icmp

На вкладке Action выбираем drop

Запрещаем доступ к управлению маршрутизатора. Для начала создаем лист с нашими разрешенными адресами, переходим в IP-Firewall, вкладка Address Lists, добавляем новый лист

Name – название нашего листа

Address – адреса относящиеся к этому листу, можно указывать как отдельные адреса так и сети.

Дальше создаем новое правило, снова переходим в Filter rules и добавляем его

Затем переходим на вкладку Advanced и в качестве Src. List выбираем созданный лист

В действии Action выбираем разрешить accept.

Можно было не создавать лист, а на вкладке General в параметре Src. Address прописать нашу сеть, просто мне удобнее работать со списками адресов, в будущем для добавления нового адреса нужно его просто добавить в лист allow_ip.

Следующим шагом запрещаем все входящие соединения. Добавляем правило на chain input, и в действии ставим drop. Должно получится следующие

Здесь следует отметить что обработка правил идет сверху вниз, т.е правило запрещающее все подключения должно находится внизу, иначе разрешающие правила не сработают.

Для того что бы поменять местами правило, нужно кликнуть по строке и с зажатой левой кнопкой мыши перетащить его на нужное место.
На самом деле, правило по запрете ping можно было не создавать, т.к последнее правило блокирует все попытки доступа к роутеру, в том числе и пинг.

Доступ пользователей в интернет

Допустим нам нужно дать доступ в интернет только для определенной сети. Для этого создаем два разрешающих правила в chain forward. Первое правило разрешает исходящий трафик из нашей сети

Action ставим accept. Можно как указать Src. Address, так и использовать Address Lists, как мы это делали выше. Следующим правилом разрешаем прохождение пакетов в нашу сеть.

B следующим правилом запрещаем все остальные сети,

Action выбираем drop. В результате получится следующее

Запрет доступа пользователя в интернет

Если нам нужно запретить доступ в интернет определенным пользователям, давайте сделаем это через Address Lists, что бы в дальнейшем проще было добавлять или удалять правила, переходим на вкладку address Lists и создаем список block в который добавим адреса для блокировки.

Создаем запрещающее правило firewall в chain forward, в котором на вкладке Advanced в Src. Address List выбираем наш список для блокировки

В Action выбираем Drop. Теперь, наше правило нужно поставить выше разрешающего правила, иначе оно не сработает, как это сделать я писал выше, в результате получится следующая картина

Аналогично можно запретить доступ к внешним ресурсам, так же создаем список для блокировки, но в настройка firewall уже указываем его в качестве Dst. Address List. Кроме ip адреса в список можно вносить и доменные имена, например если мы хотим запретить доступ пользователей в соцсети, одноклассники или вконтакте.

Доступ только к сайтам

В следующим примере рассмотрим как разрешить пользователям выход в интернет только по 80 и 443 порту и запретить все остальные, для этого создадим разрешающее правило в chain forward, Protocol выбираем tcp и в параметре Dst.Prort указываем разрешенные порты

Тоже самое можно сделать с помощью запрещающего правила, используя оператор отрицания «!», а Action установить drop

Это означает, запретит все порты кроме 80 и 443.

Конечно, все возможности firewall на микротик я показать не смогу, но основные параметры думаю понятны.

Внимание! при настройке firewall на MikroTIK, настоятельно рекомендую проводить их в «Safe Mode» как ее включить описано здесь, в противном случае вы рискуете потерять доступ к маршрутизатору.

Обучающий курс по настройке MikroTik

Нужно разобраться с MikroTik, но не определились с чего начать? В курсе «Настройка оборудования MikroTik» все по порядку. Подойдет и для начала работы с этим оборудованием, и для того, чтобы систематизировать знания. Это видеокурс из 162 уроков и 45 лабораторных работ, построен на официальной программе MTCNA. Проходить можно, когда удобно и пересматривать по необходимости – материалы курса выдаются бессрочно. Также есть 30 дней на личные консультации с автором. На пробу выдают 25 уроков бесплатно, заказать их можно на странице курса.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

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

В сегодняшней статье уделим внимание базовой настройке Firewall на Mikrotik, Address List и блокировке соцсетей. Т.к. RouterOS основан на ядре linux, то нам предоставлен практически весь функционал сетевого ядра, да к тому же еще и в графике. Настройка будет продемонстрирована с помощью Winbox.

Firewall – инструмент, благодаря которому мы можем ограничить нежелательный трафик. Под «нежелательный» я имею ввиду тот, который нам не нужен в первую очередь с точки зрения администрирования, а уже потом от зловредный. Для начала нужно рассказать про 3 стандартные цепочки:

  • Input – трафик входящий в роутер, т.е. тот, что адресован непосредственно для него. Пример: роутер имеет несколько адресов, согласно схеме сети ниже. Если мы отправим ping запрос на любой из этих них, то ответит нам именно он.
  • Output – трафик исходящий от роутера или же создаваемый им. Отвечая на те самый ping запросы.
  • Forward – транзитный трафик, тот, что не предназначен для устройства.

Самое главное, есть трафик, который направляется устройству и который устройство пересылает. Существует возможность создавать собственные цепочки правил с отличными именами.

Порядок правил. Следите за ним. В списке у каждого есть свой номер. Соответственно, то правило, что имеет число меньше т.е. стоит выше и будет приоритетным, если, конечно, оно подпадает под условия самого правила.

Схема сети

Наша схема, будет до безобразия проста, но на основе нее будет продемонстрирована защита от атаки внутри сети провайдера и запрета соцсетей.

Взглянем на нашу схему сети

Итого имеем следующую конфигурацию:

  • 168.10.14/24 – адрес роутера в сети провайдера;
  • 168.100.2 – провайдер предоставляет доступ в интернет через L2TP, это адрес в туннеле;
  • 168.20.1/24 – адрес в локальной сети с DHCP сервером для VPC-1 и VPC-1;
  • RouterOS 6.46.

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

Смотря на схему, следует понять, какой тип трафика нужен в данной сети. Т.к. она простая, то достаточно разрешить входящий трафика управления (Winbox, SSH, WWW) и DNS с локальной сети, т.к. нам не нужно чтобы роутер резолвил имена для товарищей из интернет и не только.

Рекомендую менять стандартные порты управления и отключать не используемые службы, есть большая вероятность, что начнут брутфорсить ваш девайс. Это можно сделать в IP – Services.

Задаем не стандартные порты управления

Настройка цепочки input. Не стреляем себе в ногу и жмем на Safe Mode прежде, чем что-либо делать!

Включаем Safe Mode

Из примера выше мы изменили стандартные порты для SSH, Winbox и WWW. Все они работают по TCP. Создадим соответствующие правила в фильтре. IP – Firewall – Filter.

Настройка Firewall для Winbox и SSH

Действие правила для Winbox SSH

Интерпретируем правило: если есть новое соединение с любого адреса на роутер по протоколу TCP на порт 2222 или 58291 — разрешить. Обязательно комментируем правило в списке правил.Почему именно новое соединение? Ответ узнаем дальше.

Проверка создания правла

Далее разрешим input на 80 порт с ЛВС.

Создаем правило для подключения по веб с локальной сети

Если новое соединение с 192.168.20.0/24 по TCP на 80 порт – разрешить.Далее нужно разрешить DNS. Он может работать как по TCP, так и по UDP, наш случай это UDP, т.к. запросы на разрешение имен идут именно по UDP.

Разрешаем DNS с LAN

Обратите внимание, что мы разрешаем весь трафик по UDP:53 с 192.168.20.0/24, это связанно с тем, что данный протокол не поддерживает установку соединения и подтверждение получения каждого пакета, поэтому ставить Connection State – New бессмысленно.Создаем следующее правило.

Established Related Accept

Любое связанное и установившееся входящее соединение разрешить. Дело все в том, что Mikrotik понимает все входящие, исходящие и транзитные соединения. Т.к. мы хотим оптимизировать нагрузку на устройство, то создаем данное правило, иначе ранее созданные правила будут работать только на новые соединения, но не на устоявшиеся или связанные. В итоге первый пакет прилетит, а остальные нет. Это справедливо только для TCP. Собственно, это и ответ на предыдущий вопрос.Следующим правилом мы запретим абсолютно весь input, будьте осторожны и следите за Safe Mode.

Блокируем весь входящий трафик

Выбор действия для трафика

Попробуем подключиться к устройству по нестандартным портам Winbox не отпуская Safe Mode.

Проверяем правила фаервола

На скриншоте видно, что сработал счетчик самого верхнего правила. Далее можно отпускать безопасный режим и закрывать старую сессию Winbox. Почему сработало правило только на 1 пакет? При подключении по TCP:58291 роутер понял, что это новое соединение, т.к. ничего не помешало подключению (подошел логин пароль, нет запрещающих правил и др.) соединение превратилось в устоявшееся.


Источник: bugsp.ru