Unbound и реклама

Приветствую!
Для блокировки интернет-рекламы используются разные механизмы:

  1. Локальная блокировка с помощью записей в hosts файл;
  2. Локальная блокировка в браузере с помощью плагинов
  3. Блокировка в локальной сети с помощью прокси-сервера
  4. Блокировка с помощью стороннего DNS сервера

Мы реализуем блокировку с помощью нашего установленного DNS сервера Unbound с помощью создания локальной зоны.

Дано:

  1. Freebsd 12.0
  2. Unbound (настроенный и работающий)
  3. wget (нужен для скачивания новых списков, можно обойтись fetch)

Создаем скрипт для скачивания и обработки списка блокировок:

# vi /home/username/adsblock_unbound.sh

Следующего содержания:

#!/bin/sh
# Скачиваем список
wget https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/fakenews-gambling/hosts
# Форматируем список под нашу задачу
cat hosts | grep '^0\.0\.0\.0' | awk '{print "local-zone: \""$2"\" redirect\nlocal-data: \""$2" A 0.0.0.0\""}' > ad.conf
# Добавляем необходимую директиву в будущий конфигурационный файл
echo "server:" > ads.conf
# Заполняем конфигурационный файл значениями со 2-го шага
cat ad.conf >> ads.conf
# Перемещаем конфигурационный файл в рабочую директорию Unbound
mv ads.conf /var/unbound/ads.conf
# Прибираемся за собой
rm hosts ad.conf
# Перезапускаем Unbound
service local_unbound restart

Редактируем конфигурационный файл Unbound:

# vi /etc/unbound/unbound.conf

Вписываем последней строкой инклюд нашего нового конфигурационного файла:

include: /var/unbound/ads.conf

Настраиваем запуск скрипта через cron по воскресеньям:

# crontab -e
#Update ADblocklist for Unbound
2       8       7       *       *       /home/vino/scripts/adsblock_unbound.sh

Дергаем наш скрипт:

/home/username/adsblock_unbound.sh

Видим, что все отработалось нормально, Unbound перезапустился без ошибок, новый конфигурационный файл создался:

# ll /var/unbound/ads.conf
-rw-r--r--  1 root  wheel  3583298 25 февр. 15:43 /var/unbound/ads.conf

Проверим:

# ping ad.liveinternet.ru
PING ad.liveinternet.ru (0.0.0.0): 56 data bytes

Ну как бы и все, не очень изящное решение, но имеет право на жизнь:)
Всем удачи!

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Комментарии: 1
  1. Glafir

    Как всегда во фре всё просто и со вкусом!
    Всё работает!
    unbound легче настраивается, чем тот же bind.

Добавить комментарий

:) :D :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.