Устарело. Используйте актуальный модуль интеграции с Unbound. |
Генератор зон 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
Система генерации зон для DNS-сервера
1. Установка
В случае CentOS 6 установка надстройки для конфигурирования будет выглядеть следующим образом:
Нам потребуется git для клонирования репозитория
yum -y install git
Клонируем репозиторий на DNS-сервер в папку /opt/named_fakezone_generator/
git clone https://download5.carbonsoft.ru/reductor/repos/named_fakezone_generator /opt/named_fakezone_generator/
2. Настройка
Откройте (если его ещё нет, создайте) конфигурационный файл:
/etc/sysconfig/named_fakezone_generator
В нём укажите следующие значения:
REDUCTOR_IP='10.0.0.1' REDUCTOR_VERSION='8'
Если в сети используется несколько Carbon Reductor - выберите один любой.
Для Carbon Reductor 7 инструкция находится по адресу: http://docs.carbonsoft.ru/pages/viewpage.action?pageId=65798699
3. Обращение к 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
4. Настройка регулярного обновления
Добавляем задачу для cron: раз в 20 минут обновлять список доменов.
Ограничение по времени выполнения (timeout) сделано с большим запасом в качестве защиты от зависания скрипта.
echo '*/20 * * * * root timeout -s 15 3500s /opt/named_fakezone_generator/unbound/main.sh' > /etc/cron.d/unbound_fakezone_generator
Примечания
Часть описанных действий может выполняться не от пользователя root, в документации используется именно он для простоты примера.
Если самостоятельная настройка схемы для работы от имени непривилегированного пользователя вызывает затруднения - используйте root.
Принцип действия
- Выкачиваем новый список доменов, которые нужно блокировать
- Пытаемся добавить разницу/удалить разблокированные домены с помощью 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