INTEGRITY Документация

Устранение неполадок

Узнайте больше об устранении неполадок с DNSSEC.

Проверка DNSSEC с помощью Dig

Dig это инструмент командной строки для запроса записей DNS у сервера имён.

Например, dig может запросить у DNS-резолвера IP-адрес www.cloudflare.com:

dig www.cloudflare.com +short
198.41.215.162
198.41.214.162

Опция +short выводит только результат.

Используйте +dnssec чтобы убедиться, что DNS-записи подписаны:

dig www.cloudflare.com +dnssec +short
198.41.214.162
198.41.215.162
A 13 3 300 20180927180434 20180925160434 35273 cloudflare.com. DYYZ/bhHSAIlpvu/HEUsxlzkC9NsswbCQ7dcfcuiNBrbhYV7k3AI8t46 QMnOlfhwT6jqsfN7ePV6Fwpym3B0pg==

В этом примере последняя строка вывода это RRSIG запись. RRSIG это подпись DNSSEC, прикреплённая к записи. При RRSIG, DNS-резолвер определяет, является ли ответ DNS доверенным.

Dig также может получить открытый ключ, используемый для проверки записи DNS, DNSKEY:

dig DNSKEY cloudflare.com +short
257 3 13 mdsswUyr3DPW132mOi8V9xESWE8jTo0dxCjjnopKl+GqJxpVXckHAeF+ KkxLbxILfDLUT0rAK9iUzy1L53eKGQ==
256 3 13 koPbw9wmYZ7ggcjnQ6ayHyhHaDNMYELKTqT+qRGrZpWSccr/lBcrm10Z 1PuQHB3Azhii+sb0PYFkH1ruxLhe5g==

Все записи DNS домена подписываются одним и тем же открытым ключом. Поэтому запрос к корневому домену (cloudflare.com) открытый ключ, а не поддомена (www.cloudflare.com) открытый ключ.

Ответ DNS содержит две записи:

  • DNSKEY запись 256 это открытый ключ, называемый ключом подписи зоны (ZSK). Ключи ZSK используются для проверки подписей записей DNS для A, MX, CNAME, SRV, и т. д.
  • DNSKEY запись 257 называется ключом подписи ключей (KSK). Ключи KSK используются для проверки подписей DNSKEY, CDS, а также CDNSKEY записи.

Если не использовать +short опцию с dig, ответ DNS считается аутентифицированным по DNSSEC, если ad флаг появляется в заголовке ответа:

dig www.cloudflare.com
[...]
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65326
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
[...]
;; QUESTION SECTION:
;www.cloudflare.com.        IN  A
[...]
;; ANSWER SECTION:
www.cloudflare.com. 15  IN  A   198.41.215.162
www.cloudflare.com. 15  IN  A   198.41.214.162

Устранение неполадок проверки DNSSEC с помощью DNSViz

Чтобы визуализировать и выявить возможные проблемы с DNSSEC:

  1. Перейдите в https://dnsviz.net/.
  2. Введите имя домена в появившемся текстовом поле.
  3. Если DNSViz ещё ни разу не анализировал этот сайт, выберите Анализ.
  4. Если сайт уже был проанализирован DNSViz ранее, выберите Обновить сейчас.

Пример отсутствующей или некорректной записи RRSIG на авторитетном сервере имён

Ниже приведён пример того, как dnsviz.net отображает некорректное делегирование, когда авторитетный сервер имён не предоставляет действительных записей DNSKEY, соответствующих записи DS, опубликованной сервером имён TLD:

Неверная делегация при отсутствии действительных записей DNSKEY

Просмотр цепочки доверия DNSSEC с помощью Dig

Полная проверка подписей домена (например, cloudflare.com) включает проверку ключа подписи ключей (KSK) в домене верхнего уровня (например, .com).

Затем выполняется аналогичная проверка ключа подписания ключей (KSK) для .com на уровне корневого сервера. Корневые ключи DNSSEC распространяются среди DNS-клиентов для завершения цепочки доверия.

При включении DNSSEC DS запись обязательна в DNS у регистратора. DS запись содержит хеш открытого ключа подписи (key signing key), а также метаданные об этом ключе.

Используйте dig чтобы найти DS запись:

dig +short DS cloudflare.com
2371 13 2 32996839A6D808AFE3EB4A795A0E6A7A39A76FC52FF228B22B76F6D6 3826F2B9

При использовании +trace опцию, dig подтверждает, возвращает ли сервер имён ответ для cloudflare.com или сервер имён для .com. В этом примере DS запись для cloudflare.com возвращается e.gtld-servers.net:

dig DS cloudflare.com +trace
[...]
cloudflare.com.     86400   IN  DS  2371 13 2 32996839A6D808AFE3EB4A795A0E6A7A39A76FC52FF228B22B76F6D6 3826F2B9
[...]
com.            172800  IN  NS  e.gtld-servers.net.
[...]
;; Received 1213 bytes from 2001:502:1ca1::30#53(e.gtld-servers.net) in 37 ms

Более простой альтернативой самостоятельному выполнению перечисленных выше шагов служит сторонний инструмент DNSViz.


Устранение неполадок проверки DNSSEC с помощью Dig

Проблемы возникают, если авторитетные DNS-провайдеры меняются без обновления или удаления старых записей DNSSEC у регистратора:

dig A brokendnssec.net @1.0.0.1
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 10663

Проверьте, есть ли SERVFAIL ответ связан с DNSSEC, выполнив dig на +cd опцию. +cd предоставляет результаты DNS без какой-либо проверки DNSSEC.

dig A brokendnssec.net @1.0.0.1 +dnssec +cd +short
104.20.49.61
104.20.48.61

В этом примере DNSSEC настроен неправильно, если при использовании +cd но при использовании DNSSEC запросы возвращают SERVFAIL ответ. Эта проблема часто возникает, когда авторитетные серверы имен изменены, но DS записи не обновляются. Это также может произойти, если злоумышленник пытается подделать ответ на запрос.


Удаление оставшихся записей DNSKEY после отключения DNSSEC

После отключения DNSSEC записи DNSKEY продолжают появляться в DNS-запросах и при передаче зоны. В disabled состоянии Cloudflare по-прежнему подписывает зону и предоставляет записи RRSIG, NSEC и DNSKEY. Это ожидаемое поведение, и не является ошибкой конфигурации или сбоем. См. Состояния DNSSEC и RFC 8078 для получения подробностей.

Некоторые поставщики средств безопасности или инструменты аудита могут помечать такие записи DNSKEY как проблемные, выдавая сообщение "DNSKEY record found but no DS record found" с результатом проверки безопасности "Provably Insecure". Вы можете удалить записи DNSKEY через API.

Как удалить оставшиеся записи DNSKEY

Используйте API удаления DNSSEC чтобы перевести зону в deleted состояние. Это останавливает подписание зоны и удаляет все типы записей DNSSEC (RRSIG, NSEC, DNSKEY, CDS и CDNSKEY):

Необходимые разрешения API-токена

Хотя бы одно из следующих права доступа токена требуется:
Удаление записей DNSSEC
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dnssec" \
	--request DELETE \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

Подробнее о состояниях DNSSEC см. в Состояния DNSSEC.

Проверка удаления DNSKEY

После удаления записей DNSKEY убедитесь, что они больше не отображаются в ответах DNS. Пустой ответ подтверждает удаление.

dig DNSKEY example.com +short

Если записи DNSKEY всё ещё отображаются, дождитесь время жизни (TTL) до истечения срока действия. Записи DNSKEY обычно имеют более длительные значения TTL (часто 3600 секунд и более), поэтому распространение изменений может занять час и более.


Следующие шаги

Если обнаружена проблема с реализацией DNSSEC, обратитесь к регистратору домена и убедитесь, что запись DS совпадает с указанной авторитетным провайдером DNS. Если авторитетным провайдером DNS является Cloudflare, следуйте инструкциям для настройка DNSSEC в Cloudflare.