admin / 09.06.2018
.
Содержание
Mikrotik — Правильная блокировка ресурсов по доменному имени
Знаете, я не поклонник блокировки сайтов на роутере, который предназначен для более серьезных задач. Это все равно что забивать гвоздь ковшом трактора. Но тем не менее иногда просто нет другого выхода. Представьте контору с 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
Ну вот как то так, хочется лишь позлорадствовать в конце. Хотите стать специалистами? Научитесь доводить свои идеи и мысли, до своего логического завершения. И все обязательно получится 😉
При использовании материалов ссылка на автора и источник ОБЯЗАТЕЛЬНЫ!
Автор: Григорьев Дмитрий (Inlarion) (C) 26.06.2013
Теги: Mikrotik, Микротик, firewall, запретить vkontake, заблокировать контакт, заблокировать одноклассники, запретить одноклассники.
Это сервис, который выполняет одну-единственную функцию — генерирует скрипт для маршрутизаторов MikroTik (Router OS), импортируя который, производится блокировка «рекламных» (и не только) доменов на основании как публичных, так и указанных вами хост-листов.
До безобразия просто — все DNS запросы доменов, которые проходят через маршрутизатор (если он указан первым DNS сервером) в случае соответствия с «рекламным» — перенаправляются, например, на (локальный хост).
У меня не работает / перестало работать
Если ранее всё работало как надо, и внезапно перестало — то вероятнее всего это произошло по причине обновления логики работы скрипта. Поддержки старых версий нет, поэтому — просто обнови скрипт в маршрутизаторе (возьми его обновленную версию прямо с этой страницы, его исходник чуть ниже). Во всех остальных случаях — есть смысл попытаться оставить комментарий у этого поста в уютном блоге с подробным описанием что ты пытался сделать, каким образом, и что получилось в итоге.
Более чем просто — необходимо добавить ( → → ) указанный выше скрипт, а так же добавить задание в планировщик ( → → ) для его периодического запуска. Если если вы задали имя скрипта , то в планировщике в поле укажите: . Права доступа: .
В данный момент каждый запрашиваемый (внешний) ресурс кэшируется на 600 секунд. Всё остальное — обрабатывается в реалтайме.
Ограничения хоть и носят больше формальный характер, но всё таки они есть:
На данный момент — да.
Но если потребуется дополнительный функционал — пишите здесь.
Так как перед импортированием скрипта потребуется уничтожить все имеющиеся маршруты. Вы можете задать служебные (ваши) маршруты предварительно и они будут включены в итоговый скрипт. Таким образом ваши маршруты будут сохранены.
Мы используем открытые и обновляемые источники, указанные выше. Более того, вы можете указать свои источники (записи в которых имеют формат «») доступные «извне» по протоколам: , , .
Попробуйте выполнить в консоли и проанализировать вывод. Работоспособность скрипта была протестирована на .
Указанный вами адрес должен отвечать кодом 2xx (или 3xx — но не больше двух редиректов). Если при соблюдении этих условий он всё равно не обрабатывается, пожалуйста, напиши об этом вот тут.
Данный «сервис» распространяется под лицензией MIT и исходники парсера находятся в общем доступе. Тебе остается только скачать, настроить и запустить его на своем ресурсе подконтрольном только тебе.
Очень часто руководители компаний просят предоставить статистику посещений сайтов своими сотрудниками. Этот вопрос легко решается при наличии развитой ИТ-инфраструктуры, путем установки дополнительного прокси сервера и организации на нем сбора статистики. Но что делать компаниям, которые не имеют или не готовы раздувать свою инфраструктуру «еще одной единицей» техники? В этой статье мы покажем пример использования сил только одного маршрутизатора mikrotik для решения задачи по сбору статистики посещений. Отчеты мы предлагаем формировать с помощью небольшой утилиты под windows — WebProxy-Log.
Далее по шагам:
— Открыть свой Mikrotik через Winbox.
— Зайти в IP => Web Proxy.
— Вкладка General.
— Установить галку рядом с Enabled.
— Указать порт 8080.
— Параметр Cache Administrator: на webmaster.
— Параметр Max. Cache Size: на unlimited.
— Параметр Max Cache Object Size: на 2048.
— Установить галку рядом с Cache On Disk.
— Параметр Max. Client Connections: на 600.
— Параметр Max. Server Connections: на 600.
— Параметр Max Fresh Time: оставить 3d 00:00:00.
— Параметр Cache Hit DSCP (TOS): оставить 4.
— Параметр Cache Path: на primary-master.
Нажимаем OK.
— Далее заходим в System => Logging.
— Вкладка Action.
— Нажимаем на +.
— Name: изменяем на WebProxyLog.
— Type: изменяем на remote.
— Remote Address: пишем адрес компьютера на котором установлена программа WebProxy-Log.
— Remote Port: оставляем 514 (порт udp).
— Нажимаем OK.
После чего наша настройка отразится во вкладке Action.
Переходим во вкладку Rules
— Нажимаем на +.
— Topics: выбираем web-proxy.
— Prefix: пишем Proxy.
— Action: выбираем WebProxyLog.
— Нажимаем OK.
Т. к. mikrotik при формировании логов делает очень много записей которые нам не нужны, мы добавим исключения.
Добавим аналогично web-proxy правило со значением! debug (знак! определяет исключение).
После чего наша настройка отразится во вкладке Rules.
Теперь открываем New Termenal и пишем правило для NAT:
— /ip firewall nat
add action=redirect chain=dstnat comment=«Redirect port 80 request to Web Proxy» disabled=no dst-port=80 protocol=tcp to-ports=8080
— Открываем UDP порт под номером 514.
— chain=dstnat protocol=udp dst-port=514 action=dst-natto-addresses=192.168.0.200to-ports=514
Настройка Mikrotik завершена.
— Скачиваем программу WebProxy-Log.
https://code.google.com/p/webproxy-log/
— Устанавливаем и запускаем программу.
— В окне General settings указываем IP address: 192.168.0.200 (адрес компьютера).
— UDP Port: указываем 514.
— Buffer: указываем 400.
— Write log to: Указываем путь на каталог, где будет лежать файл журнала.
— Import from: Указываем путь на каталог откуда будет импортироваться файл журнала.
— Мои пути:
D:\Documents and Settings\god\Рабочий стол\
D:\Documents and Settings\god\Рабочий стол\New Folder
— DB location: этот путь мы оставляем по умолчанию.
— Устанавливаем галочку на Use insecure import.
— Устанавливаем галочку на Optimize database after log import.
— Нажимаем Apply.
— Далее заходим в File => Import logs.
— Снимаем галочку на Archive imported *.log files.
— Выбираем путь к файлу.
— Нажимаем Import.
— Соглашаемся со всем.
— Выбираем IP адрес в Select user:
— Выбираем дату с какого по какое в Select date range:
— Нажимаем кнопку Generate.
Получаем статистику, как показано ниже:
.
.
FILED UNDER : IT