Настройка черного и белого списков в роутерах mikrotik

Обновлено: 05.07.2024

Настройка черного и белого списков в роутерах Mikrotik

Ограничение доступа к тем или иным ресурсам сети интернет на основе списков достаточно популярный способ фильтрации, несмотря на его недостатки. Действительно, в большинстве случаев требуется заблокировать достаточно небольшой список ресурсов, скажем, соцсети, с чем данный метод вполне успешно справляется. В данной статье мы поговорим о том, как настроить фильтрацию по спискам на роутерах Mikrotik, тем более что RouterOS предоставляет нам для этого достаточно широкие возможности.

Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор - официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Из этого следует, что мы не можем блокировать отдельные страницы, но можем заблокировать домен целиком. Для большинства сценариев этого вполне достаточно. Но здесь нас подстерегает другая неприятность, многие сайты используют CDN (Content Delivery Network, сеть доставки контента), такие как CloudFlare и заблокировав нужный вам сайт вы можете также ограничить доступ к большому количеству сторонних ресурсов. Что из этого может выйти все мы видели во время ковровых блокировок РКН против Телеграм.

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

Создаем списки

Для настройки фильтрации нам понадобятся минимум два списка: список доменов и список пользователей. С доменами понятно, это те сайты, к которым мы хотим запретить доступ или, наоборот, разрешить. Создаются такие списки просто: IP - Firewall - Address Lists где добавляем новый адрес, в поле Name вписываем имя листа, если это первая запись, либо выбираем его из выпадающего списка. В поле Address указываем IP-адрес или доменное имя ресурса, при указании доменного имени в список будут внесены все IP-адреса сайта, и они будут обновляться с периодичностью указанной в TTL домена.

В командной строке это же действие можно выполнить так:

Таких списков мы можем создать сколько нам нужно, причем один и тот же адрес может входить сразу в несколько списков. Это удобно, если нужно обеспечить для разных групп пользователей доступ к разному набору сайтов. В итоге у вас должно получиться примерно следующее:

mikrotik-black-white-list-002.jpg

В данном примере реализовано два списка: WL - белый список и BL - черный список. Обычно в реальной жизни используется что-то одно, в нашем случае создание данных списков обусловлено сугубо учебными целями.

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

Также вспомним, что в руках у нас роутер, т.е. устройство, работающее на сетевом уровне (L3), а значит основные параметры, с которыми он может работать - это адрес источника и адрес назначения. Адрес назначения - это домен, выше мы его уже разобрали. Адрес источника - это как раз пользователь, точнее - сетевое устройство пользователя. В самом простом случае мы можем создать еще один список и добавить туда IP-адреса нужных устройств.

Но на практике адреса раздаются сервером DHCP, это не проблема, создаем резервирование IP-адреса, для чего следует перейти в IP - DHCP-Server - Leases и открыв запись нужного адреса нажать Make Static.

mikrotik-black-white-list-003-1.jpg

После чего закрываем и снова открываем запись и в поле Address List вводим, если это первая запись, или выбираем имя списка, куда будет добавлен IP-адрес данного компьютера, в нашем случае это список USER.

mikrotik-black-white-list-004-1.jpg

Либо через командную строку:

Таким образом мы получаем список пользователей, либо несколько списков, в которых указанные адреса будут находиться до тех пор, пока на сервере активно резервирование.

Черный список

Начнем с самого простого сценария - черного списка. Сначала настроим вариант, когда такой список применяется ко всем пользователям, кроме членов списка USER. Для этого перейдем в IP - Firewall - Filter Rules и создадим новое правило. На закладке General укажем Chain - forward и In. Interface - bridge1:

mikrotik-black-white-list-005.jpg

На закладке Advanced указываем Src. Address List - USER и ставим перед ним восклицательный знак (символ инверсии правила), что будет означать кроме входящих в группу. В поле Dst. Address List указываем BL - т.е. наш черный список доменов.

mikrotik-black-white-list-006.jpg

И наконец на закладке Action указываем действие, обычно везде в интернете указывают drop, хорошо, укажем и мы.

mikrotik-black-white-list-007.jpg

Данное правило должно располагаться самым первым в цепочке FORWARD, выше FastTrack.

Теперь попробуем посетить запрещенный сайт:

mikrotik-black-white-list-010.jpg

Быстро добавить правило через командную строку можно так:

Теперь немного изменим задачу, применим черный список только к группе USER. Для этого немного изменим условия на закладке Advanced, а именно укажем Src. Address List - USER без восклицательного знака, в итоге условие будет читаться как: если источник в группе USER и назначение в группе BL.

mikrotik-black-white-list-011.jpg

Или в командной строке:

Таким образом фильтрация по черным спискам не представляет особых сложностей. Все упирается в эти самые списки, которые нужно составлять и поддерживать в актуальном состоянии. Загрузить в роутер готовые списки из интернета также не очень хорошая идея, потому как каждый пакет будет проверяться на вхождение в список, что может вызвать серьезную нагрузку на роутер, при том, что подавляющее большинство адресов из этого списка ваши пользователи могут никогда не посещать. Поэтому следует трезво оценивать собственные ресурсы и возможности и применять списки там, где это действительно нужно.

Белые списки

На первый взгляд организация доступа в сеть по белым спискам ничем принципиально не отличается от черных, однако это не так, выше мы уже говорили почему и далее покажем это на примерах. А пока реализуем схему с доступом по белым спискам для всех, кроме группы USER.

Снова перейдем в IP - Firewall - Filter Rules и создадим новое правило. На закладке General также укажем Chain - forward и In. Interface - bridge1 , на Advanced указываем Src. Address List - !USER и Dst. Address List - !WL:

mikrotik-black-white-list-012.jpg

И на закладке Action указываем действие reject. Таким образом данное правило будет блокировать все соединения, если адрес отправителя не входит в группу USER и адрес назначения не входит в белый список WL.

Аналогичное действие через консоль:

Данное правило также следует располагать первым в цепочке FORWARD.

Теперь попробуем открыть наш сайт. А вот тут первый неприятный сюрприз:

mikrotik-black-white-list-014.jpg

Что это значит? Браузер не может проверить подлинность сертификата, а так как наш сайт использует HSTS, то доступ к нему будет невозможен, потому как подобные действия могут указывать на атаку с понижением степени защиты, чему HSTS должен препятствовать.

Для того, чтобы браузер смог проверить сертификат нам нужно разрешить доступ к сведениям центра сертификации, адреса нужных узлов можно найти в самом сертификате сайта:

Чтобы применить белый список только к участникам группы немного изменим правило: в Adwanced указываем Src. Address List - USER, т.е. без восклицательного знака. Теперь логика правила изменится и будут блокироваться все соединения для группы USER, кроме тех, которые разрешены белым списком.

mikrotik-black-white-list-016.jpg

Либо в командной строке:

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

Layer 7 protocol

Layer 7 protocol - это методика поиска определенных вхождений в ICMP/TCP/UDP потоках при помощи регулярных выражений. На первый взгляд достаточно интересная возможность, существенно расширяющая степень контроля над проходящим трафиком, но есть один существенный недостаток. Как уже понятно из названия, данный вид фильтрации работает на прикладном (L7) уровне, т.е. полностью обрабатывается CPU и даже при небольшом количестве правил способен создать сильную нагрузку на оборудование, особенно старые (не ARM) модели.

Использовать L7 для блокировки сайтов не рекомендуют сами разработчики Mikrotik, справедливо замечая, что в большинстве случаев это не будет работать так, как задумано, но при этом вы будете впустую растрачивать вычислительные ресурсы роутера. На наш взгляд использовать L7 для задач, связанных с доступом к сайтам вообще бессмысленно. Современный трафик в подавляющем большинстве шифрованный и различного рода конструкции для анализа URL просто не будут работать, а управлять доступом на основе доменного имени вполне можно и на L3 (чем мы занимались выше).

По этой же самой причине не будут работать многие размещенные в интернете инструкции, где трафик фильтровался по содержимому, типам файлов или потоков, использовал параметры запросов и т.д. и т.п. Хотя мы до сих пор встречаем статьи, в которых по L7 пытаются блокировать соцсети или Youtube, мотивируя это большим числом адресов, использованием CDN, поддоменов и т.д. и т.п. Однако все это не выдерживает никакой критики, соцсети и видеохостинги прекрасно блокируются по доменному имени.

Мы не рекомендуем использовать L7 во всех тех случаях, когда задачу можно решить иным образом, применяя его только для решения специфичных задач. Например, выявления и блокировки какого-либо вида трафика.

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

Для решения нашей задачи сначала перейдем в IP - Firewall - Layer 7 protocol и создадим новый фильтр: в поле Name напишем произвольное имя, в нашем случае SSH, а в поле Regexp внесем регулярное выражение паттерна:

mikrotik-black-white-list-017.jpg

Также можно выполнить команду в терминале:

Что делать дальше? Самое очевидное решение - использовать данный фильтр в правилах брандмауэра является примером того, как делать не надо. В этом случае через L7 фильтр будет проходить каждый пакет, что вызовет сильную нагрузку на CPU роутера.

Поэтому мы пойдем другим путем и на основании L7 фильтра будем маркировать соединения, которых гораздо меньше, чем пакетов. Перейдем в IP - Firewall - Mangle и создадим новое правило: на закладке General выставляем Chain - prerouting, Protocol - tcp и Сonnection Mark - no mark:

На закладке Advanced указываем использование созданного нами фильтра Layer 7 Protocol - SSH:

mikrotik-black-white-list-019.jpg

В Action указываем действие mark-connection, задаем марку соединения New Connection Mark - SSH-CONN и обязательно ставим флаг Passthrough для прохождения пакета далее по цепочке:

mikrotik-black-white-list-020.jpg

Затем добавим еще одно правило: General - Chain - prerouting, Protocol - tcp и Connection Mark - SSH-CONN:

mikrotik-black-white-list-021.jpg

А в действиях добавим mark packet, New Packet Mark - SSH-PCK и снимем флаг Passthrough:

mikrotik-black-white-list-022.jpg

Все тоже самое быстро делается в командной строке:

Таким образом мы пометили все пакеты, относящиеся к SSH-соединениям, но L7 фильтр мы используем только для соединений, не нагружая роутер проверкой каждого пакета. Теперь запретим транзит таких пакетов, для этого вернемся в IP - Firewall - Filter Rules и создадим правило, на закладке General которого укажем: Chain - forward, Рrotocol - tcp, In Interface - bridge1 и Packet Mark - SSH-PCK:

mikrotik-black-white-list-023.jpg

На закладке Action ставим действие drop. То же самое в консоли:

Ставим это правило также в начало цепочки FORWARD и если вы все сделали правильно, то установить SSH-соединение из вашей сети больше никому не удастся.

mikrotik-black-white-list-024.jpg

Следует понимать, что выше был лишь пример того, как можно использовать Layer 7 protocol на Mikrotik, в реальной ситуации следует несколько раз подумать и прибегать к возможностям L7 только тогда, когда все остальные варианты исчерпаны. Также старайтесь как можно более подробно описывать условия, для правил использующих L7 фильтры, чтобы максимально уменьшить нагрузку на процессор роутера.

Фильтрация по MAC-адресам

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

В тоже время MAC-адрес нам нужен для одной единственной цели - идентифицировать пользователя, что мы также можем сделать и по IP-адресу, для этого нам нужно будет преобразовать MAC в IP, который уже можно добавить в один из списков и использовать представленные нами выше правила. В этом нам снова поможет таблица Mangle.

Откроем IP - Firewall - Mangle и добавим правило, на закладке General укажем Chain - prerouting, In Interface - bridge1, на Advanced в поле Src. MAC Address укажем MAC-адрес нужного устройства.

mikrotik-black-white-list-025.jpg

И на закладке Action добавим действие add src to address list, где в поле Address List укажем требуемый список пользователей, в нашем случае USER, а в поле Timeout укажите требуемое время жизни записи, это нужно для того, чтобы запись обновилась при смене обладателем MAC IP-адреса. На скриншоте мы, в тестовых целях, использовали 5 секунд, в реальной жизни руководствуйтесь здравым смыслом и выбирайте более высокие значения.

mikrotik-black-white-list-026.jpg

Это же правило в командной строке:

Теперь первый пришедший с данного устройства пакет добавит его IP-адрес в указанный нами список, тем самым связав его с текущим MAC на время указанное в Timeout. Для каждого следующего устройства необходимо создать подобное правило, также не забывайте снабжать каждое из них комментарием, чтобы впоследствии вам и вашим коллегам было понятно о каком именно устройстве идет речь.

Заключение

Как видим возможности RouterOS позволяют решать достаточно сложные задачи используя даже недорогие роутеры. Но следует понимать ограничения всех вышеперечисленных методов, осознавая их достоинства и недостатки. А также соотносить свои требования с возможностями оборудования. Если понимать и принимать во внимание эти факторы, то фильтрация по спискам на Mikrotik будет эффективным инструментом в руках администратора. В противном случае вы получите только разочарование и иные негативные последствия. Поэтому пожелаем вам благоразумия и напомним: хороший администратор выбирает для каждой задачи наиболее подходящий инструмент, что является признаком профессионализма. А фанатизм еще никого до добра не доводил.

Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор - официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.

Популярная серия бюджетных маршрутизаторов из Латвии на базе RouterOS предоставляет пользователям широкие возможности по настройке. Сегодня я подробно рассмотрю возможности mikrotik по блокировке сайтов, рекламы, социальных сетей, по созданию списка запретов на доступ. Все эти средства присутствуют в роутерах из коробки и не требуют специальных знаний для настройки, кроме стандартных средств управления.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на . Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Данная статья является частью единого цикла статьей про Mikrotik.

Как быстро закрыть доступ к сайту

Блокировка сайта в Mikrotik

Нажимаем на + и создаем список для блокировки сайта:

Блокируем одноклассники

Мы заполнили 2 поля:

  1. Name - имя списка. Может быть любым.
  2. Address - адрес сайта. Параметр может принимать значения как ip адреса, так и доменного имени.

После добавления списка с адресом в виде доменного имени, происходит автоматический резолв имени в ip адрес. После этого создаются динамические записи в списке уже из конкретных IP адресов. Эти IP адреса берутся из записей типа A в DNS.

ip адреса одноклассников

У сайта может быть несколько разных доменных имен. Они могут резолвиться в разные IP адреса, так что имеет смысл добавить в список все домены, которые вам известны.

Полный список адресов и доменов для блокировки

Теперь настраиваем правило блокировки с использованием созданного ранее списка. Для этого идем на вкладку Filter Rules и добавляем новое правило.

Правило блокировки сайта в firewall

  • Chain - forward. Цепочка для транзитных пакетов, которые идут через роутер. В том числе все, что проходит из локальной сети.
  • Src. Address - 192.168.13.16. IP ардес, для которого будет работать блокировка. Если хотите заблокировать сайт для всех, можно просто не заполнять это поле. Вместо ip адреса можно указать разом всю подсеть - 192.168.13.0/24.
  • Protocol - tcp. Если не указывать протокол, то тоже будет работать блокировка, но чем более конкретно указано правило, тем лучше в общем случае.

Переходим на вкладку Advanced и указываем там список odnoklassniki, который создали ранее.

Выбор адреса назначения в виде списка

Далее открываем вкладку Action .

Действие - reject

Тут все просто - отбрасываем указанные пакеты, отправляя в ответ ошибку icmp - icmp-network-unreachable. На время отладки можете поставить галочку log, чтобы в логе видеть все сработанные правила с блокировкой социальной сети.

Лог заблокированных запросов

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

Список правил в firewall

Работа блокировки сайта

В данном случае мы в ручном режиме сделали блокировку сайта конкретному пользователю. Если у вас таких сайтов и пользователей много, процесс надо по-возможности автоматизировать.

Черный список сайтов для фильтрации

Блокирование сайтов в mikrotik по списку

На основе этого списка сформировался набор динамических записей с ip адресами добавленных доменов.

Полный список доменов и ip адресов

Дальше точно так же создаем правило блокировки в firewall, как мы это сделали в предыдущем примере с одним сайтом, только указываем наш список видеохостингов. В данном случае принципиальной разницы нет, один у нас сайт или список.

Когда будете тестировать блокировку, обратите внимание, есть ли у вас выше в firewall правила для уже установленных соединений. Во время теста может так получиться, что правило блокировки не будет работать из-за того, что у вас соединения уже установлены и не доходят до блокирующего правила.

Запретить социальные сети в mikrotik

Сейчас на примере списка социальных сетей разберу еще один подход к блокировке сайтов в mikrotik. Он будет основываться не на резолве доменных имен в ip адреса, а на анализе содержимого пакетов с помощью Layer7 Protocol. Его преимущество именно в том, что он анализирует содержимое пакетов. Теоретически, это более надежный способ блокировки, так как ip адреса сайтов могут меняться. В случае статических правил с ip адресами это может приводить к тому, что в какой-то момент они станут не актуальны. С эти тоже можно бороться, обновляя списки, но это отдельная тема.

Я расскажу, как использовать Layer7 Protocol в микротике для блокировки социальных сетей просто для примера, чтобы вы знали, что есть такой механизм и его можно использовать.

Для этого создаем правило Layer7 Protocol в соответствующем разделе Winbox IP -> Firewall -> Layer7 Protocols для блокировки социальной сети facebook.

Блокировка социальных сетей в микротике

Теперь нам нужно промаркировать все соединения и пакеты в dns запросах, где будет совпадение с созданным ранее правилом. Идем во вкладку Mangle и добавляем правило маркировки соединений.

Маркировка соединений
Маркировка соединений

Маркировка соединений

Чтобы не перепутать какие-то параметры, можете просто ввести в консоли команду и проверить созданное правило.

И еще одно правило для маркировки пакетов на основе промаркированного выше соединения.

Маркировка пакетов
Маркировка пакетов

Пакеты промаркировали. Теперь создаем 2 блокирующих правила для цепочек input и forward. Для этого идем во вкладку Filter Rules и добавляем 2 правила. Я не буду показывать картинки, их и так уже полно в статье. Правила простые, введите их в консоль сами.

Далее важно эти правила правильно расположить в списке правил. Они обязательно должны быть выше разрешающих правил для цепочек input и forward. Примерно так.

На время отладки я включаю логирование правил, обнуляю счетчики и начинаю тестировать. Если что-то пойдет не так, проверьте так же счетчики в разделе Mangle . Если там будет пусто, значит ошибка либо в правиле Layer7 Protocols, либо в самих правилах маркировки. Я, когда тестировал, неправильно расположил правила в Firewall. В итоге в правилах маркировки счетчики росли, пакеты маркировались, но блокировки не было. Это было видно по нулевым счетчикам в Firewall. После того, как правильно расположил правила, блокировка социальной сети facebook заработала как надо.

Объясняю логику работы данной блокировки. Мы маркируем все соединения к dns серверу, удовлетворяющие указанному regex в правиле Layer7. Далее маркируем все пакеты из этого соединения. Потом в фаерволе блокируем эти соединения. Если клиент использует DNS сервер на микротике, запросы блокируются правилом цепочки input, если используется сторонний, то в блок пакеты попадают по правилу цепочки forward. В итоге у клиента не работает резолвинг доменного имени в ip и он не может попасть на сайт через браузер. Конечно, при желании, эту блокировку соцсети можно обойти. Для наибольшей эффективности надо комбинировать оба предложенных в статье способа.

Для тех, кому интересно, почему я описал именно такой способ блокирования нежелательных сайтов, поясню. Подсмотрел его в недавно переведенной мной презентации от сотрудника Mikrotik, где он дает рекомендации по настройке. Я просто попробовал его реализовать и все получилось. Решил его добавить в эту статью. Все вопросы и претензии по реализации прошу отправлять автору метода, не мне :) Мопед, как говорится, не мой.

Блокировка рекламы средствами mikrotik

С помощью изученного средства по ограничению доступа к сайтам достаточно просто блокировать любую рекламу. Для примера рассмотрим вариант по блокировке рекламы в Skype. Так как я знаю адреса серверов, куда скайп лезет за рекламой, я могу его заблокировать в mikrotik. У меня есть список:

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

Дальше как обычно создаем regexp выражение для списка адресов:

Либо делаете список с dns именами, как я показал в самом начале, если не хотите использовать Layer7 для этого. Добавляем новое правило блокировки в firewall, подключаем к нему список, созданный ранее и наслаждаемся работой скайпа без рекламы.

Заключение

Не понравилась статья и хочешь научить меня администрировать? Пожалуйста, я люблю учиться. Комментарии в твоем распоряжении. Расскажи, как сделать правильно!

Материала в интернете по Микротику много. Я сам пока разбирался в данном вопросе перечитал кучу статей. И все они какие-то недоделанные. Либо вопрос слабо раскрыт, либо что-то вообще не работает. Не знаю, в чем причина такой ситуации. Возможно что-то меняется в настройках и информация становится неактуальной. Сходу у меня не заработала фильтрация на основе Layer7 Protocols, пришлось повозиться, покопаться в regexp, в правилах, в их расположениях. Надеюсь мой материал немного исправит данную ситуацию.

Буду рад любым замечаниям к статье, так как сам учусь в процессе написания. В своей работе лично я не использую какие либо ограничения доступа к сайтам, так как считаю это бесполезным занятием. Но многие пользуются, поэтому разбираться в этом вопросе считаю полезным делом. К тому же эти блокировки с помощью микротика могут быть актуальны дома для ограничения доступа детей к нежелательным сайтам. Так же можно по расписанию отключать доступ к youtube, к примеру, после 22 часов.

Напоминаю, что данная статья является частью единого цикла статьей про Mikrotik.

г. Санкт-Петербург, Крестовский остров, Северная дорога, дом 12.

г. Санкт-Петербург, ст. м. «Приморская»,
ул. Одоевского, д. 24 к. 1, 2 этаж

Настройка фильтрации трафика на MikroTik. Ч. 4

Завершающая часть цикла по настройке фильтрации с помощью Firewall. Использование списка адресов (address list).

Введение

Использование списка адресов (address list)

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

Одним из вариантов создания динамических правил в файерволе является использование именованных списков адресов (address lists)

В именованный список, можно добавлять, как адреса, так и подсети. Вполне корректны следующие команды:

Вам помогла эта статья?

Приглашаем пройти обучение в нашем тренинг-центре и научиться настраивать оборудование MikroTik на профессиональном уровне! Узнайте расписание ближайших курсов и бронируйте место!

Здесь мы добавили в Address-list с именем test сразу три разных записи

Одиночный хост 192.168.0.10 Подсеть 192.168.1.0/24 Диапазон адресов 192.168.2.1-192.168.2.15

Теперь мы все это одновременно можем обработать в файерволе в одном правиле. Например:

разрешит прохождение трафика через маршрутизатор, если адрес источника находится в именованном списке test.

Однако у именованного списка адресов есть еще один замечательный параметр, который называется timeout. Он обозначает,что через какое время, после попадания в список, адрес будет оттуда автоматически удален. И если раньше, когда у Вас возникала необходимость временно разрешить или запретить какому-нибудь хосту прохождение трафика, Вы создавали правило в файерволе, а потом старались не забыть что его надо удалить, то теперь все проще.

Нам иногда надо временно запретить прохождение трафика с какого либо из компьютеров сети.

Для начала создадим правило:

А теперь мы хотим отключить хост 192.168.100.100 от Интернет на 1 час.

И в общем-то и все. По истечении часа, эта запись автоматически удалится и хост получит доступ в Интернет. Удобно? Безусловно да. Но самая сильная функциональность именованных списков заключается в том, что их можно добавлять из других правил файервола, при помощи Action add dst to address list и add src to address list

Это позволяет делать динамические правила фильтрации трафика.

Например мы хотим защитить встроенный ssh сервер микротик от атаки на подбор пароля (brute force)

Создадим следующие правила:

Разберемся, как это работает.

Итак, если происходит подключение к ssh-серверу, срабатывает последнее правило из списка, в результате чего адрес отправителя пакета попадает в список адресов с именем ssh_stage1 на одну минуту.Если подключение к серверу было осуществлено успешно, соединение перейдет в состояние established и эти правила, ориентированные на connection-state=new не будут срабатывать.

Если же, подключающийся не знает пароля, сервер его отключит. И при попытке подключения в течении одной минуты после первой попытки, сработает второе снизу правило. В результате чего адрес отправителя пакета попадет на одну минуту в список адресов с именем ssh_stage2.

Третья попытка подбора пароля в течении минуты приведет к попаданию атакующего на одну минуту в список с именем ssh_stage3. Если атакующий попытается подключиться в течении одной минуты после попадания его адреса в список ssh_stage3, он попадет в список ssh_blacklist на длительное время (в примере на 10 дней).

Первое правило этого примера блокирует прохождение пакетов на ssh-сервер, от адресов входящих в последний список.

Результат работы примера:

Результат работы

Понятно, что если Вы замените в примере цепочку input на forward, а dst-port замените на 3389, Вы защитите таким образом опубликованный терминальный сервер. Кстати, данный пример легко модифицируется для реализации такой технологии как Port Knocking.

Суть данной технологии заключается в том, что для того, чтобы адрес источника пакета получил доступ к защищаемому ресурсу, он должен сначала «постучать» в заранее определенной последовательности в заранее определенные порты по протоколам TCP и/или UDP.

Попробуем теперь модифицировать пример. Теперь нам надо добиться того, чтобы удаленный компьютер получил доступ к ssh серверу, «простучав» порты в последовательности tcp:2000, udp:1000, tcp:5000

Между «стуками» не должно пройти более 5 секунд. Доступ для попытки подключения после успешного простукивания портов предоставляется на 1 минуту.

Таким образом, работа с именованными списками адресов значительно расширяет возможности настройки фильтрации пакетов. А возможность заполнять эти списки из правил файрвола, а так же возможность указания времени на которое адрес попадает в список, позволяет создавать сложные интеллектуальные правила фильтрации трафика.

Технический директор Илья Князев (MTCNA,MTCWE,MTCTCE,MTCRE,MTCINE)

Базовая настройка защиты роутера MikroTik: настройка устройства, настройка сетевого экрана, защита от сканирования портов, защита от подбора пароля.

🔔 В статье даны примеры команд в терминале MikroTik. Если при вставке команды в терминал, происходит автоматическая вставка команд (при выполнении вы получаете ошибку bad command name или expected end of command), нажмите сочетание Ctrl+V, чтобы отключить эту возможность.

Содержание

Пользователи

Не используйте простые имена пользователя, пароль должен соответствовать требованиям безопасности.

Если доступ к устройству имеют несколько пользователей, вы можете более подробно задать права выбранному пользователю. Создайте новую группу и определите права пользователей этой группы.

Сервисы

Отключить неиспользуемые сервисы

Отключаем сервисы MikroTik, которые не планируем использовать.

Изменить порт Winbox

MikroTik отключение неиспользуемых сервисов и изменение порта Winbox

Обновление

Если обновление версии будет найдено, выполните обновление устройства.

🔗 Скрипт Проверка обновления RouterOS, пришлет уведомление о выходе новой версии прошивки.

Интерфейсы

Объединим внутренние (доверенные) и внешние (недоверенные) интерфейсы в списки, для удобства дальнейшего управления.

Помещаем в этот список интерфейсы локальной сети, VPN подключения и т.д.

Помещаем в этот список внешние интерфейсы (интернет и т.д.).

Настройка списков интерфейсов MIkroTik

Соседи

Настроим обнаружение устройства используя Neighbor Discovery только для внутренних интерфейсов или разрешенных интерфейсов.

Разрешаем обнаружение только с интерфейсов перечисленных в списке InternalInterfaces.

Настройка MikroTik Neighbor Discovery

Межсетевой экран

Настраиваем ограничения доступа к роутеру и устройствам сети с помощью межсетевого экрана MikroTik.

Разрешить установленные и связанные соединения

Помещаем правило первым в списке Filter Rules (поместите правило ориентируясь на его номер в комментарии).

Отбросить недействительные пакеты

Помещаем правило после правила Trusted, в списке Filter Rules (поместите правило ориентируясь на его номер в комментарии).

Разрешить ICMP

Поместите правило ориентируясь на его номер в комментарии.

Черный список

Создать список

Создаем список BlackList, в который будем помещать IP адреса, которым по какой-то причине запрещен доступ к MikroTik или защищаемым устройствам.

Создать правило

Для экономии ресурсов центрального процессора, запрещающее правило разместим в таблице Prerouting.

⚠️ Правила размещенные в Prerouting выполняются до разделения трафика на цепочки Input и Forward!

Поместите правило по его номеру в комментарии.

MikroTik Firewall RAW таблица

На скриншоте видно дополнительные правила:

Блокировка сканеров портов

Применять правило будем только для новых соединений.

TCP порты ловушки

Создать правило

Помещаем IP адрес недоверенного устройства в BlackList, на 10 часов:

Разместите правило, ориентируясь на его номер в комментарии.

Правило MikroTik Firewall - Блокировать сканеры портов

Разрешим порт Winbox

Поместите правило ориентируясь на его номер в комментарии.

Сбрасываем неразрешенные соединения

Таблица фильтров MikroTik Firewall

Поместите правило на последнюю позицию в правилах Firewall Filter Rules.

Блокируем Bruteforce

Помещаем IP адрес устройства в BlackList, на 70 минут.

Правило брандмауэра - блокировка Bruteforce

Комментарии 17

Большое спасибо Евгений! Поправил.

И кстати, её IP я не вижу. Даже в настройках роутера

Едрён-батон, хоть бы слово понял. Это что? Куда прописывать? Ребята, вы ж для чайников пишете. Третья сотня водки зазря ушла. Эхххх. Не быть мне под защитой.

Что именно непонятно? Попробую помочь.
В квадратных скобках указана последовательность нажатия кнопок в окне Winbox.

Например в первом пункте Пользователи:
Нажмите на кнопку [System], потом на кнопку [Users], в открывшемся окне нажмите на вкладку [Groups], потом на кнопку [+] и введите параметры нового пользователя.

вот КМК полезные правила в RAW

Сомнительной полезности правило в случае, если в локалку проброшены какие-то порты

Правило конечно крутое

, но как быть с DNS ?

Читайте также: