В этой инструкции вы узнаете, как заблокировать любой сайт в роутере MikroTik, социальную сеть одноклассники, вконтакте и т.п.
В MikroTik RouterOS, начиная с версии 6.36, появилась возможность указывать DNS-имена сайтов в адрес-листах, а роутер сам определяет их IP-адреса или диапазоны IP-адресов. Поэтому процесс блокировки сайтов с помощью фаервола существенно упростился.
В RouterOS 6.36 и выше откройте меню NewTerminal и выполните следующие команды для блокировки сайтов:
Cписок запрещенных сайтов можно редактировать в меню IP - Firewall на вкладке Address Lists.
Правило блокировки находится в меню IP - Firewall на вкладке Filter Rules.
RouterOS по имени сайта неплохо определяет диапазоны IP-адресов, но не идеально. Мне не удалось с помощью данного способа заблокировать сайты facebook.com и instagram.com, поскольку MikroTik нашел не все необходимые диапазоны IP-адресов. Пришлось вручную найти необходимые IP-адреса и добавить их. Как это сделать, написано ниже.
Фаервол позволяет заблокировать сайт по его IP-адресу. Узнать IP-адрес сайта можно в Windows, набрав в консоли команду nslookup имя сайта, например nslookup vk.com.
Чтобы выполнить команду nslookup в маршрутизаторе MikroTik, откройте меню New Terminal и выполните команду-аналог put [:resolve vk.com]
Сайты социальных сетей имеют много серверов с разными IP-адресами и вышеуказанные команды могут не показать адреса всех серверов. Поэтому лучше всего с помощью онлайн сервисов whois узнать, какие сети принадлежат данной социальной сети. Например, Vkontakte Ltd принадлежит сеть 87.240.128.0/18 и 93.186.224.0/22.
В поиске IP-адресов также поможет сервис bgp.he.net
После того, как мы узнали нужные нам IP-адреса, выполните в терминале MikroTik следующие команды:
Блокирование социальных сетей довольно трудоемкий процесс, поскольку социальные сети открывают дубликаты своих сайтов с другими именами и IP адресами серверов. Продвинутые пользователи обходят ограничения еще с помощью сайтов анонимайзеров. Поэтому блокируя доступ к социальным сетям, вам также придется выискивать сайты анонимайзеры и тоже их блокировать.
Сейчас в интернете много сайтов используют защищенный протокол https, который шифрует данные. Поэтому контент таких сайтов очень сложно фильтровать. В MikroTik RouterOS, начиная с версии 6.41.1, появилась возможность блокировать https-сайты (TLS трафик) с помощью расширения TLS SNI, называемого «TLS-HOST»
Например, чтобы заблокировать сайт youtube.com, выполните в терминале MikroTik следующие команды:
В параметре tls-host можно указывать имена сайтов, составленных с использованием синтаксиса GLOB. Этот синтаксис используют для создания подстановочных знаков в имени сайта.
Обратите внимание, что если фрейм TLS handshake будет фрагментирован на несколько TCP сегментов (пакетов), то невозможно будет сопоставить имя сайта и заблокировать его.
Заблокировать доступ к сайту можно также, создав статическую DNS запись с названием сайта и несуществующим IP адресом для него, например 127.0.0.1. Перед именем сайта бывает автоматически приписывается www, поэтому нужно создавать две записи, например odnoklassniki.ru и www.odnoklassniki.ru
Откройте меню NewTerminal и выполните следующие команды для блокировки одноклассников:
У пользователей заблокированные сайты еще будут открываться некоторое время, потому что на компьютерах есть DNS кэш, в котором временно хранятся имена посещенных сайтов и их IP адреса. Для очистки DNS кэша на компьютере нужно запустить командную строку cmd и ввести команду ipconfig /flushdns.
Такой способ блокирования сайтов будет работать только в том случае, если пользователь использует DNS сервер центрального роутера MikroTik. Если пользователь настроит вручную другой адрес DNS сервера, то ограничение работать не будет. Поэтому все DNS запросы необходимо завернуть на наш роутер. Для этого откройте меню New Terminal и выполните следующие команды:
Далее перейдите в меню IP - Firewall и на вкладке NAT переместите созданные правила вверх. Теперь все DNS запросы будут идти через наш роутер.
Закрыть доступ к сайтам можно также с использованием прозрачного proxy-сервера MikroTik.
Разрешим использование прокси-сервера и настроим его. Для этого откройте New Terminal и выполните следующие команды:
Делаем proxy-сервер прозрачным:
Закрываем доступ к прокси-серверу со стороны интернета:
Вводим команду блокировки сайта:
Відгуки про статтю
Решение банально простое, снять галочку Allow Remote Request в разделе DNS Setting и в разделе DHCP Server указать реальные DNS провайдера.
Как заблокировать полностью все потоки видео
Пробовал все способы описанные выше, все равно работает. Как и https://twitter.com и https://instagram.com
Блокировал 173.194.113.192/29, 173.194.113.200/31 и 173.194.113.206
/ip firewall layer7-protocol add name=block_site regexp="^.+(youtube.com).*$"
/ip firewall filter add chain=forward action=reject reject-with=tcp-reset protocol=tcp src-address=192.168.88.0/24 layer7-protocol=block_site disabled=no
vk и ok закрыл как написано в статье, а с fasebook проблема. подскажите пожалуйста в что может бить. спасибо.