Merhabalar,
Bu yazımızda Windows Server 2016 ile tanıtılan ve Server 2025 sürümünde daha da olgunlaşan DNS Policy (DNS Politikaları) özelliğini kaleme alıyor olacağız. Klasik DNS davranışının ötesine geçerek isteklerin geldiği istemciye göre özelleştirilmiş yanıtlar verme imkanı sunar. Artık DNS sunucusu sadece kayıt neyse onu döndürmekle yetinmiyor; istemcinin IP’sine, subnet’ine, sorgu türüne, günün saatine, hatta gelen sorgunun TCP mi UDP mi olduğuna bakarak farklı cevaplar verebiliyor.
Bu, özellikle aşağıdaki senaryolarda BT yöneticilerine büyük esneklik sağlıyor:
-
Aynı alan adı için farklı ofis lokasyonlarına göre farklı IP adresi döndürme
-
Coğrafi olarak yakın sunuculara yönlendirme (geo-distribution)
-
İç ağ ve dış ağ kullanıcıları için farklı DNS cevapları üretme
-
DNS sorgularının belirli kurallara göre engellenmesi veya yönlendirilmesi
Kullanım Senaryoları
DNS Policy özelliğini kullanarak aşağıdaki gibi gelişmiş senaryoları hayata geçirebilirsiniz:
Senaryo Adı | Açıklama |
---|---|
Split-Brain DNS | Aynı alan adı için iç ve dış kullanıcılara farklı IP’ler döndürülmesi |
Geo-Location Routing | İstemcinin bölgesine göre en yakın veri merkezine yönlendirme |
İzole Edilmiş Test Ortamı | Belirli subnet’lerden gelen istemcilere staging/test sunucularının IP’si verilmesi |
Gelişmiş Güvenlik | Belirli ülkelerden gelen DNS sorgularını reddetme ya da alternatif IP’lere yönlendirme |
Bu senaryolar, DNS sorgularına filtre uygulayarak, belirli istemcilerden gelen sorguların reddedilmesi veya farklı şekillerde yönlendirilmesi sağlanarak kullanılabilir. O zaman şu soruya da cevap verelim.
DNS Sorgu Filtrelemesi Nedir?
DNS sorgu filtrelemesi, DNS sunucusuna gelen isteklerin kaynak IP adresine, kayıt türüne veya sorgulanan alan adına göre işlenmesini kontrol etmeye yarar. Böylece:
-
İstenilen istemcilerin istenilen domain’leri çözmemesi sağlanabilir,
-
Belirli zamanlarda gelen sorgular filtrelenebilir,
-
Potansiyel tehdit oluşturabilecek sorgular engellenebilir.
Bu, özellikle DNS tabanlı veri sızıntısı (DNS exfiltration) veya DNS üzerinden kötü amaçlı yazılım iletişimi gibi senaryoları engellemek için çok kritik bir kontrol katmanıdır.
DNS Sorgularını Filtrelemenin Kullanım Alanları
-
Dış istemcilerin hassas iç domain’leri sorgulamasını engellemek
-
İç kullanıcıların belirli tipteki kayıtları (örneğin TXT) sorgulamasını sınırlandırmak
-
İstemci subnet’ine göre çözümleme davranışını değiştirmek
-
Kötü niyetli IP’lere DNS hizmeti sunmamak
🎯 Uygulamalı Örnek
Kurumsal bir kurumda görev alırken, ortamda bulunan NAC ve AccessPointler sebebiyle farklı yerleşkedeki (farklı subnetlerdeki) client’lara kendi subnetindeki AP ‘lerin (farklı AP adresleri) ip adresleri döndürülmesi gerekiyordu. Biz örneğimizde aynı DNS sunucusun üzerinden aynı sorguya farklı clientlerda farklı cevaplar döndüğünü göreceğiz.
Ortamımızda Windows Server 2025 AD ortamı mevcuttur ve DNS hizmeti Domain Controller üzerinde koşmaktadır.
Senaryomuz şu:
Aynı DNS sunucusu üzerinde tanımlı olan www.m3g.intra
için,
-
10.10.10.0/24 subnet’inden gelen istemcilere
192.168.10.10
-
10.20.20.0/24 subnet’inden gelen istemcilere
172.18.20.20
cevabı verilecek.
Yapılandırmalar için DNS sunucumuz üzerinde oturum açarak Powershell penceresini açıyoruz.
Add-DnsServerClienSubnet -Name “VLAN01” -IPv4Subnet “10.10.10.0/24” -PassThru
Add-DnsServerClienSubnet -Name “VLAN02” -IPv4Subnet “10.20.20.0/24” -PassThru
komutlarını çalıştırarak kullanacağımız subnetleri DNS sunucu üzerinde tanımlıyoruz.
DNS Politikamızda kullanacağımız zone için o zone ‘a ait scope ‘ları belirlemek için,
Add-DnsServerZoneScope -ZoneName “m3g.intra” -Name “VLAN01_ZoneScope”
Add-DnsServerZoneScope -ZoneName “m3g.intra” -Name “VLAN02_ZoneScope”
komutlarını kullanıyoruz. Dilerseniz Get-DnsServerZone komutunu kullanarak DNS Sunucu üzerindeki zone ‘ları görebilirsiniz. Sadece zone ‘a ait scope ‘ları görmek isterseniz, Get-DnsServerZoneScope -ZoneName “m3g.intra” komutu ile listeyelebilirsiniz.
Bu tanımlamalar sonrası artık dns sorguları için politikamızı belirleyebiliriz.
Add-DnsServerQueryResolutionPolicy -Name “VLAN01_Policy” -Action ALLOW -ClientSubnet “eq,VLAN01” -ZoneName “m3g.intra” -ZoneScope “VLAN01_ZoneScope”
Add-DnsServerQueryResolutionPolicy -Name “VLAN02_Policy” -Action ALLOW -ClientSubnet “eq,VLAN02” -ZoneName “m3g.intra” -ZoneScope “VLAN02_ZoneScope”
komutlarını kullanarak query politikamızı belirliyoruz. Yukarıdaki dns sorgu filtresinde -Action parametresi DENY ve IGNORE değerlerini alabilir. Ayrıca ClientSubnet parametresinde ben eq (equal) eşitliğini kullandım fakat ne (not equal) seçilerek de ortamınıza uygun filtreler yazılabilir.
Yukarıdaki komut setleri ile, subnet tanımlaması yapıldı, scope tanımlaması yapıldı, politika tanımlaması yapıldı. Artık tek adım kaldı o da ilgili dns kaydının oluşturulması. Bunun için aşağıdaki komutları kullanabilirsiniz.
Add-DnsServerResourceRecord -ZoneName “m3g.intra” -ZoneScope “VLAN01_ZoneScope” -A -Name “www” -IPv4Address “192.168.10.10” -PassThru
Add-DnsServerResourceRecord -ZoneName “m3g.intra” -ZoneScope “VLAN02_ZoneScope” -A -Name “www” -IPv4Address “172.18.20.20” -PassThru
Üstteki komut ile, İlgili zone ‘a hangi zone scope ‘u için hangi kaydı girdiğimizi ve hangi adrese gitmesi gerektiğini belirtiyoruz. Komutları kullanarak aldığımız çıktı aşağıdaki ekran görüntüsündeki gibi olmalıdır.
Şimdi client01 ve client02 makineleri üzerinden nslookup www.m3g.intra sorgusunu çalıştırarak inceleyelim.
- Client01
- Client02
Görüldüğü üzere farklı ip bloglarındaki farklı cihazlara aynı DNS sunucusu üzerinden aynı DNS sorgusuna farklı ip adresleri dönmüştür. Yukarıdaki bahsedilen özellikler ve ilgili senaryolar kapsamında çok farklı şekilde kullanım olasılıkları mevcuttur.
Dikkat Edilmesi Gerekenler
-
Filtreler yanlış yapılandırıldığında, bazı uygulamalar beklenmedik şekilde çalışabilir veya çalışmayabilir.
-
Politikalar sıralıdır; ilk eşleşen politika uygulanır.
-
Yapılandırma sonrası test ortamında deneme yapılmadan canlıya geçilmemelidir.
- dnscmd <dnsServerName> /config /loglevel 0x1000000 komutu ile DNS debug loglarını açarak ilgili paketleri takip edebilirsiniz. Komut ile ilgili detay bilgiyi microsoft dokümanından edinebilirsiniz.
Sonuç
Windows Server DNS altyapısında, sorgu filtreleme politikaları ile geleneksel DNS hizmetini çok daha güçlü bir hale getirmek mümkündür. Bu sayede ağ güvenliğiniz artar, kaynaklar daha verimli kullanılır ve sadece yetkili kullanıcıların belirli DNS sorgularına ulaşması sağlanır.
Eğer kurumunuzda DNS tabanlı bir segmentasyon veya güvenlik kontrolü düşünüyorsanız, bu özelliği kesinlikle değerlendirmelisiniz.
🔚 Farklı bir senaryo olarak Coğrafi konum bazlı DNS trafiği yönlendirme konusunu daha sonra başka bir yazımızda ele alabiliriz.
Faydalı olması dileğiyle.
DNS Policy ve diğer yapılandırma seçenekleri için, ilgili microsoft dokümanına link üzerinden erişebilirsiniz.
Çok faydalı bir yazı olmuş, teşekkürler..
Çok teşekkür ederim Ertan hocam. Siz değerli meslektaşlarımın görüşleri benim için ayrı bir yer tutmaktadır.
Eline sağlık, çok faydalı bir makale.
Teşekkür ederim Recep hocam sağolun.