Что это такое?

Это сервис, который выполняет одну-единственную функцию — генерирует скрипт для маршрутизаторов MikroTik (Router OS), импортируя который, производится блокировка "рекламных" (и не только) доменов на основании как публичных, так и указанных вами хост-листов.

Как блокируются?

До безобразия просто — все DNS запросы доменов, которые проходят через маршрутизатор (если он указан первым DNS сервером) в случае соответствия с "рекламным" — перенаправляются, например, на 127.0.0.1 (локальный хост).

У МЕНЯ НЕ РАБОТАЕТ!!1

Если ранее всё работало как надо, и внезапно перестало — то вероятнее всего это произошло по причине обновления логики работы скрипта. Поддержки старых версий нет, поэтому — просто обнови скрипт в маршрутизаторе (возьми его обновленную версию прямо с этой страницы, его исходник чуть ниже). Во всех остальных случаях — есть смысл попытаться оставить комментарий у этого поста в уютном блоге с подробным описанием что ты пытался сделать, каким образом, и что получилось в итоге.


Источники:









При необходимости можете указать свои источники, по одному на строку (общий лимит составляет 8 источников):

Адрес перенаправления:

Укажите IP (v4) адрес, куда перенаправлять запросы:

Лимит записей:

Укажите максимальное количество возвращаемых записей:

Свои маршруты:

Указывайте в формате файла хостов %ip_address% %host_name% — одна строка для одного хоста:

Функционал "своих маршрутов" более не востребован. Начиная с версии 0.1.0 указанные пользователем маршруты при обновлении списка хостов не затрагиваются (спасибо хабраюзеру @chelaxe).

Обязательно обновите свои скрипты для совместимости с версией 0.1.0 и выше, поддержка старых версий вестись не будет!

Исключения:

Можете указать те хосты, которые необходимо исключить из итогового скрипта, одна строка для одного хоста:

Строка запроса:

http://..

Скрипт для маршрутизатора:

http://..

Как мне всё это дело прикрутить к моему MikroTik-у?

Более чем просто — необходимо добавить (SystemScriptsAdd New) указанный выше скрипт, а так же добавить задание в планировщик (SystemSchedulerAdd New) для его периодического запуска. Если если вы задали имя скрипта AutoADBlock, то в планировщике в поле On Event укажите: /system script run AutoADBlock. Права доступа: [X] Read [X] Write [X] Policy [X] Test.

Выдача кэшируется?

В данный момент каждый запрашиваемый (внешний) ресурс кэшируется на 600 секунд. Всё остальное — обрабатывается в реалтайме.

Какие ещё есть ограничения?

Ограничения носят больше формальный характер, но всё таки они есть:

Применимо только к маршрутизаторам MikroTik (RouterOS)?

На данный момент — да. Но если потребуется дополнительный функционал — пишите в хабраличку.

У меня в таблице DNS есть нужные мне ресурсы. Как быть с ними?

Так как перед импортированием скрипта потребуется уничтожить все имеющиеся маршруты. Вы можете задать служебные (ваши) маршруты предварительно и они будут включены в итоговый скрипт. Таким образом ваши маршруты будут сохранены.

Откуда источники хостов?

Мы используем открытые и обновляемые источники, указанные выше. Более того, вы можете указать свои источники (записи в которых имеют формат "%ip_address% %host_name%") доступные "извне" по протоку http, https или ftp.

Запускаю указанный выше скрипт и ничего не происходит. Что делать?

Попробуйте выполнить в консоли /system script print from=%имя_скрипта% и проанализировать вывод. Работоспособность скрипта была протестирована на RouterOS v6.30.2.

Я указал свой источник, но он не обрабатывается. Почему?

Указанный вами адрес должен отвечать кодом 2xx (или 3xx — но не больше двух редиректов). Если при соблюдении этих условий он всё равно не обрабатывается, пожалуйста, напиши об этом на адрес электропочты, указанный в самом низу этой страницы.

Я не хочу, чтоб кто-то имел возможность выполнять произвольный код на моих маршрутизаторах. Но идея мне нравится. Что мне делать?

Данный "сервис" распространяется под лицензией MIT и исходники парсера находятся в общем доступе. Тебе остается только скачать, настроить и запустить его на своем ресурсе подконтрольном только тебе.

My fucking blog | Email me