Last updated on 26 Şubat 2019
DNSSEC
Domain Name System Security Extensions (DNSSEC), DNS sunucularının diğer DNS sunucuları tarafından verilen yanıtların geçerliliğini doğrulayarak DNS’ye güvenliği sağlar. DNSSEC, dijital imzaların DNS bölgeleri ile kullanılmasını sağlar. DNS çözümleyici, imzalanmış bir bölgede bir kayıt için bir sorgu gönderdiğinde, yetkili DNS sunucusu hem kayıt hem de dijital imza sağlar; bu kayıt doğrulamasını etkinleştirir.
DNSSEC’yi yapılandırmak için aşağıdaki adımları uygulamalıyız:
- DNS Manager üzerinden ilgili zone üzerine sağ tıklayıp; DNSSEC seçilir ve “Sign the Zone” seçeneğine tıklanır.
- İmzalama seçenekleri sayfasında, Zone imzalama, varsayılan ayarlarını kullan seçilir.
DNSSEC’yi yapılandırdığınızda , 3 yeni kaynak kaydı kullanılabilir.
Bu kayıtların özellikleri aşağıdaki gibidir:
Resource Record Signature (RRSIG) record. Bu kayıt bölgede saklanır ve her biri farklı bir bölge kaydı ile ilişkilendirilir. DNS sunucusu bir bölge kaydı için sorulduğunda, kayıt ve ilişkili RRSIG kaydını döndürür.
DNSKEY. Bu, RRSIG kayıtlarının doğrulamasını sağlayan açık anahtar kaynak kaydıdır.
Next Secure (NSEC/NSEC3) record. Bu kayıt, kayıt bulunmadığının bir kanıtı olarak kullanılır. Örneğin, microsoft.com bölgesi DNSSEC ile yapılandırılmıştır. Bir istemci, ana makine kaydı ankara.microsoft.com için bir sorgu gönderir ve ankara.microsoft.com için kayıt yoksa, böyle bir kayıt bulunmadığını sorguyu yapan ana makineye bildiren NSEC kaydı döner.
Özel kaynak kayıtlarına ek olarak, bir DNSSEC uygulaması aşağıdaki bileşenlere sahiptir:
Trust anchor. Zone ile ilişkili özel bir genel anahtardır. Turst anchor, bir DNS sunucusunun DNSKEY kaynak kayıtlarını doğrulamasını sağlar. DNSSEC’i bir etki alanı denetleyicisinde barındırılan bir DNS sunucusunda çalıştırırsanız, Trust anchor Active Directory orman dizini bölümünde depolanabilir. Ormandaki etki alanı denetleyicilerinde barındırılan tüm DNS sunucularına Trust anchoru çoğaltır.
DNSSEC Key Master. Bu bir DNSSEC korumalı bölgenin imzalama anahtarlarını oluşturmak ve yönetmek için kullandığınız özel bir DNS sunucusudur. Standart veya entegre olmasına bakılmaksızın, birincil bölgeyi barındıran Windows Server 2012 veya sonrası çalıştıran herhangi bir bilgisayar bir DNSSEC Anahtar Yöneticisi olarak çalıştırılabilir. Tek bir bilgisayar birden çok bölge için DNSSEC Anahtar Yöneticisi olarak işlev görebilir. DNSSEC Anahtar Yöneticisi rolü birincil bölgeyi barındıran başka bir DNS sunucusuna da aktarılabilir.
Key Signing Key (KSK). Zone root’unda ki, tüm DNSKEY kayıtlarını imzalamak için KSK’yı kullanabiliriz. KSK’yi, DNSSEC Anahtar Yöneticisini kullanarak oluşturabiliriz.
Zone Signing Key (ZSK). ZSK’yi, zone’da barındırılan bağımsız kayıtlar gibi zone verilerini imzalamak için kullanılır. ZSK’yi DNSSEC Anahtar Yöneticisini kullanarak oluşturabiliriz.
Grup ilkesini, istemcilerin belirli bir bölge için bir DNS sunucusundaki kayıtları yalnızca DNSSEC kullanılarak imzalanmış olması durumunda kabul etmelerini sağlamak üzere yapılandırabilirsiniz. Bunu, bir GPO’nun Bilgisayar Yapılandırması \ İlkeleri \ Windows Ayarları \ Ad Çözümleme İlkesi düğümünde bulunan Ad Çözümleme İlkesi Tablosunu yapılandırarak yapabiliriz. Tabloda girişler oluşturursunuz; Örneğin, belirli bir bölgeye yönelik tüm sorguların DNSSEC doğrulamasını gerektirmesini gerektirir. NRPT’yi Grup İlkesi veya Windows PowerShell vasıtasıyla yapılandırılabilir.
DNSSEC, IPSec ve kimlik doğrulama anahtarlarının kullanıldığı yerler gibi yüksek güvenlik ortamları için uygundur. DNSSEC, istemcilere yanlış DNS bilgileri verildiği saldırılara karşı koruma sağlar. Birçok küçük ve orta ölçekli ortamda, bu tür bir saldırı olasılığı azdır, ancak yüksek güvenlik ortamlarında, DNSSEC’in etkinleştirilmesi ihtiyatlı bir önlemdir.
DNS Manager, aracılığıyla DNSSEC uygulanacak Zone üzerine sağ tıklanıp, DNSSEC > Sign the Zone seçilir.
Açılan sihirbazda DNSSEC hakkında bilgiler verilmektedir, Next diyerek ilerliyoruz.
İmzalama seçeneklerinde, varsayılan ayarlar ile zone’u imzalayı seçerek devam ediyoruz.
Zone’un imzalandığına dair bilgilendirme uyarı ekranında Finish diyerek sayfayı kapatabiliriz.
İmzalama yapmış olduğumuz zone üzerine tekrardan sağ tıklayıp, DNSSEC menüsü üzerinden, Özelliklere tıklayıp. Özellik sekmesini seçiyoruz.
Özellikler sayfasından, Trust Anchor sekmesi seçilir ve açılan sayfadan; “Enable the distribution of trust anchors for this zone.” seçeneği seçilir ve OK butonuyla ilgili işlem onaylanarak çıkış sağlanır.
DNSSEC parametlerinde güncelleme yaptığımız için tekrardan ilgili işlemi onaylayacağımıza dair bilgi verilmektedir.
İlgili işlemin gerçekleştiğinin bilgisi ekrana gelmiştir.
Group Policy Management aracılığıyla, yeni bir policy oluşturulabilir. Ben test amaçlı olduğu için default domain policy üzerinden DNSSEC yapılandırmalarını gerçekleştireceğim.
Default Domain Policy üzerine sağ tıklayıp, düzenleye tıklıyoruz. Açılan sayfadan; Computer Configuration/Policies/Windows Settings/Name Resolution Policy/ seçilir. Name Resolution Policy sayfasından, Create Rules ekranında, Suffix karşısına DNSSEC uygulanan zone adı yazılır, DNSSEC sekmesinden, Enable DNSSEC in this rule ve Validation seçeneği seçilip, Create butonuna basılır.
DNS Options
Yüksek güvenlikli ortamlarda, bir DNS sunucusunu sahtekarlık yapmaya çalışan saldırganlardan daha güvenli hale getirmek için yapabileceğiniz birkaç adım vardır. DNS Sunucumuza sızma işlemi gerçekleştiği takdirde; sunucuyu, istemcileri kötü amaçlı sitelere yönlendiren kayıtlar sağlamasına neden olabilir. DNSSEC, sunucuda barındırılan zonelar için güvenlik sağlarken, DNS sunucusu trafiğinin çoğunu uzak DNS sunucularından bilgi alınması ve bu bilgileri istemcilere iletilmesi sağlar. Bu başlık altında, kötü niyetli bir üçüncü tarafın kuruluşunuzun DNS sunucularını sızmaya çalışması durumunda, istemcilere aktarılan bilgilerin bütünlüğünü korumasını sağlamak üzere yapılandırabileceğiniz ayarlar hakkında bilgi vermeye çalışacağım.
DNS Socket Pool
DNS soketi havuzu, uzak DNS sunucularına DNS sorguları gönderirken port değiştirme kullanarak cash değiştirme ve sızma saldırılarını daha zor hale getiren bir teknolojidir. DNS sunucusu değiştirilmiş bir kayıtla sızdırmak için, saldırganın hangi rastgele bağlantı noktasının kullanıldığını ve sorguyla birlikte verilen rastgele işlem kimliğini tahmin etmesi gerekir. Windows Server 2012 işletim sisteminde çalışan DNS sunucusu varsayılan olarak 2,500 soket havuzu kullanır. Soket havuzu boyutunu 0 ile 10.000 arasında bir değere değiştirmek için dnscmd komut satırı aracını kullanabiliriz. Örneğin, soket havuzu boyutunu 4000 olarak ayarlamak için aşağıdaki komutu kullanabiliriz:
Dnscmd /config /socketpoolsize 4000
Yeniden yapılandırılmış soket havuzu boyutunu kullanabilmeniz için önce DNS hizmetini yeniden başlatmalısınız.
DNS Cache Locking
DNS sunucusu önbellekte saklanan bilgilerin üzerine yazılacağı zamanı kontrol etmenizi sağlar. Örneğin, özyinelemeli bir DNS sunucusu, başka bir DNS sunucusunda barındırılan bir kayıt için bir sorguyu yanıtladığında, sorgunun sonuçlarını önbelleğe alır; aynı kayıt, kaynak kaydının Time to LİVE (TTL) değerinde tekrar sorulursa uzaktaki DNS sunucusuyla bağlantı kurmanız gerekir. DNS Cache Locking, bir DNS sunucusu önbellekindeki kayıt verisinin, yapılandırılmış TTL değerinin yüzdesi dolana kadar üzerine yazılmasını önler. Varsayılan olarak, Cache Locking değeri yüzde 100 olarak ayarlanır, ancak Set-DNSServerCache cmdlet’i Kilitleme Oranı seçeneğiyle sıfırlayabilirsiniz.
Set-DNSServerCache –LockingPercent 80
DNS Security
Varsayılan olarak, aşağıdaki grupların kuruluşunuzun DNS sunucuları üzerinde organizasyon yetkileri vardır:
- Domain Admins: Yerel etki alanındaki DNS sunucusunun tüm yönlerini yönetmek için tam izinlere sahiptir
- Enterprise Admins: AD DS ormanınızdaki herhangi bir alandaki tüm DNS sunucularının tüm yönlerini yönetmek için tam izinlere sahiptir.
- DnsAdmins: Yerel etki alanındaki tüm DNS sunucularının tüm DNS verilerini, ayarlarını ve yapılandırmalarını görüntüleyebilir ve düzenleyebilir.
DNS makale serimizin devamında görüşmek üzere,