... Генератор зон Unbound для списка доменов, которые необходимо переадресовывать на страницу-заглушку. h2. Unbound h3. Установка {code} yum -y install unbound mkdir /var/run/unbound unbound-control-setup service unbound restart {code} h3. Настройка (!) В основном конфиге unbound в секции server должен подключаться сгенерированный fakezone файл: {code} /etc/unbound/local.d/reductor.conf {code} Это может выглядеть так: {code} include: /etc/unbound/local.d/reductor.conf {code} или (обычно из коробки) так: {code} include: /etc/unbound/local.d/*.conf {code} h2. Система генерации зон для DNS-сервера h3. 1. Установка В случае CentOS 6 установка надстройки для конфигурирования будет выглядеть следующим образом: Нам потребуется git для клонирования репозитория {code} yum -y install git {code} Клонируем репозиторий на DNS-сервер в папку /opt/named_fakezone_generator/ {code} git clone https://download5.carbonsoft.ru/reductor/repos/named_fakezone_generator /opt/named_fakezone_generator/ {code} h3. 2. Настройка Откройте (если его ещё нет, создайте) конфигурационный файл: {code} /etc/sysconfig/named_fakezone_generator {code} В нём укажите следующие значения: {code} REDUCTOR_IP='10.0.0.1' REDUCTOR_VERSION='8' {code} Если в сети используется несколько Carbon Reductor - выберите один любой. Для Carbon Reductor 7 инструкция находится по адресу: [http://docs.carbonsoft.ru/pages/viewpage.action?pageId=65798699] h3. 3. Обращение к Carbon Reductor за списком доменов Если SSH ключи отсутствуют, генерируем их: {code} ssh-keygen {code} Затем добавляем их на Carbon Reductor: {code} ssh-copy-id root@<ip адрес carbon reductor> {code} (!) Обязательно проверьте, что main.sh отрабатывает при ручном запуске перед автоматическим запуском. Проверяем что: * scp не запрашивает пароль * новый файл со списком доменов скачивается * и всё это применяется за приемлемое время (менее двух минут) {code} timeout -s 15 3500s /opt/named_fakezone_generator/unbound/main.sh {code} h3. 4. Настройка регулярного обновления Добавляем задачу для cron: раз в 20 минут обновлять список доменов. Ограничение по времени выполнения (timeout) сделано с большим запасом в качестве защиты от зависания скрипта. {code} echo '*/20 * * * * root timeout -s 15 3500s /opt/named_fakezone_generator/unbound/main.sh' > /etc/cron.d/unbound_fakezone_generator {code} h3. Примечания Часть описанных действий может выполняться не от пользователя 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
|