... {toc} Генератор зон 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. fakezone generator h3. Установка В случае CentOS 6 установка надстройки для конфигурирования будет выглядеть следующим образом: Нам потребуется git для клонирования репозитория {code} yum -y install git {code} Клонируем репозиторий на DNS-сервер в папку /opt/named_fakezone_generator/ {code} git clone https://github.com/carbonsoft/named_fakezone_generator.git /opt/named_fakezone_generator/ {code} Копируем скрипт синхронизации списков, его необходимо будет исправить позднее: {code} cp /opt/named_fakezone_generator/unbound/main.sh.example /opt/named_fakezone_generator/unbound/main.sh {code} h3. Настройка Укажите IP адрес Carbon Reductor в файле: {code} /opt/named_fakezone_generator/unbound/main.sh {code}
|
h3. Обращение к Carbon Reductor за списком доменов
|
h4.
|
Если SSH ключи отсутствуют, генерируем их:
|
... {code} ssh-keygen {code} Затем добавляем их на Carbon Reductor: {code} ssh-copy-id root@<ip адрес carbon reductor> {code} Проверяем что scp не запрашивает пароль и выкачивает файл: {code} /opt/named_fakezone_generator/unbound/main.sh {code}
|
h3. Настройка регулярного обновления
|
h4.
|
Добавляем задачу для cron: раз в 20 минут обновлять список доменов.
|
... {code} echo '*/20 * * * * root /opt/named_fakezone_generator/unbound/main.sh' > /etc/cron.d/unbound_fakezone_generator {code} h3. Принцип действия * Выкачиваем новый список доменов, которые нужно блокировать * Пытаемся добавить разницу/удалить разблокированные домены с помощью 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
|