Знаете, я не поклонник блокировки сайтов на роутере, который предназначен для более серьезных задач. Это все равно что забивать гвоздь ковшом трактора. Но тем не менее иногда просто нет другого выхода. Представьте контору с 5-50 машинами микротиком и больше ничего. Ах да, есть еще руководитель организации который платит за интернет, иногда даже по потребляемому трафику. И этот руководитель не хочет платить большие деньги за развлечения и отвлечения от работы сотрудников организации. И собственного опыта работы системным администратором знаю, что какой бы хороший интернет не был у сотрудника дома, его хлебом не корми, только дай залезть в контакт, одноклассники или порнухи посмотреть. Причем штрафные санкции со стороны начальства никого не пугают.
Так вот решил я задуматься над тем, как заблокировать нежелательный контент на микротике. Открыл поисковник и изучил множество способов, и пришел к выводу: что все что не делается под микротик, делается либо через ж... либо не до конца.
Основные проблемы:
Не рубит то что надо.
Рубит но не все.
Рубит, но половина сайтов перестает открываться.
Рубит, но нужно настраивать через WebProxy.
Настройку блокировки сайтов через WebProxy рассматривать не буду, т.к. это немного прошлый век.
Остановлюсь на рассмотрении основных ошибок, в примерах где начало было положено неплохое, но в конце все испортили.
Попробуем заблокировать: vk.com
Самое ужастное что можно было придумать это - аля:
/ip firewall filter add chain=forward protocol=tcp src-address=192.168.0.0/24 dst-address=87.240.143.244 action=drop
Помимо того что vk.com, vkontakte.ru, vkadre.ru имеет целых три жирных диапазона серверов, так еще случайность попадания на этот сервер крайне мала. Кроме того у контакта есть свой чудный api для встраивания комментариев на любые другие сайты.
Далее еще один пример, получше, но не совсем:
/ip firewall filter add chain=forward protocol=tcp src-address=192.168.0.0/24 content="vk.com" action=drop
И данное правило с параметром content убьет все пакеты в которых содержится vk.com, следовательно все страницы в интернете, где есть встроенный комментатор контакта, будут открываться по 2-5 мин (Зависит от браузера и количества повторных попыток) или вообще улетят по таймауту.
Такое же правило, но параметр content немного другой:
/ip firewall filter add chain=forward protocol=tcp src-address=192.168.0.0/24 content="Host: vk.com" action=drop
Приводит к тому же результату, пакеты дропаются, браузер пытается открыть повторно, пытается, пытается и забивает.
Два последних правила несомненно работают, только вот очень жаль, что при этом страдают сайты с иногда очень полезной информацией, которые имели неосторожность добавить на свои страницы комментарии вконтакте.
За эти 2-5 минут (разные браузеры) пользователь уже передумает ждать этот сайт, а у некоторых складывается иллюзия что инет глючит и работает через раз.
Жаль что люди которые учат данными примерами в интернете почти никогда толком не проверяют свою работу, идеи то хорошие, только вот незаконченные....
Итак, гвоздь программы : action=reject reject-with=tcp-reset
Просто нужно сообщить браузеру что запрашиваемый хост сбросил соединение, тогда браузер пропустит повторные попытки качать с данного хоста, следовательно страницы со встроенным vk открываются почти сразу.
Данное правило вызвало сообщение во фрейме о том что "Соединение закрыто удалённым сервером", при попытке открыть vk.com выдал тоже самое.
/ip firewall filter add chain=forward protocol=tcp src-address=192.168.0.0/24 content="vk.com" action=reject reject-with=tcp-reset
Это правило показало более культурную картинку во фрейме в стиле "контакт задумался", при открытии vk.com браузер предложил скачать файл default длинной в 0 байт :)
/ip firewall filter add chain=forward protocol=tcp src-address=192.168.0.0/24 content="Host: vk.com" action=reject reject-with=tcp-reset
Ну вот как то так, хочется лишь позлорадствовать в конце. Хотите стать специалистами? Научитесь доводить свои идеи и мысли, до своего логического завершения. И все обязательно получится ;)
/ip firewall filter
add action=drop chain=output content="Host: vk.com" protocol=tcp src-address-list=expopark
add action=reject chain=output content=*vk.com* protocol=tcp reject-with=tcp-reset src-address-list=expopark