Что такое DNSSEC
DNSSEC добавляет криптографические подписи к DNS-записям. Это предотвращает атаки DNS Cache Poisoning — злоумышленник не может подменить A-запись вашего домена на свой IP.
Технически цепочка доверия строится на трёх типах записей: DNSKEY публикует публичные ключи зоны, RRSIG — подпись конкретного набора записей этим ключом, а DS у родительской зоны (например, у реестра .com) подтверждает, что именно этот DNSKEY принадлежит вашему домену. Резолвер проверяет цепочку от корневой зоны вниз и либо помечает ответ как Authenticated Data (AD), либо отбрасывает его как Bogus.
Включение DNSSEC в cPanel/WHM
WHM → DNS Functions → DNSSEC Manager → выберите домен → Create Keys
После создания ключей cPanel покажет DS-запись (Delegation Signer) — её нужно добавить у регистратора.
Добавление DS-записи у регистратора
У большинства регистраторов есть раздел DNSSEC или DS Records:
- Key Tag (тег ключа)
- Algorithm (обычно 13 — ECDSAP256SHA256)
- Digest Type (обычно 2 — SHA-256)
- Digest (хэш публичного ключа)
Алгоритм 13 (ECDSAP256SHA256) — текущий стандарт для новых зон: короче ключи, быстрее подпись. Встречается и алгоритм 8 (RSASHA256) — он старше, но полностью поддерживается всеми современными резолверами, поэтому смена рабочей зоны с 8 на 13 не обязательна, если она уже подписана и работает.
Проверка DNSSEC
# Проверка через dig
dig yourdomain.com +dnssec +short
# Онлайн-проверка
# dnssec-analyzer.verisignlabs.com
| Статус | Значение |
|---|---|
| ✅ Secure | DNSSEC работает корректно |
| ⚠️ Insecure | DNSSEC не настроен |
| ❌ Bogus | Ошибка подписи — проблема конфигурации |
Статус Insecure для резолвера не означает ошибку — так выглядит абсолютное большинство доменов в интернете, которые просто не подписаны. А вот переход из Secure в Bogus — уже авария: резолверы с включённой валидацией (например, Unbound или BIND с dnssec-validation yes) в этом случае откажутся резолвить домен вообще, а не просто снизят доверие к ответу.
Частые ошибки DNSSEC
| Симптом | Причина | Решение |
|---|---|---|
| dig +dnssec возвращает SERVFAIL сразу после включения | DS-запись у регистратора ещё не добавлена или содержит опечатку в Digest | Сверить Key Tag и Digest в WHM с тем, что введено у регистратора, посимвольно |
| Статус Bogus в dnssec-analyzer | Подпись зоны не совпадает с опубликованной DS-записью — например, ключи пересозданы, а DS не обновили | Обновить DS-запись у регистратора сразу после ротации ключей DNSSEC |
| Домен вообще не резолвится после включения | DS-запись добавлена раньше, чем зона реально подписана, либо наоборот | Временно удалить DS у регистратора, проверить подпись зоны, затем добавить DS заново |
| no valid RRSIG в логах резолвера | Истёк срок действия подписи (RRSIG expiration), автоматическая ресигнатура не сработала | Проверить, что демон подписи зоны запущен и выполняется по расписанию |
Большинство этих ситуаций объединяет одно: DS-запись у регистратора и подпись зоны у DNS-провайдера — это две независимые системы, которые нужно менять синхронно вручную. Ни одна из них не знает о состоянии другой автоматически, поэтому любая асимметричная правка (обновили одно, забыли про другое) временно ломает резолвинг для всех, кто проверяет DNSSEC.
Когда DNSSEC не стоит включать
- Зона часто меняет NS-делегирование при миграциях между хостингами — риск рассинхронизации DS выше пользы, сначала стабилизируйте делегирование
- Регистратор домена не поддерживает добавление DS-записей — актуально для части ccTLD, тогда включение в панели хостинга бессмысленно: домен всё равно останется unsigned на уровне родительской зоны
- Нет процесса ротации ключей и мониторинга RRSIG — забытая просроченная подпись полностью уронит резолвинг домена, а не просто снизит защиту
- DNS настроен с быстрым автоматическим failover по смене IP — при частой смене конфигурации DNSSEC усложняет отладку, см. DNS failover
Проверка после ротации ключей
# Проверить опубликованную DS-запись в реестре родительской зоны
dig yourdomain.com DS +short
# Проверить подпись конкретной записи
dig yourdomain.com A +dnssec
# Убедиться, что флаг AD (Authenticated Data) установлен резолвером
dig yourdomain.com A +dnssec | grep -i flags
Флаг AD появляется в ответе только если сам резолвер, к которому вы обращаетесь, настроен на валидацию DNSSEC — публичные резолверы вроде 8.8.8.8 и 1.1.1.1 делают это по умолчанию, а вот резолвер по умолчанию у части провайдеров может AD не выставлять, даже если цепочка подписей у домена полностью корректна.