До основного вмісту

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

Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці