🐹 MikroTik: Как заблокировать сайт.

Содержание:

1. Как быстро закрыть доступ к сайту.
2. Черный список сайтов для фильтрации.
3. Запретить социальные сети в MikroTik.
4. Блокировка рекламы средствами MikroTik.
5. Оригиналы источников информации.


Хочешь уметь больше? Научиться тонкостям настройки MikroTik можно из русскоязычного онлайн-курса по MikroTik от автора курсов Дмитрия Скромнова. Здесь можно изучить MikroTik и RouterOS самостоятельно по курсу «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA, но содержит больше информации. Это 162 видеоурока и большая практическая задача, разбитая на 45 лабораторных работ. Время на изучение неограниченно – все материалы передаются бессрочно и их можно пересматривать сколько нужно. Первые 25 уроков можно посмотреть бесплатно, оставив заявку на странице курса.


Основная часть этой статьи была взята с очень уважаемого мною сайта serveradmin.ru. Если вам понравилась данная статья, то перейдите на сайт её автора — serveradmin.ru, и поддержите автора финансово или информационной поддержкой! Ему будет очень приятно или полезно!


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

Начнем с самого простого. У нас есть роутер MikroTik, утилита winbox и желание конкретному пользователю установить запрет на посещение определенного сайта.

В моем примере это будет запрет на доступ к сайту одноклассники — ok.ru. Подключаемся к роутеру и идем в раздел IP -> Firewall, открываем вкладку Address List:

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

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

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

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

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

Я добавил на всякий случай адрес odnoklassniki.ru, но по факту в этом нет смысла, так как он резолвится в те же самые IP-адреса, что и ok.ru. Новых динамических записей не добавилось.

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

  • Chainforward. Цепочка для транзитных пакетов, которые идут через роутер. В том числе все, что проходит из локальной сети.
  • Src. Address192.168.13.16. IP-адрес, для которого будет работать блокировка. Если хотите заблокировать сайт для всех, можно просто не заполнять это поле. Вместо IP-адреса можно указать разом всю подсеть — 192.168.13.0/24.
  • Protocoltcp. Если не указывать протокол, то тоже будет работать блокировка, но чем более конкретно указано правило, тем лучше в общем случае.

Внимание! Не забудьте указать интерфейс, на котором находится эта LAN.

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

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

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

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

На этом основная настройка закончена. В данный момент правило по фильтрации сайта уже работает. Мы с помощью стандартных средств MikroTik смогли заблокировать ok.ru. Это нетрудно проверить на клиенте. При попытке открыть адрес сайта популярной социальной сети он получит следующее сообщение в браузере.

 

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

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

Для того, чтобы не создавать отдельные правила для каждого сайта, можно просто создать общий список блокировки и добавлять туда домены. Покажу на примере популярных видеохостингов. Настроим блокировку одним правилом youtube.com, vimeo.com, rutube.ru, ivi.ru, video.mail.ru. Для этого идем в раздел IP -> Firewall -> Address List и добавляем их все туда. Получился такой статический список.

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

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

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

3. Запретить социальные сети в MikroTik.

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

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

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

/ip firewall layer7-protocol
add name=facebook regexp="^.+(facebook).*\$"

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

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

/ip firewall mangle
add action=mark-connection chain=prerouting protocol=udp dst-port=53 connection-mark=no-mark layer7-protocol=facebook new-connection-mark=facebook_conn passthrough=yes

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

add action=mark-packet chain=prerouting connection-mark=facebook_conn new-packet-mark=facebook_packet

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

add action=drop chain=forward packet-mark=facebook_packet
add action=drop chain=input packet-mark=facebook_packet

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

add action=drop chain=input comment="block facebook" log=yes packet-mark=facebook_packet
add action=accept chain=input comment="Local Input" in-interface=!ether2-wan src-address=192.168.13.0/24

add action=drop chain=forward comment="block facebook" log=yes packet-mark=facebook_packet
add action=accept chain=forward comment="accept forward from local to internet" in-interface=!ether2-wan

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

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

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

4. Блокировка рекламы средствами MikroTik.

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

rad.msn.com
apps.skype.com
vortex-win.data.microsoft.com
settings-win.data.microsoft.com

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

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

^.+(rad.msn.com|apps.skype.com|vortex-win.data.microsoft.com|settings-win.data.microsoft.com).*$

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

5. Оригиналы источников информации.

  1. serveradmin.ru «Как заблокировать сайт микротиком». (от 2020.03.05)

Хочешь уметь больше? Научиться тонкостям настройки MikroTik можно из русскоязычного онлайн-курса по MikroTik от автора курсов Дмитрия Скромнова. Здесь можно изучить MikroTik и RouterOS самостоятельно по курсу «Настройка оборудования MikroTik». Курс основан на официальной программе MTCNA, но содержит больше информации. Это 162 видеоурока и большая практическая задача, разбитая на 45 лабораторных работ. Время на изучение неограниченно – все материалы передаются бессрочно и их можно пересматривать сколько нужно. Первые 25 уроков можно посмотреть бесплатно, оставив заявку на странице курса.


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