Team: Windows Platform Türkiye

Microsoft Türkiye Kurumsal Teknik Destek ekibinde görev yapan mühendislerin bilgilerini yazıya döktükleri bir ortam

Windows Server 2008 ve R2’de yenilikler – 1 – DNS Sunucu/İstemci

Windows Server 2008 ve R2’de yenilikler – 1 – DNS Sunucu/İstemci

  • Comments 1
  • Likes

Merhaba,

Her geçen gün Windows Server 2008 ve Windows Server 2008 R2 kurulumu yapan müşterilerimizin sayısı artıyor. Ben bu yazımda herkesçe daha çok bilinen ve kullanılan servislerden olduğunu düşündüğüm DNS ve DHCP servislerinde yapılan değişiklikler, yeni özellikler ve bunların kurumsal ortamlara katabileceği kolaylıklardan bahsetmek istiyorum.

DNS servisi ile başlarsak, bu yenilikler şunlardır:

1.      IPv6 desteği ile birlikte AAAA (4A kaydı) kaydının eklenmesi

    • Windows Server 2003 DNS konsolu üzerinde 128 bit uzunluğundaki 4A kaydı yaratılmasını sağlayabiliyoruz. 2008/R2 ile birlikte tam destek gelmiştir ve güncelleştirmeleri de kabul etmektedir.
    • En büyük kolaylık “Reverse Zone” olarak IPv6 subnet’lerinin yaratılmasındadır. Sadece IPv6 prefix’i belirtilerek zone’un yaratılması sağlanabilir.

2.      Global Name Zone (Genel Tek Adlar)

·         Windows NT 4.0’dan bu yana kullanılan WINS isim çözümlemesi yani NetBIOS (single-label/tek etiketli) isimlerinin çözümlenmesi için ayrı bir servis yerine bir etki alanı/bölge mantığında isim çözümlemesine yarar.

·         Uygulama ve kullanıcı NetBIOS isim çözümlemesi isteğinde bulunduğunda, dnsapi sistemin dahil olduğu etki alanı veya Group Policy ya da DHCP ile sağlanan ekleri kullanarak sorguyu FQDN (Fully Qualified Domain Name) olarak gönderir. Herhangi bir etki alanına dahil olmayan cihazların, örneğin yazıcılar gibi, ismini çözmek için WINS servisini kurmak yerine GlobalNames zone kullanılabilir.

·         Bu özellik client tarafında ayrıca bir değişiklik gerektirmediğinden, 2008 geçişi ile birlikte WINS servislerinin ortamdan kadırılması için karar vermeyi kolaylaştıracaktır. Tabii ki NetBIOS isimlerini kullanan Session-layer uygulamalarınız varsa halen NetBIOS isimlerini ihtiyaç duyarsınız. Ancak bu durumda illa ki WINS kullanmak zorunda değilsiniz.

·         Ayrıca daha önce yapılandırmalarda sıklıkla karşıma çıkan bir soruna da çözüm olacaktır. Birden fazla domain etki alanı olan yada farklı suffix’ler kullanılan ortamlarda tüm client’ların single-label isimler kullanarak bazı uygulamalara erişmesi için Ağ yöneticileri her bir DNS zone üzerinde o uygulama sunucusu için kayıt oluşturmak zorundadırlar. Eskiden beri gelen alışkanlık, WINS servisi kullanmaktır ki isim değişiklikleri ve bunların güncelleştirmesi düşünüldüğünde mantıklıdır. Örnek vermek gerekirse, diyelim holding.com ana etki alanında akdeniz.holding.com ve marmara.holding.com gibi bölge ve alt etki alanları olduğunu düşünelim. Fiziksel yönlendirmelerin doğru yapıldığı bir ağda tüm kullanıcıların sadece tek bir isim kullanarak bir Web uygulamasına  erişmesini isterseniz, diyelim ki adı “WEBO” olsun, webo.akdeniz.holding.com ve webo.marmara.holding.com altında iki tane kayıt oluşturmanız gerekecek. Ayrıca sonra ki isim ve IP değişikliklerini de manüel takip etmek gerekecek. ancak GlobalNames ile sadece WEBO ismini yaratmanız yeterli olacaktır.

·         GlobalNames dinamik güncelleştirmeleri desteklememektedir.

3.      Background zone loading (Arka planda bölge yükleme)

·         Windows 2000 Server’dan bu yana Domain etki alanları ve DNS bölgeleri Active Directory üzerinde tutulup, aynı etki alanındaki DC’ler tarafından paylaşılmaktadır. Genelde birçok sistem yöneticisi üzerinde DNS servisi olan DC’lerin TCP/IP ayarlarında birincil DNS olarak kendilerini gösterirler. Bu durumda sunucuyu başlattığınızda, DNS servisi zone’ları yüklemek için AD servisinin ayağa kalkmasına ihtiyaç duymaktadır. AD servisi de diğer DC’ler ile etkileşime geçebilmek DNS servisinin ayağa kalkmasını beklemektedir. İkincil bir DNS tanımı ile bu süreci hızlandırabilsek de DNS servisinin AD’den yükleme yapmasını Windows Server 2008’e kadar hızlandıramamıştık. Bu özellik ile birlikte, DNS servisi kendisine gönderilen DNS sorgularını neredeyse hemen cevaplamaya başlar. Bunu yapabilmek içinde öncelikle yüklemesi gereken zone bilgilerini toparlar ve bunu AD’den ister; kayıtların tamamı yüklenene kadar ise gelen tüm isteklere cevap verir. Eğer hali hazırda yüklemeyi bitirdiği bir kayıt sorgulanıyorsa, cevap verir, aksi halde yüklenmesini beklemeden, yeni bir thread daha oluşturarak sorgusu yapılan kaydın yüklenmesini ve böylelikle cevabın gönderilmesini sağlar.

·         Özetle, DNS servisi başladığında birden fazla thread kullanarak AD’den yüklemeyi başlatır ve böylelikle hem süreç hızlanır hemde sorgulara cevap vermek için bu sürecin bitmesini beklemek zorunda kalmayız.

4.      Read-Only Domain Controller (RODC) Desteği

·         Windows Server 2008 ile birlikte gelen RODC özelliğini DNS sunucuları da yeni primary read-only zone ile desteklemektedir.

·         Bir sunucuyu RODC yaptığınızda application directory partition altında yer alan ForestDNSZones ve DomainDNSZones zone’larının birer salt okunur (read-only) kopyasını oluşturmaktadır. Adından da anlaşılacağı gibi üzerinde DNS servisi çalışan RODC’lerde DNS kayıtları ile ilgili bir değişiklik yapamazsınız. RODC kullanımındaki asıl amaç fiziksel güvenliğin sağlanamayacağı ortamlara DC kurulmasını sağlamktır.

5.      Global Query Block List (Genel Sorgu Engelleme Listesi)

·         Bu özellik bir güvenlik güncelleştirmesi ile birlikte önceki DNS sunucu sürümlerine de yüklenebilmektedir: KB968732

·         Buradaki amaç kötü niyetli kişilerin bazı özel isimleri DNS’e kaydetmesini engellemektir. Etki alanında yetkili her kullanıcı kullandığı sisteme istediği ismi verebilir, tabii ki aksini söyleyen bir şirket politikası yoksa. Bu durumda örneğin bir kullanıcı sistemine WPAD adını verebilir. WPAD (Web Proxy Auto-discovery Protocol) yani Web Proxy Otomatik Bulma Protokolü Internet Explorer tarafından kullanılan ve bir Web Proxy sunucusu bulmaya yarayan protokoldür. Eğer siz WPAD isminde bir sistemi DNS’e kaydederseniz, tüm IE kullanıcılarını o sistem üzerinden Internet’e çıkmaya zorlayabilirsiniz. Bunu engellemek için yöneticiler genelde WPAD isminde herhangi bir IP’yi adreslemeyen kayıt oluştururlar. Aynı durum ISATAP (Intra-Site Automatic Tunnel Addressing Protocol) için de geçerlidir. IPv6 istemciler WPAD yöntemine benzer şekilde ISATAP sunucuları ararlar.

·         Basitçe bu yeni özellik GlobalQueryBlockList adında bir listenin oluşturulması ve varsayılan olarak, eğer etki alanında kayıtlı değilse, WPAD ile ISATAP isimlerinin buraya eklenmesidir. Bu listeye tabii ki çözümlenmesi istenmeyen diğer isimler de eklenebilir. İsminden de anlaşılacağı gibi Global bir listedir ve o DNS sunucusu üzerinde yüklenen tüm zone’lar için geçerlidir. GlobalNames örneğinde olduğu gibi bu sefer de tüm kullanıcıların WEBO ismindeki sisteme erişmesini engellemek isterseniz, ismi bu listeye ekleyip DNS servisini yeniden başlatmanız yeterlidir.

6.      DNSSEC (Sadece R2)

·         Bu DNS güvenlik özelliği sadece Windows Server 2008 R2 (ayrıca Windows 7)’de bulunan hem sunucu hem de istemci tarafından kullanılan bir özelliktir.

·         DNS istemcisi bir sorgu gönderdiğinde aldığı cevabın değiştirilip, değiştirilmediğini ya da kimden geldiğini kontrol etmeden aldığı cevaba göre işlemine devam eder. Bu durumda arada ki bir kişi tarafından yanıltıcı cevaplar gönderilebilir. DNS istemcisi normalda sorgusuna uygun olmayan cevaplar ile ilgilenmez ancak bir şekilde bu aradaki kişi “authoritative” bir cevaptan önce DNS istemcisinin beklediği cevabı verebilirse, istemciyi farklı bir IP adresine yönlendirebilir. Aynı şekilde “recursive” sorgular yapan DNS sunucuları da benzer ataktan etkilenebilirler. Bunun için DNSSEC özelliği ile birlikte “data integrity” (data doğrulaması) eklenmiştir.

·         Şimdiye kadar sadece DNS güncelleştirmelerinde ve eğer zone “secure-only” ise karşılıklı olarak kimlik doğrulaması yapılmaktadır. DNSSEC ile birlikte sadece güncelleştirmelerde değil, DNS sorgularında da gelen cevabın bizim istediğimiz DNS’den gelip, gelmediğine dair bir kontrol yapılmaktadır.

7.      DNS Devolution

·         Bu özellik R2 ile birlikte DNS istemcilerine varsayılan olarak eklenmiştir. Diğer sürümler için ise KB957579 güvenlik güncelleştirmesi yayınlanmıştır. Bu sunucu değil istemci özelliğidir.

·         Devolution özelliğinden bahsetmek gerekirse, daha önce de bahsettiğim gibi DNS istemcilerinin bir uygulamadan yada elle girerek gönderdikleri tek isimli sorguları sistem etki alanı adını ekleyerek FQDN haline getirir ve o şekilde sorguyu gönderir. Aksi belirtilmedikçe, istemci eğer isim çözülemezse etki alanı isminin sol tarafında kalan eki atarak bir kere daha sorgu atar ve bu şekilde ismi çözemedikçe tekrarlar. Artık varsayılan bu hareketi sınırlamanın bir yolu vardır. Örneğin Akdeniz.holding.com.tr etki alanındaki bir kullanıcı “BenimPC” adına bir sorgu gönderirise, bu sorgu öncelikle benimpc.akdeniz.holding.com.tr olarak gönderilir. Eğer yanıt alınamazsa, en soldaki eki atarak tekrar gönderir: benimpc.holding.com.tr. Tekrar yanıt alınamazsa, bu sefer soldan bir ek daha atarak “benimpc.com.tr” yi dener. İşte bu özelliğe Devolution denmektedir.

·         Eğer Suffix listesi GPO ile basılıyorsa, “devolution” kullanılmaz ve sadece listede belirtilen isimler kullanılır.

·         Eğer istemcinin TCP/IP özelliklerinde isimlerin nasıl eklenileceği ile ilgili olarak “append parent suffixes of the primary DNS suffix” seçimi yoksa yine bu özellik kullanılmaz ki varsayılan olarak vardır.

·         Bu özellik iki registry anahtarıyla kontrol edilmektedir:

§  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\UseDomainNameDevolution: 0 (kapalı) veya 1 (açık)

§  HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\DomainNameDevolutionLevel: Minimum 2. (varsayılan değer 2’dir.)

·         Örneğin yukarıdaki örneğe göre bu değerler sırasıyla 1 ve 3 olsaydı, istemcinin son göndereceği sorgu benimpc.holding.com.tr olacaktı. (3 = holding.com.tr)

·         Burada dikkat edilmesi gereken yanlış DomainNameDevolutionLevel verilerek organizasyon içerisinde kullanıcıların Forest seviyesindeki isimleri çözememesi gibi sorunlara sebep olmamaktır. Bu güvenlik güncelleştirmesi ile birlikte Devolution seviyesi otomatik olarak belirlenmektedir. Daha fazla detay için yukarıda bahsettiğim makaleye bakabilirsiniz.

8.      DNS Cache Locking (Sadece R2)

·         Daha önce yazmış olduğum DNS güncelleştirmeleri ile ilgili yazımda Kaminsky DNS Vulnerability adındaki açıktan bahsedeceğimi belirtmiştim. Şimdi sırası gelmişken bu özellik ile birlikte kısaca bir özetlemek isterim. Bu açıktaki asıl hedef DNS sunucusunun önbelliğidir (cache). Önbellek sorgusu yapılıp cevaplanan sorguların yeniden sorgulanmaması için kaydın TTL olarak belirtilen zamanı süresince saklanması için kullanılır. Hem DNS sunucusunun hem de istemcilerin kullandıkları önbellekler farklıdır. Kaminsky açığı da işte bu noktada önbelleğe gerçek olmayan yanıltıcı IP adresleri yazmayı hedeflemektedir. DNS sunucusuna sürekli olarak belirli bir etki alanının alt etki alanlarına ait sorgular göndererek, onun “bilmiyorum ama şu adrese sorabilirsin” demesini yani referral göndermesini sağlamak ve işte o referral için yanıltıcı bir IP adresi yazabilmektir.

·         DNS Sunucusu önbelleğine aldığı her cevabı eğer bir değişiklik varsa günceller. DNS Cache Locking (DNS önbellek kilitlemesi) ise bu güncelleştirmeleri engellemek için kullanılır.

·         HKLM\SYSTEM\CurrentControlSet\Services\DNS\Parameters\CacheLockingPercent anahtarında bu güncelleştirmenin TTL değerinin % kaçı kadar süre boyunca engelleneceğini belirtebiliriz. Varsayılan olarak bu değer 100’dür. Yani TTl değeri 4 saat olan bir kayıt ancak 4 saat sonunda güncellenebilir. Zaten TTL değeri sona erdiğinde kayıt önbellekten de silinecektir. Bu değeri 50 olarak veririseniz, TTL’in %50’si yani 2 saat boyunda güncelleme istekleri engellenecektir.

9.      DNS Socket Pool

·         Yine daha önce belirttiğim güncelleştirmeler ile kazandırılan Socket Pool yöntemiyle kaynak bağlantı noktalarının rastgele olarak seçilmesi özelliği 2008 ve R2 DNS sunucularında da vardır. Burada amaç tahmin edilebilecek kaynak bağlantı noktaları yerine kullanılacak bağlantı noktalarını rastgele seçerek tahmin edilmesini engellemektir.

·         HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\DNS\Parameters\SocketPoolSize anahtarı ile kaç adet bağlantı noktası arasından seçim yapılacağı belirtilebilir. Varsayılan olarak bu değer 2.500’dür.

·         R2’de buna ek olarak bağlantı noktalarından bazılarının kullanılmamasını sağlayabiliriz. Örneğin bir uygulama 51000-51100 arasındaki bağlantı noktalarını kullanıyorsa, yine aynı dizinde bulunan SocketPoolExcludedPortRanges anahtarı ile bu aralığın DNS sunucusu tarafından kullanılmasını engelleyebiliriz.

·         Önceki yazımdaReservedPorts” anahtarı ile de bunun yapılabileceğini belirtmiştim. Buradaki fark, “ReservedPorts” anahtarı o sistem üzerinde ki tüm Windows Socket uygulamalarını kapsarken, SocketPoolExcludedPortRanges sadece DNS servisinin kullanmasını engelleyeceğimiz bağlantı noktalarını belirtir.

Bir sonraki yazımda DHCP servisi için getirilen yenilikler ve uygulamalarından bahsedeceğim.

Okan Çetinim.

Comments
  • Okan bey, bilgiler için çok teşekkürler.

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment