DNSSEC Nedir? Kurulum, Anahtar Yönetimi ve Yaygın Hatalar
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 Nasıl Çalışır?
- DNSSEC Kurulum Adımları (BIND Örneği)
- Anahtar Yönetimi: KSK ve ZSK
- Yaygın Hatalar ve Çözümleri
- İzleme, Test ve Otomasyon
- Sıkça Sorulan Sorular
- Sonuç
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/bindveya/var/nameddizinleri). - 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 soaile 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:
- Yeni KSK üretin ve yeni KSK'nin .keyini parent'a eklemek için DS oluşturun (bazen çift DS gerekir).
- Parent üzerinde yeni DS aktif olduktan sonra ZSK'yi yeni KSK ile imzalayın.
- 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