Adblock это механизм основная цель которого — заблокировать рекламу, malware и другой нежелательный контент. Также стала доступна контент-фильтрация на уровне DNS.
Чтобы включить Ad Block, необходимо перейти в раздел Services → DNS Services (Сервисы →Службы DNS) и включить Ad Blocking (Блокировка рекламы).
Успешному запуску сервиса Ad Block соответствует статус work . Не стоит пугаться, если сразу после включения длительное время сохраняется статус starting — продолжительность процесса запуска сервиса обусловлена формированием списка фильтрации посредством синхронизации с наиболее полными и постоянно актуализируемыми базами данных, а также удаления дублирующих записей.
При успешном запуске сервиса, помимо статуса work в web-интерфейсе, в логе появится запись:
Jan 22 15:03:09 adblock: Get ad hosts lists from https://schakal.ru/hosts/alive_hosts_ru_com.txt Jan 22 15:03:11 adblock: Get ad hosts lists from http://winhelp2002.mvps.org/hosts.txt Jan 22 15:03:13 adblock: Get ad hosts lists from https://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext Jan 22 15:03:14 adblock: Get ad hosts lists from http://www.malwaredomainlist.com/hostslist/hosts.txt Jan 22 15:03:15 adblock: Filter records. Jan 22 15:03:42 adblock: Remove duplicated records. Jan 22 15:04:01 adblock: 66856 domains blocked by DNS. Jan 22 15:04:01 adblock: Next adblock update after 24h.
Из лога видно, с каких ресурсов была взята информация о вредоносных хостах, количество доменов, заблокированных посредством DNS. Также, сообщается, что период обновления списка — 24 часа.
В консоли сформированный список можно просмотреть следующим образом:
[Wive-NG-MT@]# cat /etc/dnsmasq.d/ads.conf
– Есть ли исключения из блокировок?
Да, в основном это счётчики, отключение которых препятствует сбору статистик для SEO, а также нередко искажает отображение страницы. Исключения на данный момент такие:
unblocklist="liveinternet.ru|counter.yadro.ru|^yadro.ru|top100.ru|mc.yandex.ru|metrika|openstat.net" unblocklist="$unblocklist|google-analytics.com|googletagmanager.com|^stats.g.doubleclick.net|clustrmaps.com"
– Что делать, если заблокировалось что-то нужное?
Предположим, после включения adblock перестали открываться какие-то используемые ресурсы, и вы обнаружили их в списке /etc/dnsmasq.d/ads.conf . Пример: если мы хотим просматривать сайт http://news.gnezdo.ru/ , то при возникновении проблем проверяем, не попал ли он в список блокировок командой:
[Wive-NG-MT@/]# cat /etc/dnsmasq.d/ads.conf | grep -i gnezdo
В этом случае, необходимо создать пользовательское исключение:
где в поле Domain Name / Доменное имя (1) указывается домен, который необходимо разрешить, в поле Action / Действие (2) указывается действие — в данном случае Allow (разрешить). Далее добавляем созданное правило соответствующей кнопкой (3).
Вновь созданное правило появится в блоке DNS Content Filter Exceptions (Исключения блокировки рекламы).
Чтобы сохранить изменения, необходимо нажать Apply внизу страницы. Для того, чтобы правило вступило в силу, необходимо дождаться перехода Ad Block в статус work (изначально, статус будет started) либо перезагрузить устройство.
После этого интересующий нас ресурс станет доступен. Из списка ads.conf адрес-исключение (в нашем случае news.gnezdo.ru) исчезнет.
– Что делать, если нужно заблокировать конкретный домен?
Блокировка ресурсов по доменному имени производится также с помощью пользовательских правил DNS Content Filter Exception (Исключения блокировки рекламы). Пример: мы хотим ограничить доступ к сайту e1.ru. По аналогии с предыдущим примером вводится целевое доменное имя, только в качестве действия вместо Allow выбираем Block (Блокировать). После вступления правила в силу доступ к сайту e1.ru прекратится, причем как по http, так и по https.
– Как заблокировать рекламу на странице, которая не заблокировалась автоматически?
Предположим, нам не нужно блокировать полностью доступ к сайту. Но реклама, которой заполнена страница, значительно мешает просмотру контента. Автоматически при включении ad block реклама никуда не исчезла, из чего делаем вывод, что в списках блокировок DNS нет адресов, которые являются поставщиками рекламных баннеров.
Чтобы избавиться от такой рекламы, достаточно посмотреть адреса-источники нежелательного контента и внести их в список DNS Content Filter Exception (Исключения блокировки рекламы) с действием Block. Например, если нам докучает Яндекс.Директ, то создание правила an.yandex.ru / Block решит проблему.
– Что делать, если пользователь пропишет DNS локально на своем устройстве для обхода блокировок?
В этом случае ранее заблокированный e1.ru вновь станет доступен. Чтобы избежать такой ситуации, следует включить редирект всех DNS запросов на локальный DNS роутера. Тогда все запросы будут обрабатываться в соответствии с блокировками, включенными на роутере (понятное дело, что подобный метод не защищает нас от VPN и других ухищрений).
Список всех пользовательских исключений хранится в файле /etc/dnsmasq.d/userblock.conf