DNSSEC Nedir? Kurulum, Anahtar Yönetimi ve Yaygın Hatalar

DNSSEC Nedir? Kurulum, Anahtar Yönetimi ve Yaygın Hatalar - Corelux
30 May 2026
Paylaş:

DNSSEC Nedir? Kurulum, Anahtar Yönetimi ve Yaygın Hatalar

Son Güncelleme: Mayıs 2026

DNSSEC (Domain Name System Security Extensions), DNS sorgularının doğruluğunu ve bütünlüğünü korumaya yönelik bir güvenlik katmanıdır. Bu makalede DNSSEC in temel çalışma mantığını, anahtar yönetimi (KSK/ZSK), kurulum adımlarını ve sık karşılaşılan hata/çözüm senaryolarını ele alacağız.

İçindekiler

DNSSEC Nedir?

DNSSEC, DNS yanıtlarının kaynağını doğrulamak ve yanıtlarda değişiklik (manipülasyon) olmadığını garanti etmek için imzalama (digital signature) mekanizmaları ekler. DNSSEC, DNS'in kendine özgü güvensiz tasarımını güvence altına almak için geliştirilmiş bir uzantıdır ve DNS sahteciliği (cache poisoning) gibi saldırılara karşı etkilidir.

DNSSEC Nasıl Çalışır?

DNSSEC, her DNS kaydına kriptografik bir imza ekler. Bu imzalar zone (bölge) sahibi tarafından üretilir ve üst düzey (parent) DNS sunucusuna DS (Delegation Signer) kaydı ile bildirilir. Bu sayede sorgu yapan taraf (resolver), yanıtın gerçekten ilgili zone tarafından imzalandığını zincirleme olarak (chain of trust) doğrulayabilir.

Temel Kavramlar

  • Zone: DNS bölgesi, örn. example.com.
  • ZSK (Zone Signing Key): Zone içindeki kayıtları imzalamak için kullanılan anahtar.
  • KSK (Key Signing Key): ZSK'yi imzalayan ve DS kaydı aracılığıyla parent zone ile zincir oluşturan anahtar.
  • DS Kaydı: Parent zone'a yerleştirilen, child zone'un KSK'sinin özet bilgisini içeren kayıt.
  • RRSIG: DNS Resource Record Signature, her kayıt için üretilen imza kaydı.

DNSSEC Kurulum Adımları (BIND Örneği)

Aşağıdaki örnek BIND9 (Berkeley Internet Name Domain) üzerinde temel bir DNSSEC kurulumunu gösterir. Diğer DNS sunucuları (PowerDNS, NSD, Knot) için adımlar benzer mantıktadır; ancak komut isimleri ve konfigürasyon dosya yolları farklılık gösterebilir.

Ön Koşullar

  • Sunucu: BIND9 kurulmuş bir DNS sunucusu (ör. /etc/bind veya /var/named dizinleri).
  • Zaman Senkronizasyonu: NTP/chrony ile doğru saat (kritik).
  • Güvenli Anahtar Saklama: Anahtarlar için uygun dosya izinleri ve tercihen HSM (Hardware Security Module) veya TPM kullanımı.

Adım 1 — Zone dosyasını hazırlama

Zone dosyanız hazır ve test edilebilir olmalıdır. Örnek: /etc/bind/zones/example.com.db.

Adım 2 — Anahtar üretimi

dnssec-keygen -a RSASHA256 -b 2048 -n ZONE example.com  # ZSK
dnssec-keygen -a RSASHA256 -b 4096 -n ZONE -f KSK example.com  # KSK

Bu komutlar iki anahtar dosyası seti oluşturur: Kexample.com.+008+12345.key ve Kexample.com.+008+12345.private gibi.

Adım 3 — Zone imzalama

dnssec-signzone -A -3 $(head -c 1000 /dev/urandom | sha1sum | cut -d" " -f1) -N increment -o example.com -t example.com.db

Bu komut, zone dosyanızı imzalar ve imzalı bir zone dosyası (example.com.db.signed) oluşturur.

Adım 4 — Kayıtları yayınlama ve DS oluşturma

Oluşan KSK için .key dosyasından DS (Delegation Signer) kaydını oluşturun:

dnssec-dsfromkey Kexample.com.+008+12345.key

Çıkan DS kaydını domain kaydınızı yönettiğiniz registrar paneline girin. Registrar DS desteği yoksa, DNSSEC etkinleştirilemez.

Adım 5 — BIND konfigürasyonu

Zone'u named.conf içinde imzalı dosyaya işaret edecek şekilde ayarlayın:

zone "example.com" {
  type master;
  file "/etc/bind/zones/example.com.db.signed";
  allow-transfer { x.x.x.x; };
};

Ardından BIND'i yeniden başlatın veya yeniden yükleyin:

rndc reload
systemctl restart bind9

Anahtar Yönetimi: KSK ve ZSK

Anahtar yönetimi, DNSSEC'in en kritik parçalarından biridir. Yanlış anahtar yönetimi DNS çökmelerine veya güvenlik açıklarına yol açabilir.

Anahtar Türleri ve Roller

  • ZSK (Zone Signing Key): Zone kayıtlarını periyodik olarak imzalar. Sıklıkla rotasyona (değişime) tabi tutulur.
  • KSK (Key Signing Key): ZSK'yi imzalayan anahtar ve parent zone'un DS kaydı ile ilişkilendirilir. KSK daha az sıklıkta değiştirilir.

Anahtar Rotasyonu Stratejileri

  • Planlı Rollover: Önceden belirlenmiş zamanlarda anahtar değiştirme (ör. ZSK: 90 gün, KSK: 1 yıl).
  • Güvenlik Olayı Rollover: Anahtarın sızdığı şüphesi varsa acil değiştirme.
  • Otomasyon: Rollover süreçlerini otomatikleştirmek için betikler veya yönetim araçları kullanın.
Parametre ZSK KSK
Amaç Zone içi kayıtları imzalama ZSK'yi imzalama, parent ile zincir kurma
Önerilen Anahtar Boyutu 2048 bit (RSA) veya daha küçük 4096 bit (RSA) tercih edilir
Rollover Sıklığı 90-180 gün 1 yıl veya gerektiğinde
Güvenlik Seviyesi Yüksek (sık değiştirildiği için) Çok yüksek (daha sıkı saklama)

Yaygın Hatalar ve Çözümleri

DNSSEC uygulamasında sık karşılaşılan hatalar genelde DS kaydının eksik/yanlış girilmesi, zaman senkronizasyonu problemleri veya anahtar rollover süreçlerinin hatalı yönetilmesinden kaynaklanır. Aşağıda pratik hata senaryoları ve çözümleri yer almaktadır.

Hata 1 — DNS çökmeleri sonrası “SERVFAIL”

Açıklama: Zone doğrulaması başarısız olduğunda resolverlar SERVFAIL döndürür. Genelde hatalı imza veya eksik DS kaydı nedenidir.

  • Çözüm: Önce dig +dnssec example.com soa ile RRSIG ve DNSKEY durumunu kontrol edin.
  • Komut:
dig +dnssec @1.1.1.1 example.com SOA
dig +dnssec @8.8.8.8 example.com DNSKEY
dig +short DS example.com @parent-dns

Hata 2 — Yanlış DS kaydı girilmesi

Açıklama: Registrar paneline girilen DS kaydı hatalıysa zincir kopar. Bu durumda parent zone child zone'u doğrulayamaz.

  • Çözüm: KSK'nin .key dosyasından tekrar DS üretin ve registrar ile eşleştiğinden emin olun.

Hata 3 — Anahtar rollover sırasında hizmet kesintisi

Açıklama: KSK veya ZSK rollover adımları yanlış sırayla uygulandığında resolverların doğrulaması bozulur.

  • Çözüm: KSK rollover için önerilen adımlar:
    1. Yeni KSK üretin ve yeni KSK'nin .keyini parent'a eklemek için DS oluşturun (bazen çift DS gerekir).
    2. Parent üzerinde yeni DS aktif olduktan sonra ZSK'yi yeni KSK ile imzalayın.
    3. Eski KSK'yi güvenli şekilde iptal edin.

İzleme, Test ve Otomasyon

DNSSEC durumu ve anahtar ömrünü izlemek için düzenli testler ve otomasyon kritik önemdedir. Aşağıda önerilen araçlar ve praktik senaryolar yer alır.

  • Test Araçları:
    • dig: Hızlı DNS ve DNSSEC kontrolleri.
    • delv: DNSSEC doğrulama için özel araç.
    • online testler: ZoneCheck, Verisign Labs gibi servisler (internet üzerinden erişim gerektirir).
  • Otomasyon: Anahtar üretimi, imzalama ve DS güncelleme adımlarını betiklerle otomatikleştirin. Anahtar rotasyonlarını cron/Ansible/CI ile entegre edin.
  • Alarm & Monitoring: Resolverlardan dönen SERVFAIL sayısı veya DNSSEC doğrulama hataları için alert sistemi kurun.

Örnek otomasyon komut akışı (basit):

# 1. Yeni ZSK üret
zsk=$(dnssec-keygen -a RSASHA256 -b 2048 -n ZONE example.com)
# 2. Zone'u yeniden imzala
dnssec-signzone -o example.com example.com.db
# 3. rndc reload
rndc reload
# 4. Sağlık kontrolü
dig +dnssec example.com SOA | grep RRSIG

Sıkça Sorulan Sorular

DNSSEC her domain için zorunlu mu?

Hayır. DNSSEC zorunlu değildir fakat güvenliği artırır. Bazı TLD'ler (üst seviye domain) DNSSEC desteklemektedir; domain registrarınızın DS kaydı desteği olup olmadığını kontrol edin.

DNSSEC HTTPS veya TLS yerine geçer mi?

Hayır. DNSSEC, DNS sorgularının doğruluğunu sağlar; HTTPS/TLS ise uygulama (HTTP) katmanında iletişimi şifreler. İkisi farklı güvenlik katmanlarıdır ve birlikte kullanılmalıdır.

Anahtarlarımı nasıl güvenli saklamalıyım?

Anahtarların private dosyalarını sadece yetkili hesaplar okuyabilmeli, tercihen HSM/TPM veya en azından donanım güvenli depolama yöntemi kullanılmalıdır. Dosya izinleri ve merkezi erişim kontrolleri uygulayın.

Registrar paneline DS kaydı girerken nelere dikkat etmeliyim?

DS kaydı, KSK'nin özet bilgisini içerir. DS kaydının algoritma numarası, digest tipi ve digest değeri registrar tarafında doğru formatta girilmelidir. Yanlış DS SERVFAIL'e neden olur.

DNSSEC ile performans sorunları yaşanır mı?

DNSSEC ek kriptografik doğrulama gerektirdiği için resolver ve network üzerinde ek CPU yükü ve biraz daha büyük DNS paketleri (RRSIG, DNSKEY) oluşur. Ancak modern altyapı ve uygun anahtar boyutlarıyla performans etkisi genelde minimaldir.

DNSSEC testlerini nasıl periyodikleştirebilirim?

Basit bir cron işi ile dig +dnssec komutunu çalıştırıp çıktıdaki hataları loglayabilir, bir monitoring aracıyla (Prometheus/Grafana gibi) metrikler oluşturabilirsiniz.

Sonuç

Özetle, DNSSEC DNS altyapınızın güvenliğini ciddi şekilde artırır ancak doğru anahtar yönetimi, DS kaydı yönetimi ve otomasyon gerektirir. Anahtar rotasyonu planlarını önceden tanımlayın, zaman senkronizasyonuna dikkat edin ve değişiklikleri yapmadan önce test ortamında denemeler gerçekleştirin.

Corelux altyapı ve yönetilen hizmet ihtiyaçlarınız için Hizmetler sayfamızı inceleyebilir, daha büyük ölçekli domain/dns yönetimi ve güvenlik çözümleri hakkında bilgi alabilirsiniz.

Bu rehber teknik bir yol haritası sunar; kurumunuzun güvenlik politikalarına göre HSM, kayıt denetimleri ve yedekleme (backup) prosedürleri uygulamayı unutmayın.

Yazar

Boran BAR

Chat on WhatsApp