Що таке 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 не виставляти, навіть якщо ланцюг підписів у домену повністю коректний.