Блокируем сайты в режиме белого и чёрного списков в MikroTik без Layer7 Protocols

Прелюдия


Это моя первая статья на Хабре (да и вообще первая подобная), поэтому прошу сильно сапогами не бить. Она ориентирована на таких же новичков, как и я, и не претендует на роль самой верной и правильной. Я просто делюсь своим решением проблемы, которого не мог найти нигде в интернете.


Суть проблемы


Года эдак два назад я решил обзавестись домашней точкой доступа (в простонародии роутер) и выбор пал на оборудование фирмы MikroTik. Я не был знаком с их интерфейсом и возможностями, поэтому, когда мне понадобилось выборочно заблокировать сайты, я полез в гугл, который мне выдал всего пару вариантов для реализации этой затеи. Выделю три основных:


  1. Фильтровать пакеты с помощью Layer7 Protocols
  2. Банально задать статические DNS записи для нужных доменов
  3. Использование WebProxy

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


Layer7 Protocols


На первый взгляд идеальное решение. Однако, загружает CPU "микрота" и требует отключения fasttrack`а. В дополнение к этому, лично у меня так и не вышло настроить эту фичу нужным мне образом. Либо блокировалось всё, либо ничего.


Статические записи в DNS


Естественно, для этого сам микротик должен выступать в роли DNS-сервера в сети. Но основной недостаток этого метода — если нужно работать с сайтами в режиме "белого списка", т.е. блокировать всё, кроме нужных доменов — он бесполезен. Ну либо придётся добавить весь интернет в такие записи.


WebProxy


Тут даже говорить не о чем, он банально не работает с HTTPS.


Собственно, долго и упорно я гуглил другие методы, коих так и не смог найти нигде. Однако, пытаясь решить данную задачу другим путём, совершенно случайно набрёл на удобную фичу, что мне помогла решить эту проблему в полной мере — Addresses Lists.


А конкретнее...


Присутствует в микротике такая замечательная функция, как Firewall -> Addresses Lists.


Позволяет создавать списки IP-адресов. Так вот начиная с RouterOS 6.36 она умеет генерировать динамические адреса на основе указанного домена. Если ещё не уловили основную суть, то прошу под кат.


Само решение


Проделывать я всё буду в Winbox, т.к. статья всё-таки для таких же новичков, как и я, и GUI здесь будет понятнее намного.


Идём в обозначенный выше пункт IP -> Firewall -> Addresses Lists.


IP - Firewall - Addresses Lists


Создаём новый список, обзываем как душе угодно, в поле Address прописываем домен нужного нам сайта и нажимаем "ОК".


Создание нового списка


Через секунду после добавления такого правила микротик автоматически добавит в список все IP-адреса указанного сайта и подпишет каждый комментарием, к какому именно DNS-адресу принадлежит данный IP.


Смотрим динамически созданные адреса


Далее переходим в соседнюю вкладку "Filter Rules"


Смотрим, где она


Добавляем новое правило со следующими параметрами:


  • Вкладка General
    • Chain: forward
  • Вкладка Advanced
    • Dst. Address List: Выбираем наш свежеиспечённый список, у меня он называется "VK"
  • Вкладка Action
    • Action: drop

Наглядно картинками




Сохраняем правило, размещаем выше запрещающих и бинго… Указанный сайт заблокирован без каких-либо сложных манипуляций. А, главное, можно в одно движение инвертировать правило, и оно станет работать как "белый список". Все сайты, кроме тех, что в списке адресов, будут заблокированы. Для этого достаточно установить чекбокс слева от пункта Dst. Address List на вкладке Advanced.


Изменённый пункт выделен синим


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


Заключение


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


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

Tags:
Mikrotik, блокировка сайтов

You can't comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author's username will be hidden by an alias.