Как заблокировать социальные сети и сайты с помощью Mikrotik
Так или иначе рано или поздно у руководства любой компании появляется идея “А не заблокировать ли нам социальные сети. А то сотрудники не работают, а только в интернете ерундой занимаются”. Вот и приходит команда админу “ЗАБЛОКИРОВАТЬ”. И хорошо если в компании имеется мощный прокси-сервер который умеет разбирать шифрованный SSL трафик и влет блокировать все что админу угодно. Но игрушки такие стоят дорого, да и квалификация должна быть соответствующая. А в обычной рядовой фирме, хорошо если у админа есть хороший маршрутизатор. Собственно говоря в этой статье я и расскажу, как за пару минут с помощью Mikrotik и ровных рук можно решить поставленную задачу. Добро пожаловать под кат.
“Да я тебя по IP вычислю и забаню!”
Многие, кто в теме, помнят древнюю угрозу, которая озвучивалась на заре интернета в нашей стране. Но если посмотреть, то с тех самых времен мало что поменяловь. И как оговорится все гениальное просто. Давайте рассмотрим варианты, как можно решить поставленную руководством задачу без дополнительного финансирования:
- Прокси сервер — дешевые и бесплатные аналоги не умеют разбирать SSL трафик, а все современные социальные сети уже давно перешли на HTTPS. Дорогие варианты, которые умеют разбирать HTTPS и SSL на никто не купит. Так что для нас это не вариант
- Заглушка в DNS — Интересный андеграудный вариант. Создать левые зоны для каждой социальной сети и возвращать IP-адрес, например 127.0.0.1. Идея прикольная, вот только одна проблема – далеко не всем нужно банить социалки. В итоге это абсолютно не гибкий инструмент, который нам не подходит.
- Бан по IP. При всей своей простоте, в нашем случае это самый простой и гибкий инструмент. Почему? Все просто. Можно создать списки адресов и создать правила согласно которым кого-то пускать по указанным адресам а кого-то нет. Этот способ плохо подходит для блокировки отдельных мелких сайтов, поскольку блокирует не только ресурсы которые нам нужны, но и все остальные что живут на том же сервере. В итоге, для мелочи этот способ не годится, а вот для крупных гигантов, коими и являются социальные сети это то что нужно
Общий принцип действия
И так, со способами мы разобрались и определили наиболее для нас удобный. Теперь попробую описать что нам нужно.
- Определяемся с ресурсом который мы хотим заблокировать. Пускай это будет ну скажем тот же twitter.
- Идем по ссылке https://bgp.he.net/ и в строке поиска вбиваем название ресурса. В нашем случае это twitter.
- Ждем пока отработает поиск. Вуаля! у нас в руках список всех адресов и подсетей, которые использует twitter.
- Теперь любым удобным способом на маршрутизаторе создаем список IP адресов с удобным названием, например TWITTER-IPs
- Любым удобным способом на маршрутизаторе создаем список IP адресов компьютеров, которым можно посещать данный ресурс, назовем его TWITTER-USERS_PC
- Создаем правило в Firewall согласно которому разрешаем доступ компьютерам из списка TWITTER-USERS_PC к адресам из списка TWITTER-IPs
- Создаем правило в Firewall согласно которому запрещаем доступ к адресам из списка TWITTER-IPs
Все. Теперь только определенные пользователи могут посещать TWITTER. Точнее на ресурс можно попасть только с определенных ПК. С остальных ПК ресурс работать не будет. Вообще. Маршрутизатор будет полностью блокировать трафик на TWITTER и будет абсолютно все равно по какому протоколу, зашифрован там он или нет.
Вот как-то так.
От теории к практике
Вот вы сейчас прочитали то что я написал и задаетесь вопросом. Как это все настроить? Да легко. Давайте я вам все это дело покажу. Опустим посещение сайта и получение списка адресов. рассмотрим блокировку на примере подсети 104.244.42.0/24 которая принадлежит твиттеру.
- Открываем Winbox и подключаемся к нужному маршрутизатору.
- Переходим в раздел IP подраздел FIREWALL и выбираем вкладку ADDRESS LISTS
- Создаем новый список адресов:
- В после NAME вбиваем имя списка которое нравится вам. Внимание! поле имя не уникально и если вам в один список нужно добавить несколько адресов или подсетей, то нужно создать несколько списков с одинаковыми именами
- А поле ADDRESS вписываем IP адрес или подсеть. В моем случае это подсеть.
- И так повторяем столько раз сколько адресов или подсетей мы хотим объединить в один список
- Теперь создадим список TWITTER-USERS_PC. делаем все точно так же как в пунктах 3-6 за исключением того, что список у нас будет называться TWITTER-USERS_PC а в поле ADDRESS нужно вписывать IP адреса компьютеров и подсетей, которым мы хотим разрешить доступ к твиттеру.
- В итоге получается как-то вот так:
- Переходим на вкладку FILTER RULES
- Нажимаем кнопку ADD и создаем новое правило
- На вкладке GENERAL ничего не меняем только выбираем CHAIN типа FORWARD
- Переходим на вкладку ADWANCED. В поле Src. Address List выбираем список TWITTER-USERS_PC. В поле Dst. Address List выбираем список TWITTER-IPs
- Переходим на вкладку Action. В поле Action выбираем пункт accept
- Сохраняем наше правило кнопкой ОК. При необходимости добавляем комментарий. Все правило, которое разрешает с определенных ПК ходить на twitter готов. теперь переходим к созданию правила, которое всем остальным запретит доступ к этому ресурсу.
- Нажимаем кнопку ADD и создаем новое правило
- На вкладке GENERAL ничего не меняем только выбираем CHAIN типа FORWARD
- Переходим на вкладку ADWANCED. Поле Src. Address List оставляем пустым. В поле Dst. Address List выбираем список TWITTER-IPs
- Переходим на вкладку Action. В поле Action выбираем пункт DROP
- Сохраняем наше правило кнопкой ОК. Все запрещающее правило готово.
Для того чтобы эта связка правил работала ее нужно перетащить повыше в списке правил Filter Rules.
Ну вот и все. теперь вы знаете как осуществить блокировку не только по определенному адресу, но и по определенной подсети или по нескольким подсетям.
Надеюсь информация была для Вас полезна. в скором времени я планирую выложить скрипты для автоматического создания списков адресов для разных ресурсов. Следите за новыми статьями.
Огромный выбор сетевого оборудования Микротик по приятным ценам.
Хороший выбор сетевого оборудования Mikrotik для жителей Беларуси.