Jump to content
Sign in to follow this  

Как заблокировать сайт микротиком

Sign in to follow this  
k010v

617 views

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

 

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

Начнем с самого простого. У нас есть роутер Mikrotik, утилита winbox и желание конкретному пользователю установить запрет на посещение определенного сайта. Подключаемся к роутеру и идем в раздел IP -> Firewall, открываем закладку Filter Rules:

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

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

добавление правила запрета

На первой вкладке General заполняем:

  1. Указываем цепочку Forward.
  2. Указываем адрес пользователя, которому будет закрыт доступ к сайту.
  3. Выбираем протокол TCP.

Дальше переходим на вкладку Advanced:

правило для vk.com

В поле Content указываем адрес сайта, который нужно заблокировать, например vk.com. Переходим на вкладку Action:

mikrotik заблокировать сайт

Здесь выполняем следующие действия:

  1. В поле Action выбираем reject.
  2. В пункте Reject With указываем tcp reset.
  3. Нажимаем OK.

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

не открывается заблокированный сайт

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

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

Давайте создадим отдельно список сайтов и укажем его в правиле, чтобы не создавать запрет для каждого имени отдельно. Сделать это не сложно. Для этого опять идем в раздел IP -> Firewall, открываем вкладку Layer7 Protocols и нажимаем «+» для добавления списка:

добавление layer7 правила

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

^.+(youtube|rutube|smotri).*$

Список можно расширить, добавляя значения в скобках через знак вертикальной палки, что означает логическое «или».

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

подключение списка layer7

 

Вместо поля Content выбираем название нашего списка для блокировки video в поле Layer7 Protocol.

Если у вас настроен firewall на микротике и в нем присутствуют какие-то правила, то текущее правило блокировки нужно правильно разместить в списке, чтобы оно работало. Например, у меня есть материал на тему настройки firewall. Там есть правила:

Разрешаем установленные подключения
add chain=input action=accept connection-state=established
add chain=forward action=accept connection-state=established

Текущее правило блокировки списка сайта на основе Layer7 Protocol должно стоять выше этого правила, иначе оно не будет работать. Я не до конца понял, почему, но я провел достаточно много тестов, чтобы убедиться, что его реально надо ставить выше. Ну и, разумеется, оно должно стоять выше правила, разрешающего соединения forward из локальной сети.

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

Вот как у меня выглядит список моих правил на фаерволе с учетом добавленного правила блокировки:

Список правил фаервола в микротике

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

Вы можете включить логирование заблокированных соединений с сайтами из списка на вкладке Action самого правила:

включение логов в правилах микротика

Mikrotik будет генерировать подобные логи:

текст логов запрета в mikrotik

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

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

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

закрытие социальных сетей

Текст регулярки:

^.+(vk.com|vkontakte|odnoklassniki|odnoklasniki|facebook|ok.ru).*$

Дальше создаем правило, как мы это делали выше и выбираем список, который только что добавили:

regexp правило для социальных сетей

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

Блокировка рекламы средствами 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).*$

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

Заключение

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

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

 

Статья позаимствована с ресурса serveradmin.ru

 

Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...