Настройка 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 прежде, чем что-либо делать!
Из примера выше мы изменили стандартные порты для SSH, Winbox и WWW. Все они работают по TCP. Создадим соответствующие правила в фильтре. IP – Firewall – Filter.
Интерпретируем правило: если есть новое соединение с любого адреса на роутер по протоколу TCP на порт 2222 или 58291 — разрешить. Обязательно комментируем правило в списке правил.Почему именно новое соединение? Ответ узнаем дальше.
Далее разрешим input на 80 порт с ЛВС.
Если новое соединение с 192.168.20.0/24 по TCP на 80 порт – разрешить.Далее нужно разрешить DNS. Он может работать как по TCP, так и по UDP, наш случай это UDP, т.к. запросы на разрешение имен идут именно по UDP.
Обратите внимание, что мы разрешаем весь трафик по UDP:53 с 192.168.20.0/24, это связанно с тем, что данный протокол не поддерживает установку соединения и подтверждение получения каждого пакета, поэтому ставить Connection State – New бессмысленно.Создаем следующее правило.
Любое связанное и установившееся входящее соединение разрешить. Дело все в том, что Mikrotik понимает все входящие, исходящие и транзитные соединения. Т.к. мы хотим оптимизировать нагрузку на устройство, то создаем данное правило, иначе ранее созданные правила будут работать только на новые соединения, но не на устоявшиеся или связанные. В итоге первый пакет прилетит, а остальные нет. Это справедливо только для TCP. Собственно, это и ответ на предыдущий вопрос.Следующим правилом мы запретим абсолютно весь input, будьте осторожны и следите за Safe Mode.
Попробуем подключиться к устройству по нестандартным портам Winbox не отпуская Safe Mode.
На скриншоте видно, что сработал счетчик самого верхнего правила. Далее можно отпускать безопасный режим и закрывать старую сессию Winbox. Почему сработало правило только на 1 пакет? При подключении по TCP:58291 роутер понял, что это новое соединение, т.к. ничего не помешало подключению (подошел логин пароль, нет запрещающих правил и др.) соединение превратилось в устоявшееся.
Источник: