Hepimizin bildiği gibi sunucu ve istemciler arasındaki pek çok trafik DNS isim çözümlemesini kullanarak gerçekleşir. En basitinden bir istemci bilgisayar browserına http://site1.fabrikam.com yazdığında istemci bilgisayar site1.fabrikam sunucusunun ipsini öğrenmek için kendisine tanımlanmış olan DNS sunucusuna sorgu göndererek sunucunun ip adresini öğrenir.
Bu konuyu biraz daha detaylı olarak DNS Cache ve TTL Değeri Nedir? isimli yazımda yazmıştım.
Aşağıdaki ekranda site1.fabrikam.com adresini DNS sunucusuna soran bir istemcinin Wireshark loglarını görebilirsiniz.
Gördüğünü gibi Kırmızı kutu içerisinde sorgumuzu, yeşil kutu içerisinde ise DNS sunucusundan gelen cevabı görüyoruz. Buradaki 192.168.1.2 ip adresi gerçekten de site1 sunucusunun ip adresi. Ancak “Man in the Middle” (Ortadaki Adam) Tekniği ile kötü amaçlı bir kişi istemci bilgisayar ile gerçek DNS sunucusu arasına girip istemci bilgisayara 192.168.1.2 ip si yerine yine kendi hazırladığı ve zararlı içerik olan farklı bir ip adresini DNS cevabı olarak iletmesi durumunda istemci bilgisayar yanlış sunucuya bağlanacaktır.
İşte bu ve farklı bazı nedenlerden ötürü istemci bilgisayarlardan yapılan DNS sorgusunun gerçekten istemci bilgisayara tanımlanan DNS sunucusundan geldiğini doğrulamak için DNSSEC geliştirildi.
DNSSEC kullanıldığı zaman DNS sunucusundaki Host A, TXT, MX gibi tüm kayıtlar imzalanır ve istemci bilgisayara bu imza bilgileri de iletilir. Böylece gelen cevaba güven sağlanır. DNSSEC detaylarına çok girmeyeceğim. DNSSEC ile ilgili teorik detaylı bilgiler için aşağıdaki 2 yazıyı okuyabilirsiniz.
https://www.bgasecurity.com/2018/01/dnssec-nedir-nasil-kullanilir/
http://ozcan.com/blog/dnssec-nedir/
Powershell Kullanarak DNSSEC Sorgu Yapma
DNS Sunucumuzda DNSSEC yapılandırmadan önce DNSSEC sorgularına Nasil cevap aldığımıza bakalım.
Powershell de normal DNS sorgusu için aşağıdaki komutu kullanabilirsiniz.
Resolve-DnsName -Name site1.fabrikam.com
Powershell de DNSSEC sorgusu için aşağıdaki komutu kullanabilirsiniz.
Resolve-DnsName -DnssecOk -Name site1.fabrikam.com
Gördüğünüz gibi sadece IP bilgisi geldi.
Şimdi Active Directory ortamımızda istemci bilgisayarlarımızın DNS sorgularını DNSSEC şeklinde Nasil göndereceklerine bakalım. Bunun için 2 işlem yapmamız gerek.
1-DNS Sunucusunu Hazırlama
Domain Controller sunucusu üzerindeki iç DNS Sunucum normalde aşağıdaki gibidir.
Sol tarafta Zone lar, sağ tarafta ise ilgili zone altında açılmış kayıtlar.
Bu senaryo için ben aynı zamanda Active directory domain adım olan fabrikam.com zone u için DNSSEC enable yapacağım. Siz önce diğer zone larınızda deneme yapabilirsiniz.
DNS konsolunda fabrikam.com zone u üzerinde sağ tıklayarak DNSSEC > Sign the Zone ile fabrikam.com zone unu imzalayalım.
Karşımıza aşağıdaki gibi gelen ekranda Next ile ilerleyelim.
DNSSEC detaylarına hakimseniz “Custumize zone signing parameters” seçeneği ile de ilerleyebilirsiniz. Biz “Use Default settings to sign the zone” u seçip ilerleyelim.
Varsayılan parametreler ile ilerlediğimiz durumdaki parametreleri aşağıdaki gibi görebiliriz.
Next ile ilerleyelim.
fabrikam.com zone başarıyla imzalandı. Artık DNS konsolda aşağıdaki gibi görünecek.
Gördüğünüz gibi zone adına kilit ikonu geldi ve DNS kayıtlarının da yanlarına imzalı kayıtları geldi.
Artık DNS Sunucumuz fabrikam.com zone u için DNSSEC sorgularına cevap verebilir durumda. Bu artık sadece DNSSEC sorgularına cevap verecek demek değildir. Normal DNS sorgulaırna da cevap verecektir DNS sunucumuz.
Powershell ile yaptığımız DNSSEC sorgusunu yeniden yapalım bu sefer Nasil bir cevap gelecek bakalım.
Gördüğünüz gibi site1.fabrikam.com için imza bilgileri de DNS sorgumuzun cevabında yer almakta.
Şuandan DNS sunucumuz fabrikam.com için DNSSEC e hazır ancak istemcilerimiz halen normal DNS sorguları gönderecekler. Dolayısıyla DNSSEC tam anlamıyla kullanıyor olmayacağız. Bu nedenle istemcilerimizi de DNS sorgularını DNSSEC olarak göndermeleri konusunda ayarlamalıyız.
2-İstemci Bilgisayarları Hazırlama
İstemci bilgisayarları ayarlamak için GPO nun gücünü kullanacağız. Bunun için ister yeni ister var olan bir GPO da aşağıdaki alana gelelim. Bu senaryoda sadece fabrikam.com domaini için DNS sorgularını DNSSEC olarak yapılmasını sağlayacağız.
fabrikam.com zone altındaki tüm kayıtların DNSSEC ile çözülmesi için 2 numaralı alanda suffix seçiyoruz.
3 numaralı bölüme zone adını yazıyoruz.
4 numaralı bölümde DNSSEC i bu zone için aktifleştiriyoruz.
5 numaralı buton ile DNSSEC kuralımızı oluşturuyoruz.
Böylece Bu GPO nun uygulandığı bilgisayarlar artık sadece fabrikam.com domaini için varsayılan DNS sorguları DNSSEC olarak yapılacak.
Örnek pc de wireshark açıp browserdan http://site1.fabrikam.com yazıyorum ve Wiresharkda aşağıdaki gibi sorgunun DNSSEC olarak gittiğini görebiliriz.
DNSSEC GPO ayarladığımız ekranda “Require DNS clients to check that name and address data has been validated” seçeneğini işaretlerseniz istemci bilgisayar laptop ise ve eve gittiğinde de fabrikam.com için DNSSEC kullanmaya zorlanacaktır. ancak evdeki modemin dns servisinde DNSSEC olmadığı için evde fabrikam.com a erişilemeyecektir. Bu nedenle ben işaretlemiyorum, böylece varsa DNSSEC yoksa normal DNS sorgusu gerçekleştirecek istemci bilgisayar.
Bu nedenle DNSSEC i devreye alacağınız domain zone u iyi planlamak ve düşünmek gerekir. Ben önce bir test domainin zone u için uygulamanızı öneririm.
Bir noktada da uyarmak isterim ki normal DNS cevapları 4 byte iken DNSSEC cevapları 160 byte büyüklüğündedir. Bu nedenle LAN da ki DNSSEC çalışmasında çok sorun olmasa da Site2Site VPN, IPSEC VPN gibi yapılarda DNSSEC i devreye aldığınızda Network Bandwith iniz der artış göreceksiniz.
Ayrıca DNSSEC in internet tarafında çalışması için domain adınızdaki zincirde bulunan tüm DNS sunucularında DNSSEC aktif ve yapılandırılmış olmalıdır. Yani astronur.com.tr domaini için önce .tr uzantısının DNS sunucusu olan Nic.tr sunucularında DNSSEC tanımlanmış olmalı, daha sonra .com uzantısının DNS sunucularında DNSSEC aktif ve yapılandırılmış olmalı.
Bu yazı yazıldığında nic.tr henüz DNSSEC aktifleştirmediği için Dış DNS lerinizde eğer domain adınız .tr li ise DNSSEC i çalıştıramazsınız. Aktifleştirebilirsiniz ancak DNSSEC sorgularına cevap dönmeyecektir. Çünkü DNSSEC sorgusu önce nic.tr nin DNS sunucusuna gidecek, orda fail olacak.
Bir sonraki yazıda görüşmek üzere…