Интеграция с DNS-сервером провайдера

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

Named fakezone generator

Генератор зон для named/bind9 для списка доменов, которые необходимо перекидывать на заглушку.

Это, возможно временный и неидеальный, но несколько более быстрый способ решения проблемы с фильтрацией HTTPS-ресурсов, меняющих IP адреса, чем реализация прокси/плагина для прокси, позволяющего фильтровать большие объёмы трафика с подменой сертификата или обхода DNSSEC в модуле xt_dnsmatch.
Вся эта схема рассчитана на использование на уже имеющемся и реально используемом абонентами/ревизором DNS-сервере провайдера. Устанавливать DNS-сервер bind/named на Carbon Reductor пока что не рекомендуется (возможно будет доступно из коробки позже).

Установка

Нам понадобятся:

  • git чтобы склонировать этот репозиторий
  • m4 чтобы генерировать записи из шаблона
  • сам bind9/named, предполагается, что он уже установлен

В случае CentOS 6 установка будет выглядеть следующим образом:

yum -y install git m4
git clone https://github.com/carbonsoft/named_fakezone_generator.git /opt/named_fakezone_generator/

После этого, допишите в конец файла /etc/named.conf:

include "/etc/named.reductor.zones";

Настройка

Получение списка доменов

Если SSH ключи отсутствуют, генерируем их:

ssh-keygen

Затем добавляем их на Carbon Reductor:

ssh-copy-id root@<ip адрес carbon reductor>
Проверяем что scp не запрашивает пароль и выкачивает файл
scp root@<ip адрес carbon reductor>:/app/reductor/var/lib/reductor/lists/tmp/domains.all /tmp/reductor.https.resolv
Не забудьте добавить запись, которая периодически забирает файл https.resolv с Carbon Reductor.

Использование

Запустите:

cd /opt/named_fakezone_generator/generate_bind_configs.sh /tmp/reductor.https.resolv <ip адрес заглушки>

Автоматизация

Если всё устраивает - добавьте вызов в крон, например так:

echo '*/20 * * * * root /opt/named_fakezone_generator/generate_bind_configs.sh /tmp/reductor.https.resolv <ip адрес заглушки>' > /etc/cron.d/named_fakezone_generator

При сильном желании, если хочется держать и менять IP адрес заглушки в одном месте, можно забирать аналогично с Carbon Reductor конфигурационный файл внутри скрипта, который можно вызывать по крону:
scp root@<ip адрес carbon reductor>:/app/reductor/cfg/config /tmp/reductor.config
scp root@<ip адрес carbon reductor>:/app/reductor/var/lib/reductor/lists/tmp/domains.all /tmp/reductor.https.resolv
source /tmp/reductor.config
/opt/named_fakezone_generator/generate_bind_configs.sh /tmp/reductor.https.resolv "${filter['dns_ip']}"

Принцип действия

Генерирует следующие файлы:

Список блокируемых зон

/etc/named.reductor.zones

Файлы зон

/etc/named/reductor_<домен который необходимо редиректить>.conf

Больше подробностей можно узнать непосредственно посмотрев файлы generate_bind_configs.sh и reductor_named_domain.tmplt.
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.