Настройка DNS сервисов Wive-NG – часть 1 – Ad Blocking и фильтрация по домену

adblock

Adblock это механизм основная цель которого — заблокировать рекламу, malware и другой нежелательный контент. Также стала доступна контент-фильтрация на уровне DNS.

Чтобы включить Ad Block, необходимо перейти в раздел Services → DNS Services (Сервисы →Службы DNS) и включить Ad Blocking (Блокировка рекламы).

Успешному запуску сервиса Ad Block соответствует статус work . Не стоит пугаться, если сразу после включения длительное время сохраняется статус starting продолжительность процесса запуска сервиса обусловлена формированием списка фильтрации посредством синхронизации с наиболее полными и постоянно актуализируемыми базами данных, а также удаления дублирующих записей.

Adblock / ads blocking feature enabled

Включение функционала Ad Blocking

При успешном запуске сервиса, помимо статуса 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
blocked host by ad block using ads list

Пример ресурса, автоматически заблокированного в соответствии со списками запрещенных хостов Ad Block

В этом случае, необходимо создать пользовательское исключение:

allow rule of content filter

Разрешающее правило контент-фильтрации

где в поле Domain Name / Доменное имя (1) указывается домен, который необходимо разрешить, в поле Action / Действие (2) указывается действие — в данном случае Allow (разрешить). Далее добавляем созданное правило соответствующей кнопкой (3).

Вновь созданное правило появится в блоке DNS Content Filter Exceptions (Исключения блокировки рекламы).

Чтобы сохранить изменения, необходимо нажать Apply внизу страницы. Для того, чтобы правило вступило в силу, необходимо дождаться перехода Ad Block в статус work (изначально, статус будет started) либо перезагрузить устройство.

allow rule at user list of content filterint

Пример разрешающего правила в списке пользовательских исключений контент-фильтрации

После этого интересующий нас ресурс станет доступен. Из списка ads.conf адрес-исключение (в нашем случае news.gnezdo.ru) исчезнет.

ads host unblocked by user allow rule

После добавления разрешающего правила ресурс вновь доступен

– Что делать, если нужно заблокировать конкретный домен?

Блокировка ресурсов по доменному имени производится также с помощью пользовательских правил 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 и других ухищрений).

redirect to local dns

Включение переадресации всех запросов на локальный DNS

Список всех пользовательских исключений хранится в файле /etc/dnsmasq.d/userblock.conf

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.