В [[http://www.opennet.dev/opennews/art.shtml?num=33229 BIND 9.9]] появились новые средства для автоматизации формирования цифровых подписей и управления ключами, позволяющие добавить поддержку DNSSEC без правки DNS-зон.Настройка DNSSEC для домена.
Создаём отдельную директорию для файлов с ключами, так как файлов генерируется достаточно много, для каждой зоны имеет смысл создать отдельную директорию с ключами.
mkdir /etc/namedb/keys
Для работы DNSSEC требуется создать master-ключ (KSK, Key Signing Key), который будет использован для создания цифровых подписей для других ключей, и ключи для каждой из локальных зон (ZSK, Zone Signing Key).
Создаём KSK-ключ:
dnssec-keygen -f KSK -a RSASHA1 -b 2048 -n ZONE example.net
Generating key pair......+++.....+++
Kexample.net.+005+38287
Создаём ZSK-ключ:
dnssec-keygen -a RSASHA1 -b 2048 -n ZONE example.net
Generating key pair.....+++ ..+++
Kexample.net.+005+55896
Делаем ключи доступными для чтения процессу named:
chown bind:bind *
Включим в настройках named.conf ведение лога DNSSEC для упрощения анализа возможных проблем.
Подготовим директорию для хранения лога:
mkdir /etc/namedb/log
chown bind:bind /etc/namedb/log
В named.conf пропишем путь к логу, который ограничим максимальным размером в 20 Мб:
logging {
channel dnssec_log {
file "log/dnssec" size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity debug 3;
};
category dnssec {
dnssec_log;
};
};
Настроим DNSSEC для зоны example.net:
zone example.net {
type master;
file "master/example.net";
key-directory "keys/";
inline-signing yes;
auto-dnssec maintain;
};
После перезапуска named в директории /etc/namedb/keys появятся следующие файлы:
example.net
example.net.jbk
example.net.signed
example.net.jnl
Опция 'inline-signing yes' включает режим прозрачного формирования подписей, не требуя внесения изменений непосредственно в файл зоны. При работе inline-signing вручную поддерживаемый файл с зоной преобразуется в динамическую зону, для которой создаётся цифровая подпись. Из-за этого выдаваемый сервером серийный номер, отличается от серийного номера прописанного в файле с зоной. Изменения DNSSEC производятся в jnl-файле с журналом изменений.
При запросе параметров зоны можно заметить появление нового поля RRSIG
dig example.net +dnssec
...
example.net. 600 IN A 1.2.3.4
example.net. 600 IN RRSIG A 5 3 600 2012021356423 20120415331566 21695 net. IKekIJa314313G/xZpQ+B2313eqaDceR/VNcdsdasxV2 ...
Так как DNSSEC основан на обеспечении цепочки доверия, чтобы процесс верификации заработал, требуется чтобы регистратор заверил созданный KSK-ключ, подтвердив своё доверие. Для этого создадим на основе KSK-ключа DSKEY-ключ (Delegation Signature Key)
dnssec-dsfromkey Kexample.net.+005+38287
example.net. IN DS 38287 5 1 E8C01C9CA1252389A9CB4E
example.net. IN DS 38287 5 2 57EC936A479A94C32324123134234523492359A623 39712D53
Копируем две сгенерированные строки в интерфейсе ввода DSKEY на сайте регистратора домена. Верификация заработает после того как регистратор обновит параметры первичной зоны.
Для поддержки DNSSEC-проверки на стороне резолвера следует добавить в настройки named.conf:
options {
...
dnssec-enable yes;
dnssec-validation auto;
...
};
URL: http://blather.michaelwlucas.com/archives/1207 https://kb.isc.org/article/AA-00626/0/Inline-Signing-in-ISC-...
Обсуждается: http://www.opennet.dev/tips/info/2677.shtml