Mikrotik настройка firewall l7 протокол

Обновлено: 06.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 лабораторных работ, вопросы для самопроверки и конспект.

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

По своей сути, Layer7 protocol, является методом поиска совпадений по регулярным выражения в ICMP, TCP и UDP потоках. И работает следующим образом: с каждого соединения, берутся первые 10 пакетов или первые 2KB, в которых производится поиск совпадений. Таким образом, мы можем находить тот или иной вид трафика, и дальше обрабатывать его в Firewall - запрещать, перенаправлять, маркировать соединения и прочее.

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

Предположим, что нам нужно заблокировать посещение сайтов ВКонтакте, Одноклассники, Facebook и Twitter. Для этого мы сперва создаем регулярное выражение вида:

Подключаемся к нашему маршрутизатору и переходим в раздел IP - Firewall, где открываем вкладку Layer7 Protocol и добавляем новую запись, кнопкой +.

Где в поле Name, вписываем имя новой записи, а в поле Regexp, вставляем наше регулярное выражение.

И теперь, на его основе, мы можем создавать правила Firewall, на соответствующей вкладке.

Здесь мы добавляем правило, со следующими параметрами: Chain - forward, Layer7 Protocol - выбираем созданную нами ранее запись, и Action - drop.

И теперь, если в заголовке запроса, будет упоминаться тот или иной URL, перечисленный в регулярном выражении, этот запрос будет отклонен.

Однако, спектр возможного применения Layer7 protocol, не ограничивается только запретами. Можно и наоборот, дать приоритет тому или иному виду соединений, определенных при помощи этой функции. Например, определить телефонное соединение по протоколу SIP, при помощи регулярного выражения вида:

После чего, пометить все пакеты данного типа при помощи правила на вкладке Mangle.

И создать правило, в соответствии с которым, данным пакетам будет предоставлена приоритетная ширина канала в 25Mbit/s в разделе Queues.

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

Есть в маршрутизаторах Mikrotik такая функция, как layer7-protocol, если кто не знает, находится она в меню IP Firewall, где есть соответствующая вкладка.

Рис.1. Меню IP FireWall. Вкладка Layer7 protocol

Рис.1. Меню IP FireWall. Вкладка Layer7 protocol

Внимание! Чрезмерное злоупотребление данной функцией и большое число записей layer7-protocol может привести к серьезной нагрузке на устройство, так как все без исключения потоки трафика обрабатываются.

Область применения L7 протокола крайне велика. Приведем пример, в котором определим соединение по SSH протоколу. Для этого мы создадим новую запись, которая будет содержать такое регулярное выражение: ^ssh-[12]\.4

Сделать это можно через командную строку, как показано на изображении.

Рис.2. Командна строка - ip firewall layer 7 protocol

Или же, через GUI в меню IP Firewall на вкладке Layer7 Protocol.

Рис.3. GUI, в меню Firewall 7 Protocol

Рис.3. GUI, в меню Firewall 7 Protocol

После чего на вкладке Filter Rules можно создать правила Firewall, в котором допустим, запретить данный вид трафика входящего в маршрутизатор в цепочке input.

Рис.4. Создаём правила Firewall в цепочке input

Рис.4. Создаём правила Firewall в цепочке input

И при попытке подключиться к Mikrotik по этому протоколу, Вы увидите, что пакеты блокируются.

Рис.5. Пакет блокируется при подключении к Mikrotik

Рис.5. Пакет блокируется при подключении к Mikrotik

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

Таблица регулярных выражений

Рис.6. Regexp - соединения с сайтами социальных сетей

Рис.7. Можно запретить или заблокировав доступ к социальным сетям

Рис.7. Можно запретить или заблокировав доступ к социальным сетям

Если Вы нашли ошибку в тексте, то выделите ее мышкой и нажмите Ctrl + Enter или нажмите здесь.

Бесплатный чек-лист
по настройке RouterOS
на 28 пунктов

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

Правильная настройка L7 Filter

Раздел для тех, кто начинает знакомиться с MikroTik

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

1. Назовите технологию подключения (динамический DHCP, L2TP, PPTP или что-то иное)
2. Изучите темку "Действия до настройки роутера".
viewtopic.php?f=15&t=2083
3. Настройте согласно выбранного Вами мануала
4. Дочитайте мануал до конца и без пропусков, в 70% случаев люди просто не до конца читают статью и пропускают важные моменты.
5. Если не получается, в Winbox открываем терминал и вбиваем там /export hide-sensitive. Результат в топик под кат, интимные подробности типа личных IP изменить на другие, пароль забить звездочками.
6. Нарисуйте Вашу сеть, рисунок (схему) сюда. На словах может быть одно, в действительности другое.

Помогите понять в чем ошибка.

Задача, настроить блокировку нежелательных сайтов с помощью L7 Filter. На данном этапе пока не маркирую соединения для дропа соединения и пакетов, а просто тестирую логику работы L7 Filter.

Имеем.
Маршрутизатор 951Ui-2nD. Прошивка Current 6.42.6

Настройка
Настройка выражения L7

А вот теперь вопрос. Говорят, что правило L7 должно стоять после правила разрешающего establish&related onnection, но у меня если поставить правило L7 до establish&related, то сайты не открываются и счетчик правила L7 тикает, а если поставить L7 после establish&relate, то L7 уже не работает и счетчик стоит на нуле.

На сайте mikrotik написано

L7 matcher collects the first 10 packets of a connection or the first 2KB of a connection and searches for the pattern in the collected data. If the pattern is not found in the collected data, the matcher stops inspecting further.

По логике, даже если правило L7 стоит после establish&related, то правило L7 все равно должно сработать при установке соединения (пока оно в статусе new) а дальше, не обращая внимания на establish&related собрать 10 пакетов или 2KB. Но. так оно не хочет работать =(

Популярная серия бюджетных маршрутизаторов из Латвии на базе 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.

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