Возникла необходимость заблокировать Youtube в сети, где шлюзом выступает роутер MikroTik BR750Gr3. Первоначальные настройки роутера выполнены по этой инструкции.
Освоить MikroTik Вы можете с помощью онлайн-куса «Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
Информация по блокировке взята отсюда.
В сокращенном виде терминальных команд это выглядит так:
1 2 3 4 5 6 |
/ip firewall mangle add action=mark-connection chain=prerouting protocol=udp dst-port=53 connection-mark=no-mark layer7-protocol=youtube new-connection-mark=youtube_conn passthrough=yes add action=mark-packet chain=prerouting connectionmark=youtube_conn new-packet-mark=youtube_packet /ip firewall filter add action=drop chain=forward packet-mark=youtube_packet add action=drop chain=input packet-mark=youtube_packet |
(Нажимаем в роутере New Terminal и вводим построчно команды)
Принцип действия таков: мы маркируем соединения и пакеты, относящиеся к ютубу, затем правилами фаервола их блокируем.
Для тех, кто всё понял, дальше может не читать.
В микротик рекомендуют такой способ вместо одиночного правила блокировки т.к. он снижает нагрузку на оборудование.
Помимо настроек через команды, написанные выше, настройки можно выполнить через графический интерфейс. Рассмотрим этот способ подробнее.
Подключаемся к роутеру через WinBox.
Переходим по пути меню: IP>>Firewall>>Layer7 Protocols
Нажимаем синий плюсик и создаем новое правило.
В поле Name пишем имя youtube.
В поле Regexp: вводим значение для идентификации ютуба ^.+(youtube).*$
* если необходимо заблокировать социальные сети или другие ресурсы, то необходимо создать правила с другими идентификаторами (доменными именами)
1 |
/ip firewall layer7-protocol add name=youtube regexp="^.+(youtube).*\$" |
Создадим два правила для маркировки соединений и пакетов.
Переходим на вкладку Mangle. Нажимаем синий плюсик.
В открывшемся окне на вкладке General вводим значения, как на скриншоте ниже:
Chain: prerouting.
Src.Address: 192.168.x.x (адрес ПК, у которого нужно заблокировать доступ на ютуб, src – исходящий адрес, dst – адрес назначеня).
Protocol: udp.
Dst.port: 53.
Connection Mark: no-mark
Нажимаем кнопку «Apply».
Переходим на вкладку Advanced.
Layer7 Protocol: youtube
Переходим на вкладку Action, выполняем настройки.
Action: mark connection
New Connection Mark: youtube_conn
Passthrough – активируем галочкой.Нажимаем Apply или OK.
Этим правилом мы будем маркировать все соединения с ютуб именем youtube_conn.
1 2 |
/ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark dst-port=53 layer7-protocol=youtube new-connection-mark=youtube_conn passthrough=yes protocol=udp src-address=192.168.0.79 |
Создаем еще одно правило на вкладке Mangle нажав синий плюсик.В открывшемся окне, на вкладке General вводим значения, как на скриншоте ниже:
Chain: prerouting.
Src.Address: 192.168.x.x (адрес ПК, у которого нужно заблокировать доступ на ютуб).
Connection Mark: youtube_conn.
Нажимаем кнопку «Apply».Переходим на вкладку Action, выполняем настройки.
Action: mark packet
New Connection Mark: youtube_packet
Passthrough – активируем галочкой.Нажимаем Apply или OK.
Этим правилом мы будем маркировать все пакеты ютуба.
1 2 |
/ip firewall mangle add action=mark-packet chain=prerouting connection-mark=youtube_conn new-packet-mark=youtube_packet passthrough=yes src-address=192.168.0.79 |
Получилось два правила.
Переходим на вкладку Filter Rules. Создаем правило, нажав плюс.
Выполняем настройки. На вкладке General:
Chain: forward.
Packet Mark: youtube_packet.Переходим на вкладку Action.
Action: drop
Можно добавить комментарий к правилу.Нажимаем Apply или ОК. Правило готово.
1 |
/ip firewall filter add action=drop chain=forward comment="YouTube blocking" packet-mark=youtube_packet |
Создадим еще одно правило в этом же разделе (Filter Rules).
На вкладке General отмечаем:
Chain: input
Packet Mark: youtube_packet
Переходим на вкладку Action.
Action: drop
Добавляем комментарий.
Нажимаем Apply, чтоб сохранить правило.
1 |
/ip firewall filter add action=drop chain=input comment="YouTube blocking" packet-mark=youtube_packet |
В итоге получились два правила.После этих действий YouTube на компьютере перестал работать.
Блокировка ресурса для нескольких пользователей.
Если нужно заблокировать доступ на YouTube для большого числа пользователей создадим группу пользователей и применим правила к ней.
Переходим по пути: IP>>Firewall>>Address Lists
Нажимаем синий плюсик.
В открывшемся окне New Firewall Address List пишем название группы и диапазон необходимых IP-адресов. Нажимаем ОК.
1 |
/ip firewall address-list add address=192.168.0.10-192.168.0.100 list=GR2 |
Если работает DHCP, то правило будет применяться только к этому диапазону IP, нужно учитывать этот нюанс. Либо привязать MAC адрес пользователя к определенному IP, и ему всегда будет раздаваться один и тот же IP либо прописать у всех пользователей сети статические IP адреса. Или какие-то другие варианты.
Переходим на вкладку Mangle, выбираем по очереди два наших созданных ранее правила по маркировке соединений и пакетов. В разделе General из строчки Src.Address убираем IP адрес, а на вкладке Advanced добавляем в строчке Src.Address List созданную группу. ОК.
1 2 3 |
/ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark dst-port=53 layer7-protocol=youtube new-connection-mark=youtube_conn passthrough=yes protocol=udp src-address-list=GR2 add action=mark-packet chain=prerouting connection-mark=youtube_conn new-packet-mark=youtube_packet passthrough=yes src-address-list=GR2 |
После этих действий YouTube заблокируется у группы пользователей с перечисленным диапазоном IP адресов.
Иногда может потребоваться некоторое время, чтоб правило начало действовать.
Если есть какие-то другие запрещающие правила в списке фаервола, то данные правила лучше разместить выше них (или по обстоятельствам, в соответствии с тем, что и как блокируется).
Разрешение доступа на YouTube определенным пользователям и запрет всем остальным.
Если нужно заблокировать ютуб всем пользователям и только определенным оставить, создаем группу GR3, в которою добавляем IP адреса пользователей, которым нужно разрешить доступ в YouTube.
1 |
/ip firewall address-list add address=192.168.0.70-192.168.0.80 list=GR3 |
Если нужны какие-то определенные IP-адреса, помимо перечисленного диапазона, то создаем еще один объект в разделе Address Lists, называем его точно так же и добавляем в него нужный IP.
1 |
/ip firewall address-list add list=GR3 address=192.168.0.60 |
Таким способом добавляем все нужные адреса.
Создаем группу GR5, в которую добавляем все IP-адреса сети.
1 |
/ip firewall address-list add address=192.168.0.2-192.168.0.250 list=GR5 |
В двух правилах на вкладке Mangle в разделе Advanced указываем созданную группу со всеми IP адресами. OK.
1 2 3 |
/ip firewall mangle add action=mark-connection chain=prerouting connection-mark=no-mark dst-port=53 layer7-protocol=youtube new-connection-mark=youtube_conn passthrough=yes protocol=udp src-address-list=GR5 add action=mark-packet chain=prerouting connection-mark=youtube_conn new-packet-mark=youtube_packet passthrough=yes src-address-list=GR5 |
В двух правилах на вкладке Firewall в разделе General указываем диапазон всех IP-адресов сети в поле Src.Address.
Переходим на вкладку Advanced и в поле Src.Address выбираем группу пользователей, которым доступ разрешен. Важный момент – отмечаем значок «!» в квадратике слева от выбранной группы. Он означает инверсию действия, т.е. вместо запрещения разрешение. Нажимаем ОК.
1 2 3 |
/ip firewall filter add action=drop chain=forward comment="YouTube blocking forward" packet-mark=youtube_packet src-address=192.168.0.2-192.168.0.250 src-address-list=!GR3 add action=drop chain=input comment="YouTube blocking input" packet-mark=youtube_packet src-address=192.168.0.2-192.168.0.250 src-address-list=!GR3 |
Смысл всех этих действий таков: Соединения и пакеты Ютуба будут маркироваться для всех пользователей сети. Фильтр фаервола будет обрывать (drop) маркированные соединения и пакеты всем пользователям, за исключением пользователей группы GR3, для которых действие наоборот, т.е. разрешающее.
Вероятно, что есть и другие варианты для решения вопроса блокировки ресурса через MikroTik. Представленная схема проверена и работает в сети нашей организации. Обладая вышеописанными знаниями по маркировке и работе с группами можно создавать и комбинировать правила для блокировки/разрешения доступа к различным ресурсам интернета разным пользователям различными вариантами.
Освоить MikroTik Вы можете с помощью онлайн-куса «Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
Забыли сначала regexp указать:
/ip firewall layer7-protocol
add name=»youtube» regexp=»^.+(youtube).*$»
Точно, спасибо. Правила сперва были созданы в графическом интерфейсе, поэтому через командную строку забыл это упомянуть.
А можно добавить в эти правила ещё сайты ? Или для каждого нужно создовать все заново ?
У нас в сети пока только ютуб потребовалось заблокировать, другие сайты не проверял, но скорее всего нужно создавать отдельные правила.
Блокировка работает, если открывать через браузер. Но вот интересный момент. На Android в браузере тоже блок, а вот «стандартное» приложение Youtube не блокируется, видео в нём можно смотреть. Причём вижу, что обращение к 53 порту есть, лог блокировки тоже идет, а видео в приложении всё равно проигрываются. Куда копать?
На андройде не проверяли, по этому я Вам не подскажу в этом вопросе. При наличии возможности посмотрю где оно пропускает.
Спасибо. Есть у меня подозрение, что через 443 порт заворачивает.
На версии 6.46.4 перестало ловить до этого все прекрасно было… в чем проблема может быть?
Еще не обновлялись до 6.46, пока все прекрасно работает, решили не трогать. Не подскажу в чем лаг, не разбирался еще, в прошивке много изменений.
На новых версиях не один из найденных на просторах интернета способов блокировки Ютуба, включая вышеизложенный не работает.
Попробуйте черещ скрипт:
:foreach i in=[/ip dns cache all find where (name~»youtube» || name~»ytimg» || name=»youtu.be») && (type=»A») ] do={
:local tmpAddress [/ip dns cache get $i address];
delay delay-time=10ms
#prevent script from using all cpu time
:if ( [/ip firewall address-list find where address=$tmpAddress] = «») do={
:local cacheName [/ip dns cache get $i name] ;
:log info («added entry: $cacheName $tmpAddress»);
/ip firewall address-list add address=$tmpAddress list=BLOCK comment=$cacheName;
}
}
Ну и не забудьте создать запрещающее правило для address-list BLOCK
Здравствуйте. Очень надо ограничить скорость работы ютуба. Один из членов семьи очень любит открыть 1000 и одну вкладку и просматривать видео на полной скорости интернета, что аж за считанные дни весь лимит исчерпывает, не бесплатного интернета. Надо, чтобы скорость была хотя бы низкая для ютуба, чтобы видео просматривалось в качестве 144, т.е. в самом низком качестве. И тогда инета хватит на полный месяц, до следующей абонентской платы.
Воспользуйтесь вкладкой меню Queues ->> Simple Queues. Создайте правило для IP адреса того кто перегружает канал и укажите скорость загрузки и отдачи. Предварительно привяжите MAC адрес его устройства к IP в DHCP Server ->> Leases. Ведь скорее всего адресация в Вашей сети динамическая.
Работает на 6.48.1, сначала не работало, после перезагрузки роутера заработало
В версии 6.48.1 отрабатывает штатно, зря вы написали о том что работает только на старых версиях.
У меня заработало только после перезагрузки роутера
Возможно в прошивке 6.48.1 что-то пофиксили. Пока нет возможности проверить.
Попробовал по этому варианту заблокировать youtube в итоге повесил весь интернет на работе, 1с и IP телефонию не работал и глючил пока не удалил эти правила. Но одно точно youtube не работал ))))
Спасибо за способ! Отлично работает на версии 4.48.5, но необходимо перезагрузить устройство
возможно версия прошивки 6.48.5 которая long-term? (а не 4?)
Подскажите пожалуйста. После Микротика у меня идет роутер Tenda. Tenda работает в режиме AP, т.е. все что подключено к Tenda имеет ip адреса как у Микротик, т.е. одна сеть. Но фильтры не работают. Работает фильтр только на компьютере, который непосредственно подключен к Микротику.