К основному содержимому

DNSSEC: защита DNS-зоны от подделки

Домены · 05.03.2025 · 4 мин чтения
Иллюстрация к статье «DNSSEC: защита DNS-зоны от подделки»

Что такое DNSSEC

DNSSEC добавляет криптографические подписи к DNS-записям. Это предотвращает атаки DNS Cache Poisoning — злоумышленник не может подменить A-запись вашего домена на свой IP.

Технически цепочка доверия строится на трёх типах записей: DNSKEY публикует публичные ключи зоны, RRSIG — подпись конкретного набора записей этим ключом, а DS у родительской зоны (например, у реестра .com) подтверждает, что именно этот DNSKEY принадлежит вашему домену. Резолвер проверяет цепочку от корневой зоны вниз и либо помечает ответ как Authenticated Data (AD), либо отбрасывает его как Bogus.

💡 DNSSEC особенно важен для финансовых и медицинских сайтов, где подмена DNS может привести к фишингу.

Включение 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
СтатусЗначение
✅ SecureDNSSEC работает корректно
⚠️ InsecureDNSSEC не настроен
❌ BogusОшибка подписи — проблема конфигурации

Статус Insecure для резолвера не означает ошибку — так выглядит абсолютное большинство доменов в интернете, которые просто не подписаны. А вот переход из Secure в Bogus — уже авария: резолверы с включённой валидацией (например, Unbound или BIND с dnssec-validation yes) в этом случае откажутся резолвить домен вообще, а не просто снизят доверие к ответу.

⚠️ После включения DNSSEC будьте осторожны при смене NS-серверов — нужно сначала удалить DS-записи у регистратора, иначе домен перестанет резолвиться.

Частые ошибки 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 не выставлять, даже если цепочка подписей у домена полностью корректна.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке