DNSSEC (Domain Name System Security Extensions), DNS (Domain Name System) üzerindeki güvenliği sağlamak için kullanılan bir dizi uzantıdır. DNSSEC, DNS sorgularının ve cevaplarının bütünlüğünü, kimlik doğrulamasını ve doğruluğunu sağlayarak DNS tabanlı saldırıları önlemek amacıyla geliştirilmiştir.
DNS, internet üzerindeki alan adlarını IP adreslerine çeviren bir sistemdir. Örneğin, bir web sitesine erişmek istediğinizde tarayıcınıza yazdığınız alan adı (örneğin, www.mesutguner.com), DNS tarafından ilgili IP adresine dönüştürülür ve isteğiniz ilgili sunucuya iletilir. Ancak, DNS yapılandırmasında güvenlik önlemleri eksik olduğunda, saldırganlar DNS sorgularını manipüle ederek kullanıcıları yanlış IP adreslerine yönlendirebilir veya sahte web sitelerine yönlendirebilir.
DNSSEC, bu tür saldırıları önlemek ve güvenliği artırmak için tasarlanmıştır. Aşağıda, DNSSEC’in nasıl çalıştığını anlatan adımları bulabilirsiniz:
- İmzalama Anahtarı Oluşturma: İlk adım, alan adını yöneten kuruluşun (örneğin, bir etki alanı kaydedicisi veya DNS sağlayıcısı) bir çift anahtar oluşturmasıdır. Bu çift anahtar, gizli bir özel anahtar (özel anahtar) ve buna karşılık gelen bir genel anahtar (açık anahtar) içerir.
- Bölge İmzalama: İmzalama anahtarları oluşturulduktan sonra, alan adı kayıtları (DNS kayıtları) imzalanır. Her kaydın bir dijital imzası oluşturulur, bu da kaydın bütünlüğünü ve doğruluğunu sağlar. İmzalama işlemi, özel anahtar kullanılarak gerçekleştirilir.
- Açık Anahtar Yayınlama: İmzalama işlemi tamamlandıktan sonra, genel anahtar, DNS sunucusunda yayınlanır. Bu, DNS istemcilerinin (örneğin, web tarayıcıları) alınan DNS yanıtlarını doğrulamasına olanak sağlar.
- Güven Zinciri: DNSSEC’de güvenlik zinciri önemlidir. Güven zinciri, DNS hiyerarşisi boyunca doğrulama sürecini destekler. Üst düzey etki alanı sunucuları, alt düzey etki alanı sunucularının (alt etki alanlarına sahip web siteleri) doğrulanmasını sağlayan dijital imzaları taşır. Böylece, bir kullanıcı bir etki alanı sorguladığında, yanıtın doğruluğunu doğrulayabilir.
- Doğrulama: DNS istemcileri, DNSSEC desteği olan bir DNS sunucusuna bir sorgu gönderdiğinde, sunucu DNSSEC imzalı kayıtlarla yanıt verir. Yanıttaki imzalar, DNS kayıtlarının doğruluğunu sağlamak için kullanılır.
- İmza Doğrulama: DNS istemcileri, aldıkları DNS yanıtlarındaki dijital imzaları doğrular. Bu doğrulama süreci, ilgili genel anahtarlarla imza doğrulama işlemi kullanılarak gerçekleştirilir. İmzalar doğrulandığında, DNS kayıtlarının bütünlüğü ve doğruluğu onaylanmış olur.
DNSSEC’in kullanılması, DNS üzerindeki çeşitli saldırı türlerine karşı koruma sağlar. Örneğin, DNS cache zehirleme saldırılarına karşı etkilidir. Bu tür saldırılar, yanıltıcı DNS kayıtlarının bir DNS sunucusunun önbelleğine enjekte edilerek kullanıcıları yanlış web sitelerine yönlendirir. DNSSEC ile, DNS kayıtlarının imzalanması ve doğrulanması sayesinde bu saldırı türleri önlenebilir.
DNSSEC, internetin güvenliğini artıran bir önlem olarak kabul edilir. Ancak, tam olarak etkili olabilmesi için DNSSEC’in hem etki alanı kaydedicileri hem de DNS sunucuları tarafından desteklenmesi gerekmektedir. Ayrıca, DNSSEC’in yaygın olarak benimsenmesi için internet altyapısında ve tarayıcı desteğinde değişikliklerin yapılması gerekmektedir.
DNSSEC, internetin güvenliğini artıran ve DNS üzerindeki saldırıları önleyen bir teknolojidir. Bu makalede, DNSSEC’in temel çalışma prensiplerini ve önemini açıklamaya çalıştım. Ancak, DNSSEC’in ayrıntılı teknik detayları ve uygulama yönergeleri için resmi DNSSEC kaynaklarını incelemeniz önerilir.
Ubuntu 20.04 üzerinde DNSSEC kurulumu için aşağıdaki adımları izleyebilirsiniz:
Paket Güncellemesi: Öncelikle sistem paketlerini güncellemeniz gerekmektedir. Terminali açın ve aşağıdaki komutları sırasıyla çalıştırın:
sudo apt update
sudo apt upgrade
DNSSEC Araçlarının Kurulumu: DNSSEC araçlarını yüklemek için aşağıdaki komutu kullanın:
sudo apt install dnssec-tools
DNSSEC Anahtar Çiftlerinin Oluşturulması: DNSSEC için kullanılacak anahtar çiftlerini oluşturmanız gerekmektedir. Aşağıdaki komutu kullanarak anahtar çiftlerini oluşturun:
sudo dnssec-keygen -a NSEC3RSASHA1 -b 2048 -n ZONE example.com
Yukarıdaki komutta “example.com” yerine kendi alan adınızı kullanmalısınız. Bu komut, özel ve genel anahtar çiftlerini oluşturacaktır.
Anahtarların DNS Sunucusuna Eklenmesi: Oluşturulan anahtarları DNS sunucusuna eklemek için aşağıdaki komutu kullanın:
sudo dnssec-dsfromkey example.com.+008+12345
Yine, “example.com” alan adınızı kendi alan adınızla değiştirmelisiniz. Bu komut, DNS sunucusuna eklenecek olan DS (Delegation Signer) kaydını üretecektir.
DS Kaydının Kaydedilmesi: Oluşturulan DS kaydını alan adınızı yöneten alan adı kaydedicisine (domain registrar) göndermelisiniz. DS kaydını almak için aşağıdaki komutu kullanın:
sudo cat Kexample.com.+008+12345.dsset
Bu komut, DS kaydını terminale yazdıracaktır. Bu kaydı alan adı kaydedicinize ileterek DNSSEC desteğini etkinleştirmiş olursunuz.
DNS Sunucusunun Yapılandırılması: DNS sunucusunun yapılandırma dosyasını düzenleyerek DNSSEC ayarlarını yapmanız gerekmektedir. Örneğin, bind9 DNS sunucusunu kullanıyorsanız, “/etc/bind/named.conf.options” dosyasını düzenleyebilirsiniz. Aşağıdaki gibi ayarları ekleyin:
dnssec-enable yes;
dnssec-validation yes;
Bu ayarlar DNSSEC desteğini açacak ve DNSSEC doğrulamasını etkinleştirecektir.
DNS Sunucusunun Yeniden Başlatılması: Yapılandırmaları tamamladıktan sonra DNS sunucusunu yeniden başlatmanız gerekmektedir. Aşağıdaki komutu kullanarak DNS sunucusunu yeniden başlatın:
sudo service bind9 restart
DNS sunucusu başarıyla yeniden başladıktan