У меня возникла серьезная проблема с созданием соответствующей пары ключей DNSSEC для использования с доменным именем .de.
У DENIC есть испытательный стенд - веб-интерфейс проверки предварительного делегирования сервера имен по адресу https://www.denic.de/en/service/tools/nast/ Идея состоит в том, что клиент с доменным именем .de вводит свое доменное имя и (необязательно) серверы имен и DNSKeys, а затем веб-интерфейс NAST проверяет все и подтверждает, все ли соответствует требованиям. Все идет нормально.
Проблема в DNSKeys: я использую dnssec-keygen с BIND для генерации ключей и, как правило, не возникает никаких проблем с этим, используя что-то вроде:
dnssec-keygen -3 -a ECDSAP256SHA256 -n ZONE -K /var/named/dynamic test.com.
... и, действительно, приведенное выше должно генерировать ключи, соответствующие требованиям DENIC:
...
...
Теперь я нашел два решения для этого, оба из которых (как обычно бывает) требуют добавления записей DS-записей регистратором домена (ов), для которого были сгенерированы ключи DNSSEC, чтобы избежать потери DS. записывает предупреждения в проверочных проверках [1].
...
[1] После того, как проверяемые записи были созданы для страницы NAST DENIC, ключи записей DS могут быть сгенерированы с использованием одного или другого из следующего (сначала измененного в соответствии с предполагаемым доменным именем):
dnssec-dsfromkey -a SHA-1 Kexstocktra.de.+008+50707.key
dnssec-dsfromkey -a SHA-256 Kexstocktra.de.+008+50707.key
dig @127.0.0.1 dnskey exstocktra.de | dnssec-dsfromkey -f - exstocktra.de
В панели управления name.com после того, как проверяемые ключи CSK или KSK DNSKeys были отправлены в NAST DENIC, эта информация становится видимой в панели управления клиента (хотя и с Нет как в столбцах DS, так и в столбцах RRSIG, чего следует ожидать в ожидании ввода записей DS на стороне регистратора).
К сожалению, ввод записей DS в панель управления name.com (как обычно делает заказчик) просто приводит к ошибке: сообщение об успешном завершении и записи не принимаются (установка name.com обычно вызывает ошибку для записей DS наряду с отображение введенных сведений и сообщения об успешном выполнении, поэтому нельзя полагаться на наличие сообщения об ошибке). Я пытаюсь заставить name.com решить эту проблему, но их команда разработчиков, похоже, столкнулась с очередным из их печально известных «зависаний», поэтому продвижение в этом направлении идет медленно.
...
В любом случае, это очень грубая схема, основанная на Fedora 29 (RHEL) с использованием BIND DNS (BIND 9.11.4-P2-RedHat-9.11.4-13.P2.fc29 (версия с расширенной поддержкой):
/etc/bind/ named.conf:
dnssec-enable yes;
dnssec-validation yes;
managed-keys-directory "/var/named/dynamic";
zone "exstocktra.de." IN {
type master;
file "named.exstocktra.de";
auto-dnssec maintain;
// enable the automatic signing
key-directory "/var/named/dynamic";
// directory in which to search for the DNSSEC keys
update-policy local;
// update-policy local
inline-signing yes;
// this is an optional addition, but is required in order
// for BIND to handle zone signing and is essential for
// ZSK keysets that are acceptable to DENIC's NAST
// interface.
};
cd / var / named / dynamic
Создайте набор ключей для подписи зоны (ZSK) [быстрее, если кованый или rng-инструменты (спасибо @ Håkan Lindqvist) установлены в системе].
dnssec-keygen -3 -a ECDSAP256SHA256 -n ZONE -K /var/named/dynamic exstocktra.de.
================================================== ======================
Если вам просто требуется набор ключей ZSK для использования с доменным именем .de, то теперь должна быть возможность перезапустить named, перезагрузить rndc, перезапустить named снова и использовать шаги, описанные ниже, для генерации информации для интерфейса NAST DENIC и регистратора Записи DS.
Примечание: это приведет к появлению предупреждения об отсутствии флага SEP. dnssec-keygen не поддерживает флаг SEP (только KSK), поэтому во избежание предупреждений Secure End-Point необходимо создавать и использовать наборы ключей KSK, а не ZSK.
================================================== =======================
... а затем создайте ключ для подписи ключа (KSK):
dnssec-keygen -f KSK -3 -a ECDSAP256SHA256 -n ZONE -K /var/named/dynamic exstocktra.de.
В каталоге теперь будет 4 ключа: 2 пары закрытый / открытый, состоящие из ZSK и KSK.
Следующее для может использоваться для добавления $ INCLUDE в файл зоны для файлов ключей зоны и для проверки того, что добавление работает:
cd / var / named / dynamic
for key in `ls Kexstocktra.de*.key`
do
echo "\$INCLUDE $key">> ../named.exstocktra.de
done
named-checkzone exstocktra.de "/var/named/named.exstocktra.de"
После этого может потребоваться изменить записи в файле зоны, например:
$INCLUDE /var/named/dynamic/Kexstocktra.de.+013+08201.key
$INCLUDE /var/named/dynamic/Kexstocktra.de.+013+61007.key
Следующий перезапуск назван для внесения изменений:
systemctl restart named
rndc reload
systemctl restart named
Проверьте запись DNSKEY с помощью dig на том же сервере:
dig DNSKEY exstocktra.de. @localhost +multiline
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-13.P2.fc29 <<>> DNSKEY exstocktra.de. @localhost +multiline
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25049
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: f71e1737abd9de6a66c748e65c5f2de2fa584d957700a92d (good)
;; QUESTION SECTION:
;exstocktra.de. IN DNSKEY
;; ANSWER SECTION:
exstocktra.de. 86400 IN DNSKEY 257 3 13 (
cQ9PiHhVl5FGmf95rGc2Y5pqNiSD49nhARzLiSLzCH6h
bquxne/8FKBtiydWLwNI2uft3c19m4F4sBCs3h/2vw==
) ; KSK; alg = ECDSAP256SHA256 ; key id = 8201
exstocktra.de. 86400 IN DNSKEY 256 3 13 (
OpSJYBpdPcroNXNIH8n3/DrRDmTuL6QfpLcaKqrGzjQ5
0JgIVyO0RsnuN2uWNMPyclfe0dkobesMFCAqp1Ki7Q==
) ; ZSK; alg = ECDSAP256SHA256 ; key id = 61007
;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Sat Feb 09 19:45:38 GMT 2019
;; MSG SIZE rcvd: 230
Также проверьте наличие записей RRSIG:
dig A exstocktra.de. @localhost +noadditional +dnssec +multiline
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-13.P2.fc29 <<>> DNSKEY exstocktra.de. @localhost +multiline
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13699
;; flags: qr aa rd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: e06c70f5cf57425d4cad03b95c5f2e4734fd5a649042689d (good)
;; QUESTION SECTION:
;exstocktra.de. IN DNSKEY
;; ANSWER SECTION:
exstocktra.de. 86400 IN DNSKEY 257 3 13 (
cQ9PiHhVl5FGmf95rGc2Y5pqNiSD49nhARzLiSLzCH6h
bquxne/8FKBtiydWLwNI2uft3c19m4F4sBCs3h/2vw==
) ; KSK; alg = ECDSAP256SHA256 ; key id = 8201
exstocktra.de. 86400 IN DNSKEY 256 3 13 (
OpSJYBpdPcroNXNIH8n3/DrRDmTuL6QfpLcaKqrGzjQ5
0JgIVyO0RsnuN2uWNMPyclfe0dkobesMFCAqp1Ki7Q==
) ; ZSK; alg = ECDSAP256SHA256 ; key id = 61007
;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Sat Feb 09 19:47:19 GMT 2019
;; MSG SIZE rcvd: 230
Теперь должно быть возможно скопировать ключ из первого из двух блоков кода (как показано выше) и использовать его на странице NAST DENIC (ссылка приведена ниже) для создания проверяющих записей DNSSEC, не забывая выбрать CSK / Радиокнопка KSK и сначала правильный алгоритм.