Блокировка социальных сетей в роутерах Mikrotik при помощи Layer7 Protocols

Если вы хотите закрыть один или несколько сайтов для своих домашних — то представленное ниже хоть и рабочее решение, но подобные задачи можно решать гораздо более простым методом. Данная же инструкция для небольших (или больших) офисов с большим количеством компьютеров и более гибкими задачами.
Будем рассматривать задачу блокировки исключительно при помощи Mangle и Layer7

Шаг первый
Создаем регулярное выражение под конкретную социальную сеть. (вы меняете на то что вам нужно)
Для примера будет взят ресурс youtube
На картинке цифрами обозначен порядок действий.
Блокировка социальных сетей в роутерах Mikrotik

Выбираем «IP» (1) -> «Firewall» (2) -> «Layer7 Protocols» (3) -> Нажимаем на синий плюсик (5) -> В поле «Name» вводим произвольное имя, мы выбрали «youtube» -> В окно «Regexp:» вводим следующую регулярку — ^.+(youtube).*$
(На картинке нет шага под номером 4 — провтыкал когда готовил изображение. А когда заметил — было лень переделывать.)
То же самое можно сделать через терминал
/ip firewall layer7-protocol
add name=youtube regexp="^.+(youtube).*\$"

Шаг второй
Создадим пару правил для маркировки нужных нам пакетов.
Наша задача — «выхватить» и пометить из общего потока запросов идущих к DNS серверу соединения с просьбой «разрезолвить» адреса содержащие в своем теле сочетание букв «youtube»
(заморочено и заумно получилось, но можно не читать, а просто делать.)
Блокировка социальных сетей в роутерах Mikrotik
Переходим на вкладку «Mangle» и нажимаем на плюсик

Вкладка «General»
Блокировка социальных сетей в роутерах Mikrotik
Выбираем: chain -«prerouting», протокол — «udp», destination port — «53», connection mark — «no-mark»

Вкладка «Advanced»
Блокировка социальных сетей в роутерах Mikrotik
Layer7 Protocol — в выпадающем окне выбираем имя созданного нами правила, в нашем случае «youtube»

Вкладка «Action»
Блокировка социальных сетей в роутерах Mikrotik
Action — «mark connection», new connection mark — произвольное имя — мы выбрали «youtube_conn»
Нажимаем «OK» — с первым правилом мы справились. (можно еще нажать на кнопку «Comment» — и написать произвольный комментарий, что бы потом через пол года не смотреть тупо и не пытаться вспомнить — что же это я хотел тут сделать. Особенно когда правил будет не один десяток. Но это так, по желанию).

Теперь из выбранных соединений нам нужно создать более узкий фильтр — выбрать нужные нам пакеты
Снова на вкладке «Mangle» нажимаем на плюсик и создаем второе правило
Блокировка социальных сетей в роутерах Mikrotik
На вкладке «General» выбираем:
Chain — «prerouting», Connection Mark — выбираем те пакеты, которые мы промаркировали в первом правиле — в нашем случае «youtube_conn»
Блокировка социальных сетей в роутерах Mikrotik
На вкладке Action выбираем:
Action — mark packet, new packet mark — произвольное имя — мы выбрали «youtube_packet»
Нажимаем «OK» —  и второе правило мы победили.
В итоге должно получиться что то похожее как на картинке ниже.
Блокировка социальных сетей в роутерах Mikrotik

Шаг третий
Создаем правило блокировки пакетов которые мы нашли и пометили выше.
Переходим на вкладку «Filter Rules»
General
Нажимаем на плюсик и создаем новое правило
Блокировка социальных сетей в роутерах Mikrotik
Chain — forward, packet mark — выбираем фильтр пакетов который создали ранее — «youtube_packet»
Блокировка социальных сетей в роутерах Mikrotik
Вкладка Action выбираем
Action — «drop»
Нажимаем «OK»
Если все прошло по плану — появится соответствующе правило.
Пробуем зайти на youtube и убедиться что зайти мы не можем.
(тут хочу обратить внимание — есть один нюанс- если вы прежде чем писать правила заходили на youtube и сейчас написав и активировав правила фильтрации проверяете — и с печалью видите что по прежнему заходите на сайты youtubа — все не так плохо.
Нужно для начала зайти во вкладку Connections — и удалить текущие сессии. И все заработает. Или просто подождать некоторое время что бы сессия закрылась по таймауту)