unbound

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

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

Unbound

Установка

yum -y install unbound
mkdir /var/run/unbound
unbound-control-setup
service unbound restart

Настройка

В основном конфиге unbound в секции server должен подключаться сгенерированный fakezone файл:

/etc/unbound/local.d/reductor.conf

Это может выглядеть так:

include: /etc/unbound/local.d/reductor.conf

или (обычно из коробки) так:

include: /etc/unbound/local.d/*.conf

fakezone generator

Установка

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

Нам потребуется git для клонирования репозитория

yum -y install git

Клонируем репозиторий на DNS-сервер в папку /opt/named_fakezone_generator/

git clone https://github.com/carbonsoft/named_fakezone_generator.git /opt/named_fakezone_generator/

Копируем скрипт синхронизации списков, его необходимо будет исправить позднее:

cp /opt/named_fakezone_generator/unbound/main.sh.example /opt/named_fakezone_generator/unbound/main.sh

Настройка

Укажите IP адрес Carbon Reductor в файле:

/opt/named_fakezone_generator/unbound/main.sh

В строчке:

REDUCTOR_IP=10.0.0.1

Если в сети используется несколько Carbon Reductor - выберите один любой.

Если вы ещё не обновились на Carbon Reductor 8 и используете Carbon Reductor 7 - замените вызов функции carbon_reductor_8 на вызов carbon_reductor_7 в main.sh.

Обращение к Carbon Reductor за списком доменов

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

ssh-keygen

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

ssh-copy-id root@<ip адрес carbon reductor>

  Обязательно проверьте, что main.sh отрабатывает при ручном запуске перед автоматическим запуском.

Проверяем что:

  • scp не запрашивает пароль
  • новый файл со списком доменов скачивается
  • и всё это применяется за приемлемое время (менее двух минут)
timeout -s 15 3500s /opt/named_fakezone_generator/unbound/main.sh

Настройка регулярного обновления

Добавляем задачу для cron: раз в 20 минут обновлять список доменов.

Ограничение по времени выполнения (timeout) сделано с большим запасом в качестве защиты от зависания скрипта.

echo '*/20 * * * * root timeout -s 15 3500s /opt/named_fakezone_generator/unbound/main.sh' > /etc/cron.d/unbound_fakezone_generator

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

  • Выкачиваем новый список доменов, которые нужно блокировать
  • Пытаемся добавить разницу/удалить разблокированные домены с помощью diff_load.sh
    • Разница автоматически вычисляется из скачанного файла и используемого в текущий момент /etc/unbound/local.d/reductor.conf
    • Добавление и удаление производится через unbound-control local_zone/local_data/local_zone_remove
  • Если не получилось (нажали ctrl+c или что-то ещё произошло) - вызывается unbound-control reload
  • Если не вышло и это (например сервер был выключен) - service unbound restart 
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.