DNS. Bind. DNSSEC
Настройка DNSSEC в Bind.
Содержание
1 Общая информация
- Версия bind выше, чем 9.9:
1named -v
2 Ключи
2.1 Каталоги ключей
- Создаём каталог, в котором будем хранить ключи и переходим в него:
- Red Hat:
- Debian, Ubuntu:
2.2 Создание ключей
Создаём мастер-ключей (
KSK
):1dnssec-keygen -f KSK -a ECDSAP256SHA256 -b 4096 -n ZONE example.com
-f KSK
: создаётся мастер-ключ;-a ECDSAP256SHA256
: используемый алгоритм шифрования;-b 2048
: размер ключа в битах (для алгоритмаECDSAP256SHA256
игнорируется);-n ZONE
: для DNS-зоны;-r /dev/urandom
: источник случайных данных;example.com
: домен, для которого предназначен ключ.
Создаём ключ для зоны (
ZSK
):1dnssec-keygen -a ECDSAP256SHA256 -b 2048 -n ZONE example.com
Задаём владельца для сгенерированных файлов:
2.3 Права доступа
- Поправим права доступа:
3 Подпись зоны
- Зоны можно подписывать вручную или настроить автоматическую подпись зон.
- При ручной подписи необходимо переподписывать файл зоны после изменения.
3.1 Ручная подпись зоны
Копируем содержимое ключей в файл зоны:
1cat Kexample.com.*key >> /var/named/master/example.com
Переходим в каталог, где хранится наша зона:
- Red Hat:
1cd /var/named/master
- Red Hat:
Debian, Ubuntu:
1cd /etc/bind/master
Подписываем зону:
1dnssec-signzone -e +3mo -N INCREMENT -K /var/named/keys example.com
-e +3mo
: время действия RRSIG (3 месяца);-N INCREMENT
: использовать формат серийного номера SOA из файла;-K /var/named/keys
: путь хранения сгенерированных ключей;example.com
: подписываемый домен.
В каталоге хранения зон мы должны увидеть файл подписанной зоны
example.com.signed
.
3.1.1 Настройка BIND
Редактируем конфигурационный файл:
Проверяем, чтобы dnssec был включён:
dnssec-enable
: включение или отключениеdnssec
на уровне сервера;dnssec-validation
: проверка корректность ответов;dnssec-lookaside
: разрешение использовать сторонние корни DNSSEC.
В настройке зоны меняем путь к файлу:
Перезапускаем bind:
Или перегружаем конфигурацию bind:
1rndc reload
3.2 Автоматическое подписывание зоны
Для автоматизации процесса в конфигурационном файле bind задаём:
key-directory
: каталог хранения ключей;sig-validity-interval
: период действия ключей: дней (период обновления).
Для зоны редактируем:
1zone "example.com" { 2... 3file "master/example.com"; 4inline-signing yes; 5auto-dnssec maintain; 6};
inline-signing
: включение или отключение прозрачного формирования подписей (без необходимости менять файл зоны);auto-dnssec
: уровень автоматической настройки DNSSEC для зоны.
Меняем серийный номер файла зоны.
Перезапускаем bind:
Или перегружаем конфигурацию bind:
1rndc reload
В каталоге зоны должны появиться дополнительные 3 файла:
example.com.jbk
,example.com.signed
,example.com.signed.jnl
.
4 Проверка работы
- Чтобы проверить, отдаёт ли наш сервер ответы с цифровыми подписями, вводим команду:
1dig example.com +dnssec
- Посмотрим подпись зоны:
1dig DNSKEY example.com. @localhost +multiline
- Или:
1dig A example.com. @localhost +noadditional +dnssec +multiline
- Получить DS записи для реестра доменов и прописать их у регистратора:
1dig @localhost dnskey example.com | dnssec-dsfromkey -f - example.com
- После того, как мы добавили DS записи в реестр, спустя какое-то время можно проверять все ли в порядке.