MikroTik StopAD Сделаем рекламы чуть меньше

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

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

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

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

У меня не работает / перестало работать

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


Источники

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

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

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

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

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

Исключения

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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