Чистим интернет от назойливой рекламы (AD Blocker для MikroTik)

Данная статья является копией публикации на хабре (написанной мной же)

Данная статья является логическим завершением небольшой дискуссии с тов. vvzvlad, которая развернулась под топиком «Чистим домашний интернет от очень назойливой рекламы (Ad’s blocker для OpenWRT)«, где автор с помощью wget, sed и cron на OpenWRT успешно сливает файлы рекламных хостов, парсит и подсовывает dns-серверу dnsmasq.

Переадресовывая клиента при запросе «рекламного» домена, например, на loopback (127.0.0.1 — 127.255.255.255), вместо котента рекламы клиент получит благодатное «ничего» (разумеется, при условии, что у нас не работает локальный веб-сервер который слушает локалхост). Механизм фильтрации довольно старый и не лишен недостатков. Например, нельзя указать маски хостов (*.ad-domain.tld) или «вырезать» рекламу, баннеры которой хостятся на запрашиваемых ресурсах. Но зато не привязан к какому-то либо протоколу и довольно прост в эксплуатации. Более того, если его использовать, например, на домашнем или офисном маршрутизаторе, который используется в качестве DNS сервера, реклама успешно порежется на всех гаджетах, где IP нашей железки прописан первым в качестве DNS сервера.

Но что если у нас вместо роутера с кастомной прошивкой используется.. MikroTik (RouterOS), функционал которого накладывает некоторые ограничения? Под катом вы узнаете каким образом удалось успешно «сконвертировать» файл хостов в пригодный для него формат, как автоматизировать это дело и что для хабралюдей в качестве бонуса был создан небольшой сервис как раз для автоматизации этого процесса (маленький, абсолютно бесплатный и с открытыми исходниками).

Подробнее под катом

MikroTik — режем рекламу (ADBlock) с помощью DNS

У данного поста имеется продолжение, позволяющее автоматизировать и значительно упростить весь процесс, описанный в этой записи. Располагается оно по этой ссылке.

Прочитав пост тов. 4aba о том, как с помощью dnsmasq на прошитом роутере можно вполне успешно резать рекламные баннеры на всех устройствах, которые подключены к нашей точке доступа возник резонный вопрос — а можно ли реализовать аналогичное на маршрутизаторе Mikrotik hAP lite? Железка довольно таки достойная (650MHz @ RAM 32 Mb), но у нас нет полноценного linux-шелла на ней. Оказывается — можно, и результате было реализовано довольно простое, но эффективное решение.

Пришлось пойти немного другим путем, а именно — прописать статичные DNS маршруты, которые при запросе «рекламного домена» переадресовывали наш запрос на 127.0.0.1.

Списки «рекламных доменов» мы возьмем из открытых источников, таких как http://pgl.yoyo.org/adservers/ и https://adaway.org/hosts.txt (с легкостью можно изменить на любые другие), приведем их в подобающий вид и оформим в виде скрипта для нашего Mikrotik-а, чтоб с помощью одной команды все их ему и «скормить».
Подробнее под катом