1- DNS ‘ e Giriş
a. Tarihçe
Bilgisayar ağları üzerindeki isimlendirme sorunu ilk olarak internetin babası sayılan Arpanet zamanında ortaya çıkmıştır. 1970’lerde ArpaNet günümüz ağları ile karşılaştırılamayacak kadar küçük durumdaydı ve yalnızca birkaç yüz ile ifade edilebilen sisteme hizmet veriyordu. Bu tarihlerde isimlendirme için tek noktada tutulan bir dosyanın bulunması ve diğer tüm sistemlerin bu dosyayı belli aralıklarla kendi taraflarında güncellemesi isimlendirme sorununu çözmüştü.
Adres-isim tanımlamalarını içeren HOSTS dosyası SRI tarafından SRI-NIC (Stanford Research Institute – Network Information Center) adında bir bilgisayar üzerinde tutulmaktaydı. Bu dosya her adrese bir isim karşılık gelecek şekilde düzenlenmişti. Arpanet üzerindeki yeni isim tanımlamaları ve değişiklikleri SRI’ya gönderilen e-postalar arcılığı ile yapılıyor ve HOST ‘un kopyası File Transfer Protocol ile alınıyordu.
Arpanet üzerinde TCP/IP kullanımına paralel olarak ortaya çıkan bağlantı patlaması, isim çözümü için birçok sunucuda ve her bilgisayara özgün bir isim atanmasında problemler yaşanmaktaydı. Ayrıca yalnızca isim çözümlenmesi için oldukça yüksek miktarda bant genişliği harcanmaktaydı. Buna rağmen kullanılan isim veritabanlarının uyumlu olması her zaman sağlanamamaktaydı.
Bu durumun ortaya çıkmasından sonra Arpanet daha ölçeklenebilir bir isim çözümleme yapısı için araştırmalara başladı. Paul Mockapetris bu işle görevlendirildi. Mockapetris 1984 yılında Domain Name System (DNS)’i tanımlayan RFC 882 ve RFC 883 ‘ü yayınladı. Bunlar daha sonra hâlen geçerli olan RFC 1034 ve RFC 1035 tarafından güncellendiler.
Kaynak : http://tr.wikipedia.org/wiki/DNS
b. DNS Servisinin Amacı Nedir ?
İnternetteki tüm objelerin, kendine özgü birer adresi vardır. Her obje birbiriyle bu adresler üzerinden haberleşir ve iletişim kurar. Kullanım esnasında, insanların bu rakamları akılda tutması zor olduğundan, DNS servisi bu problemi çözmek amacıyla tasarlanmıştır. Her hanesi maksimum 3 haneden oluşan IP adreslerini alıp, isimlere çevirerek, sorgulayan objeye cevap gönderir. Ve böylece iletişim sağlanmış olur.
a. DNS Servisinin Kullanım Alanları
Emin olunuz ki, iletişim işini yaptığı için DNS, her türlü kurulum, konfigürasyon vb işlemlerde başroldedir. Yaygın kullanım alanlarına örnekler verecek olursam :
-
Kök Sunucular : Top Level Domain adını verdiğimiz bu sunucular, dünya genelinde isim çözümlemelerin başladığı yerlerdir. Dünya üzerinde 13 adet kök sunucu bulunmaktadır.
-
TLD Sunucular : gTLD ( Generic Top Level Domain )olarak da geçerler. Ülke kodlarından, ticari kuruluşlara ait uzantılardan oluşurlar. Başlıca uzantılar aşağıda verilmiştir :
-
Com = Ticari Kuruluşlar
-
Org = Ticari Olmayan Kuruluşlar
-
Mil = Askeri Kuruluşlar
-
Net = Ağ Kuruluşları
-
Edu = Eğitim Kurumları
-
Gov = Hükümet Kurumları
-
İnt = Uluslararası Kuruluşlar
-
İnfo = Bilgi Servisleri Kuruluşları
-
Tel = İletişim, Telekomünikasyon Kurumları
-
-
Ülke Kodları
-
Tr = Türkiye
-
Us = Amerika
-
Gb = İngiltere
-
De = Almanya
-
Au = Avustralya
-
Fr = Fransa
-
Ru = Rusya
-
Ca = Kanada
-
SLDS , Second Level Domain Sunucuları ( İkinci Seviye Etki Alanı Sunucuları )
-
Bu sunucular, özel kişi ya da kurumlara verilirler. Ticari herhangi bir şirket kurduğunuzda, bu sunucular üzerinden isim çözümlemeler gerçekleşir. Örnek : alperyazgan.com.
Ayrıca, IT uzmanları olarak bizler de; web sunucuları ve mail sunucularımızı bu seviyede kullanırız.
2- DNS ‘ in Mimarisi
Yukaruda açıkladığım üzere, genel olarak tek bir amacı vardır. Rakamları isimlere çevirmek. DNS ‘ in bunun dışında bir görevi daha bulunur. İyi bir ileticidir. Bir dns sunucusuna X istemcisinden gelen sorguları Y sunucusuna ilet ve sen bu sorgulara cevap verme diyebilirsiniz :
Bölüm – 1
a. İsim Çözümleme
İsim çözümleme, internet ortamında aranılan bir kaydın bulunması anlamına gelir. Bunu yaygın örneklerden biriyle açıklamak istiyorum. Hepimiz birer Türk vatandaşıyız ve hepimize ait birer TC Kimlik Numarası mevcut. Peki bu TC kimlik numarasının bize ait olduğu nereden biliniyor? Çok basit. Çünkü Nüfus müdürlüğü diye bir birim var ve 1234567891122 kimlik numaralı vatandaşa ait isim kaydı Alper YAZGAN olarak orada duruyor. Bu örneğimizden yola çıkarsak; TC kimlik numaramızı ağ içerisindeki IP adresimiz, nüfus müdürlüğünü de ağ içerisindeki DNS servisimiz olarak düşünebiliriz. Nüfus müdürlüğüne bir telefon açarız ve kimlik numarası söyleriz. O da bize vatandaşımızın adını ve soyadını cevap olarak döndürür. Aynı, aşağıdaki örnekte olduğu gibi :
Şekil – 3
Soru : 127.0.0.1 Kimdir ?
Şekil – 4
Cevap : 127.0.0.1 = ALPERYAZGAN
DNS servisimize ait bir veritabanı bulunur ve bu veritabanı içerisinde, IP adreslerin karşılıkları olarak isimler yazar. Biz bir isim sorgusu gönderdiğimizde, rakam ve isim birbiriyle eşlenir ve bize cevap döner. Bir başka örnek: technet.microsoft.com yazıp giriş yaptığımda, yine DNS ‘ in bize cevap vererek, sayfayı browser ekranına vermesidir.
a. Yetkili Sunucu Yayınlaması
Bu işlem, bilgilerin tutulduğu anlamına gelir. Kayıt tiplerine değindiğimde daha net anlaşılacaktır. Basitçe özetlemem gerekirse, DNS ‘ ten dönen cevabın, kayıt tipine göre ayrımını yapar ve hangi kaydın hangi görevi yaptığının bilgisini tutar. A ( Host Kaydı ), MX ( Mail Exchanger Kaydı ) gibi.
b. Yetki Bölgesi ( Zone )
DNS sunucuları tarafından yönetilen her etki alanına yetki bölgesi ( zone ) denir. İçerisinde bilgisayar isimleri, bu isimlere ait IP adresleri, kaynak kayıt bilgileri gibi veriler barındırır.
a- İleri Yönlü Arama Alanı ( Forward Lookup Zone )
İsimden Ip çözümlemesi yapıp cevap veren alandır.
– Primary Zone : DNS içerisinde yönetici alan olarak bilinir. DNS veritabanına yazma yetkisi bulunan tek alan çeşididir.
– Secondary Zone : Veritabanına yazma yetkisine sahip değildir. Primary Zone’ un yazdıklarını okumakla görevlidir. Bizim belirlediğimiz periyodlarda, Primary Zone ‘ da oluşan kayıtların bir kopyasını, bir başka primary zone üzerine aktararak yedek görevi görür.
– Stub Zone : İçerisinde NS (Name Server-Ad sunucusu), SOA (Start Of Authority-Yetki Başlangıcı) ve A(Adress Record-Adres Kaydı) kayıtlarını tutan ve üzerinde herhangi bir yetki bulundurmayan alan çeşididir. Diğer etki alanlarının NS kayıtlarını sorumlu DNS sunucusuna sorgu yapmadan kendi üzerinden yapması prensibi ile çalışır.
– Reverse Lookup Zone : Forward Lookup Zone’ların tam aksi olarak, IP’leri isimlere çevirir.
c. Kayıt Tipleri ve İşlevleri
Host ( A ) ( Address Record ) : İsim ve IP adreslerini birbirine eşler.
NS ( Name Server ) : DNS sunucularını tanıtmaya yarar. İstemciden gelen istekler, bu kayıtlara göre hangi sunucuya gideceklerine karar verirler.
SRV ( Service Locator ) : Özel bir servis varsa, TCP/IP ve port bilgisini içinde barındırır.
PTR ( Pointer Record ) : IP ‘ den isim çözer. Ters dns kaydı olarak da geçer. ISP ( internet service provider ) tarafrında açılması gereken ve sabit WAN IP ‘lerini içinde tutan kayıt tiplerine denir.
CNAME ( Canonical Name ) : Mevcut bir host (A) kaydını, farklı isimlerle çözmeye yarar. Web siteleri için kulanımı uygundur.
SPF (Sender Policy Framework): Mail sunucularda, spam mesajları engellemek için kullanılır. Bir mail sunucuya izin verilen diğer mail sunucuları adreslemek için kullanılır. TXT tabanlıdır. Detaylı kullanımı için :https://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/
SOA ( Start of Authority ) : Primary Zone’daki name server bilgisini, domain admin hesabına ait e-mail adres bilgisini ve diğer sayaç bilgilerini içerisinde barındırır.
MX ( Mail Exchanger ) : Mail sunucuların Host (A) kayıtlarını tutar. Diğer bir özelliği, içerisinde öncelik barındırmasıdır. Mail sunucuları arasındaki iletişimi sağlamak ilk görevidir. Öncelik tarafında ise, priority ( öncelik ) değeri en düşük olan MX kaydı, karşı taraftaki mail sunucuna ilk cevabı gönderir.
d. Sorgu Tipleri
İki tip sorgumuz mevcuttur :
– Recursive : İstemci tarafından, herhangir bir ağ kaynağına erişmek üzere yaptığı, IP adresini DNS suucusuna soran kayıt tipidir. İş akışı aşağıdaki gibidir :
Client Recursive à DNS à “IP ve İsimleri Karşılaştır” ( if true ) à İstemciye Cevap Ver à OLUMLU YA DA OLUMSUZ
Client Recursive à DNS à “IP ve İsimleri Karşılaştır” ( if false ) à Diğer DNS Sunucularına Sor àİstemciye Cevap ver à OLUMLU YA DA OLUMSUZ
– Iterative : DNS sunucularının kendi aralarında olup biten sorgu tipidir. İstemciden sorgu geldiğinde, DNS kendi içine bakar, kaydı bulamazsa gidip diğer DNS sunucularında, istemcinin istediği kaydı bulana kadar arama yapar. Cevap dönemiyorsa kendi cache’inde duran cevabı döndürür ya da bulamazsa döndürmez.
Microsoft Windows Sunucularda DNS
İlk olarak Microsoft, Windows NT ile DNS desteklemeye başlamış ve günümüze kadar gelmiştir. Bazı bilgisayarlar dinamik DNS kullanırlar ve kendilerini Microsoft DNS veritabanına kaydettirirler. Buna da client registration methodu denir.
Uygulamaya gelince, servis DLL ‘ ler yardımıyla çalışır. Tüm iletişim DLL dosyaları ve TCP/IP üzerinden döner. DNSCache methodu çalıştırılarak, sunucu istemciye cevapları döndürür. Microsoft tabanlı bilgisayarlarda, birincil dns sunucusu her zaman ilk cevabı verendir. Yapsını anlatmaya başlayalım.
a. Kurulum ve Konfigürasyon
Windows NT için DNS kurulumu : http://www.digitalissues.co.uk/html/os/ms/dns_on_nt4.html
Windows 2000 için DNS Kurulumu : http://support.microsoft.com/kb/300202
Windows Server 2003 için DNS, Domain Controller kurulumu ile birlikte kurulur. DC kurulumu esnasından, bilgisayara Windows Server 2003 Cd’ sinin takılı olması gerekmektedir. Bu kurulum, istenirse sonradan ayrıca da yapılabilir.
Kurulum için : http://support.microsoft.com/kb/814591/tr
Microsoft, Windows Server 2008 ile birlikte hayatımızı biraz değiştirdi ve yönetim konsollarımızı değiştirdi. Kurulum methodolojileri aynı olmasına karşın, ekranlar değişti. Dolayısıyla bu durum DNS’ i de etkileyerek, kurulum ekranını farklılaştırdı. Windows Server 2008, Windows Server 2008 SBS, Windows Server 2008 R2, Windows Server 2012 ve Windows Server 2012 R2 sunucularda, kurulumların neredeyse hepsi artık Server Manager adı verilen konsoldan yapılabilmektedir.
Windows Server 2008 ve sonrası işletim sistemlerinin hepsinde, aynı 2003 mimarisinde olduğu gibi DNS, DC kurulumu ile birlikte yapılmaktadır.
DC ( Domain Controller ) Kurulumu için :http://social.technet.microsoft.com/wiki/contents/articles/25364.windows-server-2012-r2-install-domain-controller-role-video-tr-tr.aspx linki incelenebilir.
Microsoft’ tan kaynak olarak aldığım aşağıdaki şemada, tam olarak DNS sunucu mimarisi ve çalışması anlatılmıştır :
a. DNS Yönetim Konsolu İncelemesi
İncelememizin bu bölümünde, kurulu bir DNS konsolu üzerinden ekranları ve yaptığı işleri anlatacağım.
Yönetim Paneli İlk Görünüm
Şekil – 7
Configure a DNS Server : Mevcut DNS sunucu üzerinde primary, secondary ve reverse lookup zone oluşturmak için kullanılır.
Create Default Application Directory Partition : Yeni bir uygulama için DNS partition oluşturulur ve veritabanında saklanır.
New Zone : Yeni alan adı oluşturmak ve yönetmek için kullanılır.
Set Aging/Scavenging for All Zones : Alan adları içerisinde oluşturlan kayıtların, yenileme sürelerinin belirlendiği alandır.
Update Server Data Files : Alan adları içerisindeki değişiklikleri günceller.
Clear Cache : DNS, istemcilere verdiği cevapları, aynı sorgular tekrar geldiğinde trafik tüketmemek için cache içerisinde saklar. İstemci aynı sorguyu gönderdiğinde, Ip ve isim karşılaştırmak yerine, cache’ te tuttuğu cevabı döndürür. Burayı clicklersek, ilgili cache silinecek ve DNS yeniden sorgu hazırlayıp istemciye yeni gördüğü adresi gönderecektir. Panel içerisinde bir IP ya da isim değişikliği yapıldığında, bu işlemin yapılması gerekir. Varsayılan olarak 60 dakika içerisinde cache yenilenir.
Launch Lookup : DNS, kendi içinde bulunan NS sorgusuna bakar ve ilk gördüğü NS kaydını döndürür.
Scavenge Stale Resource Records : Set Aging ayarlarında otomatik olarak gerçekleştirilen işlemi, bu click manuel olarak yapmamızı sağlar.
DNS Management Console Properties
-
Interfaces : DNS, burada seçili olan ethernet kartlarının host kayıtlarını primary zone içerisinde oluşturur. İstemcinin gelip soru sorduğu IP adresi burada belirlenir. Varsayılan olarak “All IP Addresses” seçilidir. DC birden fazla ethernet kartı içeriyorsa, bu ekranda Only the following IP addresses seçilerek, istemcilere cevap vermesini istediğimiz ethernet kartını seçmeliyiz.
-
Forwarders : DNS’ te, istemciye cevap vermenin bir hiyerarşisi bulunur. Bu hiyerarşi aşağıdaki gibi maddelenmiştir :
-
DC Interface IP Adresi
-
DNS Host Kayıtlar
-
Host kayıtlarından cevap dönmüyor ise, Forwarders
-
Forwarders’ tan cevap dönmüyor ise Root Hints
-
Forwarders, DNS’ in kendi zone’ larında bulamadığı kayıtları sorguladığı ilk adrestir.
-
Advanced
-
Disable Recursion : Bu seçenek, DNS’ in kendinden başka DNS sunucularına gidip gitmeyeceğini belirler. Kutucuğu işaretlersek, DNS kendine gelen sorguları başka bir DNS’ e sormadan cevaplar ve olumlu / olumsuz bir cevap döner. İşaretlemezsek, DNS kendi üzerinde bulamadığı sorguları forwarders & root hints hiyerarşisiyle aramaya devam edecektir. Public DNS sunucularında açılması önerilir.
-
Enable BIND Secondaries : Zone transferinin yapılmasını sağlayan kutucuktur. İşaretli gelir ve zone transferi esnasında DNS buraya bakarak transfer edeceği formata karar verir.
-
Fail on Load If Bad Zone Data : MS Windows Server 2000 hariç, bundan sonraki sunucu familyalarında, DNS buraya bakar ve kutucuk işaretliyse, içerisinde yanlış kayıtlar buluann zone’ ları kullanmz.
-
Enable Round Robin : MS Windows Server 2008 ‘ den sonraki işletim sistemlerinde, DNS sunucular arasnda yük dengeleme ( load balancing ) işlemini yapmayı sağlar. DNS, kendine gelen sorguları varsayılan olarak kontrol edip ilk gördüğü doğru kaydı istemciye ulaştırıyordu. Bu kutucuk işaretli olduğunda ve aynı cname / host kaydına çok fazla request ( bağlantı talebi ) geldiğinde, bu seçenek sayesinde, DNS kendine gelen fazla sorguları, ortamdaki diğer DNS sunucularına paylaştırır. DNS, burasının aktif edilmediği noktada, Round roubin’ e bakarak ne yapacağına karar verir.
-
Enable Netmask Ordering : DNS’ in , network kartlarına göre hangi maskları kullanarak istemci tarafına cevap vereceğini belirler. Bu seçenek işaretlendiğinde DNS, kendine gelen TCP/IP paketini alıp çözer ve istemci tarafına istemcinin network’ üne uygun şekilde response ( cevap ) döner.
-
Secure cache aganist pollution : Güvenli cache tekrarlama anlamına gelir. Buraıs işaretli değilse, DNS yalnızca kendine son gelen sorguları cache’ te tutar ve response olarak istemci tarafına son sorgunun cevabını döndürür.
-
Enable DNSSEC Validation For Remote Addresses : Bir DNS sunucusu üzerindeki zone’ lar imzalandı ise ve bu seçenek aktif ise, DNS response döndürürken, karşı tarafta aynı validation methodunun olup olmadığını sorgular ve cevap verip vermeyeceğine buna göre karar verir. Her iki DNS sunucusunda karşılıklı işaretli ise (zone’ların signured olduğunu varsayarsak) isim çözümleme gerçekleşir.
-
Name Checking : İsim çözümlemelerinde kullanılacak uluslararası formatı belirler. UTF-8 her dil için anlaşılır olduğundan varsayılan olarak bu seçilidir. Değiştirilmesi önerilmez.
-
Load Zone Data on Startup : From file, from registry ve from Active Directory and registry olmak üzere üçe ayrılır. Varsayılan olarak from Active Directory and registry seçilidir. File dersek, C:\Windows\system32\dns klasörünü görecektir. Active Directory olarak bırakmalıyız.
-
Enable Automatic Scavenging of stae records : DNS ‘ in kendi üzerinde bulunan kayıtları ne zaman otomatik olarak değiştireceğinin belirlendiği alandır. Varsayılan olarak seçili değildir. Seçilmesi ve haftalık olarak set edilmesi önerilir.
-
Root Hints : DNS’ in kendinde bulamadığı kayıtları sormak için yardım istediği alandır. Söz konusu DNS public ise, burası devre dışıdır.
-
Monitoring : Basit ve recursive sorgularının testlerinin yapıldığı bölümdür.
Event Logging : DNS olayları, otomatik olarak Event Viewer altında toplanır. Bu sekmede, event alınacak mı, alınacaksa neler alınacak bunu belirliyoruz.
Şekil – 11
No events : Bu seçenek, log yazdırmaz.
Errors only : Bu seçenek yalnızca hataları kayıt eder.
Errors and warning : Hata ve uyarıları ( uyarılar, müdahale edilmezse ileride Error olarak karşımıza çıkarlar ) kayıt eder.
All events : Tüm olayları kayıt eder.
Debug Logging: DNS ‘ e gelen talepleri, DNS’ in istemcilerle olan TCP/IP iletişmini kaydetmeye yarar. Gereksiz yer kaplayacağı düşünüldüğünden, varsayılan olarak kapalı durumda gelir. Detaylı bir DNS yönetimi istiyorsak, bunu işaretleyip, istemciler ile DNS sunucusu arasındaki iletişmi detaylıca inceleyebiliriz.
Şekil – 12
-
Packet direction : Paket yönü anlamına gelen bu kelime, Outgoing ve incoming olarak ikiye ayrılır. Çift yönlü TCP paketlerini izlemeye yarar.
-
Packet content : TCP/IP paketlerinn içeriğini toplar ve log dosyasına yazar.
-
Transport protocol : İletişim protokolünü yani çift yönlü 53 portunu izler.
-
Other options
-
Log unmatched incoming response packet : DNS, kendine gelen talepleri loglarken; varsayılan olarak istemciden gelen sorguları ve kendi gönderdiği olumlu / olumsuz sonuçları elde eder. Biz, geçersiz sorguları ( istemciden gelen talebin DNS’ te bulunmaması gibi ) da kaydettirmek istiyorsak bu opsiyonu işaretlemeliyiz.
-
Details : Kayıt esnasındaki detayları yazar. Hangi paket nereden geldi, nereye gitti, cevap olumlu mu, olumsuz mu, olumsuzsa neden olumsuz gibi.
-
Filter packets by IP address : İstersek, kaydettirmeyi özel IP adreslerine göre düzenleyebiliriz. Filter seçeneğine tıkladığımızda, yalnızca şu IP ‘ lerden gelen talepleri kaydet diyebiliyoruz.
Şekil – 13
-
Log File and name : Adından da anlaşılacağı üzere, kaydedilen dosyaların hangi klasöre ve isme yazılacağıdır.
-
Maximum size ( bytes ) : Yazılan dosyaların byte cinsinden maksimum değerini belirtiriz. Varsayılan maksimum değer 50 MB’ dır. İstersek üzerinde oynama yapmakta serbestiz.
-
Securiy : DNS Management Console ‘ da kimlerin ne iş yapacağını belirttiğimzi ekrandır. Ayrıca burada, bu DNS sunucusuna kimlerin sorgu atabileceği de görünür. Varsayılan olarak izin mekanizması aşağıdaki gibidir.
SYSTEM : Full Control
DNSAdmins : Full Control ( Domain ortamında bir sistem uzmanına yalnızca DNS yönetme yetkisini, ilgili kullanıcı adını DNSAdmins objesine üye yaparak verebilirsiniz ).
Organization Management : Read
Domain Admins : Full Control
Enterprise Admins : Full Control
ENTERPRISE DC : Full Control
-
Conditional Forwarders
İstemcilerden gelen statik IP ve isim taleplerini, doğru yerlere ulaştırmaya yarar. Örneğin; google.com dediğimizde normal forwarders üzerinde sistem çalışırken, aynı google.com ‘ u conditional forwarder olarak tanımlayıp statik bir IP girersek DNS, gelen talebi yalnızca CF içerisindeki IP ‘ ye yönlendirecektir. Bir örnekle açıklayalım :
Yukarıdaki şekilde, DNS Domain olarak ayazgan.com tanımlanmış, IP adresi henüz girilmemiştir. İstemciler, ben hangi Ip adresini gösterirsem, ayazgan.com ‘ u sorduklarında DNS buraya bakıp cevap verecektir.
Store this conditional forwarder in Active Directory, and replicate it as follows : Bu işaretlediğim seçenek, DNS’ in replike yapısını yönetir.
Şekil – 15
All DNS Servers in this forest : Kurulu bir forest içerisindeki tüm DNS sunucuları ile replikasyon gerçekleşir.
All DNS servers in this domain : Bir domain içerisindeki tüm DNS sunucular ile replikasyon gerçekleşir.
All Domain Controllers in this domain : Bir domain içerisindeki tüm DC ‘ ler arasında replikasyon gerçekleşir.
a. Yedekleme & Geri Yükleme
Şüphesiz, bu denli önemli bir servisin yedeklenmesi ve asla çökmemesi gerekmektedir. Microsoft, bunun sistematik olarak tüm önlemleri almış durumdadır ve biz sistem yöneticilerine DNS’ i emanet eder. Biz sistem yöneticileri de kendimize sunulan methodlar ile yedek yapımızı yöneterek DNS ‘ lerimizi ayakta tutarız. Bunun için birinci yöntem, bir önceki paragrafta anlattığım replikasyon yöntemidir. Şimdi ise diğer bazı yötnemlere değineceğim.
-
System State Backup
DNS ve Directory Service objelerinin tamamını yedekleyen bu method, DNS’ in yeniden ayağa kaldırılması için en uygun yöntemlerden biridir bence. Özellikle kısa ve geri dönüşünün kolay olması dolayısyla da IT sektöründe tercih sebebidir. Aslında bu methodun yaptığı iş, arka planda “C:\Windows\system32\dns” klasörünün bir kopyasını bizim istediğimzi bir alana yedeklemesi ve bir çökme anında, kısa geri dönüş sağlıyor olmasıdır. Çünkü bu path, içerisinde zonename.dns gibi alan adlarını ve onlara ait kayıtları, bu kayıtların bilgilerini saklar. Geri dönüş esnasında, system state restore işleminn dışında hiç bir şey yapmaksızın, DNS servisimizi ayağa kaldırmış oluruz.
-
Bare-Metal Recovery
Bu method, tüm Windows bileşenlerini kapsar. Kısacası, tüm işletim sistemini, işletim sisteminin tamamen çökmesine önlem olarak yedekleriz ve geri dönüş esnasında sistem imajının geri dönmesi ile, DNS de geri dönmüş olur. Bu yöntemi işletim sisteminin kendisi ile yapabildiğimzi gibi, çeşitli 3rd yedekleme yazılımlarıyla da yapabiliyoruz. Ana konumuzun dışına çıkmamak adına yazılım isimlerini paylaşmıyorum.
-
DNS Replikasyonu
Conditional Forwarders tanımlarken, bu alanı görmüştük. Replikasyon, bizim istediğimiz periyodlarda, bizim istediğimz alan adlarında ve sunucularda gerçekleşir. Bu durumu şemaya dökecek olursak :
Yedekleme senaryoları bu şekildedir.
a. DNS Servisinde Komut Satırı Kullanımı
Kitapçığımızın şu ana kadar yazılan bütün bölümlerini arayüz üzerinde gördük. Şimdi aynı konfigürasyonların cmdlet’ lerini görelim. Microsoft kaynaklı aşağıdaki tabloda, komut setleri ve karşılarında anlamları bulunmaktadır :
Cmdlet |
Description |
Add-DnsServerConditionalForwarderZone |
Conditional Forwarder ekler. |
Add-DnsServerDirectoryPartition |
DNS application directory partition yaratır. |
Add-DnsServerForwarder |
Forwarder ekler. |
Add-DnsServerPrimaryZone |
Primary Zone yaratır. |
Add-DnsServerResourceRecord |
Resource kayıtları oluşturur |
Add-DnsServerResourceRecordA |
IPv4 tabanlı host kaydı oluşturur. |
Add-DnsServerResourceRecordAAAA |
IPv6 tabanlı host kaydı oluşturur. |
Add-DnsServerResourceRecordCName |
CNAME kaydı oluşturur. |
Add-DnsServerResourceRecordDnsKey |
DNSKEY oluşturur. |
Add-DnsServerResourceRecordDS |
DNS zone içerisine DS kaydı oluşturur. |
Add-DnsServerResourceRecordMX |
MX kaydı oluşturur. |
Add-DnsServerResourceRecordPtr |
PTR kaydı oluşturur. |
Add-DnsServerRootHint |
Root Hints ekler. |
Add-DnsServerSecondaryZone |
Secondary Zone oluşturur. |
Add-DnsServerSigningKey |
Zone’ ları dijital olarak imzalar. |
Add-DnsServerStubZone |
Stub-Zone oluşturur. |
Add-DnsServerTrustAnchor |
Trust ekler. |
Add-DnsServerZoneDelegation |
Zone’ a delegasyon ( yetki ) ekler. |
Clear-DnsServerCache |
Cache temizler. |
Clear-DnsServerStatistics |
DNS istatistiklerini temizler. |
ConvertTo-DnsServerPrimaryZone |
Farklı çeşitlerdeki zone’ ları primary zone olarak atar. |
ConvertTo-DnsServerSecondaryZone |
Primary veya stub-zone ‘ u secondary zone’ a çevirir. |
Disable-DnsServerSigningKeyRollover |
İmzalanmış keyi ( anahtarlama ) devre dışı bırakır. |
Enable-DnsServerSigningKeyRollover |
İmzalanmış keyi ( anahtarlama ) devreye alır. |
Export-DnsServerDnsSecPublicKey |
İmzalanmış zone’ ların imzalarını export eder. |
Export-DnsServerZone |
.DNS uzantılı zone’ ları export eder. |
Get-DnsServer |
DNS Server konfigürasyonunun çıktısını verir. |
Get-DnsServerCache |
Cache Settings’ i gösterir. |
Get-DnsServerDiagnostics |
Event Log istatistiklerini gösterir. |
Get-DnsServerDirectoryPartition |
DNS application directory partition’ larını getirir. |
Get-DnsServerDnsSecZoneSetting |
DNSSEC ayarlarını gösterir. |
Get-DnsServerDsSetting |
DNS Active Directory ayarlarını gösterir. |
Get-DnsServerEDns |
EDNS ayarlarını gösterir. |
Get-DnsServerForwarder |
DNS’ e tanımlanmış forwarder’ ları gösterir. |
Get-DnsServerGlobalNameZone |
DNS’ in global ismini gösterir. |
Get-DnsServerGlobalQueryBlockList |
Filter edilmiş ( bloke edilmiş ) sorguları gösterir. |
Get-DnsServerRecursion |
Recursion ayarlarını gösterir. |
Get-DnsServerResourceRecord |
Belirtilen Zone’ a ait servis kayıtlarını gösterir. |
Get-DnsServerRootHint |
Root Hints’ leri gösterir. |
Get-DnsServerScavenging |
Scavenging ayarlarını gösterir. |
Get-DnsServerSetting |
DNS Server’ ın genel ayarlarını gösterir. |
Get-DnsServerSigningKey |
Zone’ a ait imzayı gösterir. |
Get-DnsServerStatistics |
Zone başına düşen istatistikleri gösterir. |
Get-DnsServerTrustAnchor |
Trust’ ları gösterir. |
Get-DnsServerTrustPoint |
Trust Points’ leri gösterir. |
Get-DnsServerZone |
Açılmış Zone’ ların detaylarını gösterir. |
Get-DnsServerZoneAging |
Zone’ a atanmış Aging sürelerini gösterir. |
Get-DnsServerZoneDelegation |
Zone’ a atanmış delegasyonları gösterir. |
Import-DnsServerResourceRecordDS |
Export edilmiş servis kayıtlarını import eder. |
Import-DnsServerRootHint |
Root Hints’ i kopyalar. |
Import-DnsServerTrustAnchor |
Trust Anchor’ u kopyalar. |
Invoke-DnsServerSigningKeyRollover |
Keyleri invoke eder. |
Invoke-DnsServerZoneSign |
Zone ‘ u imzalar. |
Invoke-DnsServerZoneUnsign |
Zone’ daki imzayı kaldırır. |
Register-DnsServerDirectoryPartition |
Açılmış DNS partitionlarını kaydeder. |
Remove-DnsServerDirectoryPartition |
DNS application directory partitionları kaldırır. |
Remove-DnsServerForwarder |
Forwarderları kaldırır. |
Remove-DnsServerResourceRecord |
Resource kayıtlarını kaldırır. |
Remove-DnsServerRootHint |
Root Hints’ leri siler. |
Remove-DnsServerSigningKey |
İmza anahtarlarını siler. |
Remove-DnsServerTrustAnchor |
Trust Anchor’ u siler. |
Remove-DnsServerZone |
Zone siler. |
Remove-DnsServerZoneDelegation |
Delegasyonları kaldırır. |
Reset-DnsServerZoneKeyMasterRole |
Master Key’ i bir DNS’ ten diğerine transfer eder. |
Restore-DnsServerPrimaryZone |
Export edilmiş bir Zone’ u restore eder. |
Restore-DnsServerSecondaryZone |
Export edilmiş bir secondary zone’ u restore eder. |
Resume-DnsServerZone |
Kullanılmayan bir zone’ u kullanıma açar. |
Set-DnsServer |
DNS konfigürasyonunu üzerine yazar. |
Set-DnsServerCache |
Cache settingsler ayarlanır. |
Set-DnsServerConditionalForwarderZone |
Conditional forwarder editlenir. |
Set-DnsServerDiagnostics |
Debug ve logging editlenir. |
Set-DnsServerDnsSecZoneSetting |
DNSSEC ayarları editlenir. |
Set-DnsServerDsSetting |
Active Directory DNS ayarlarını editler. |
Set-DnsServerEDns |
EDNS değiştirir. |
Set-DnsServerForwarder |
Forwarderların ayarlarını değiştirir. |
Set-DnsServerGlobalNameZone |
Global DNS ‘ i değiştirir. |
Set-DnsServerGlobalQueryBlockList |
DNS blok listesini değiştirir. |
Set-DnsServerPrimaryZone |
Primary Zone ayarlarını değiştirir. |
Set-DnsServerRecursion |
Recursion ayarlarını editler. |
Set-DnsServerResourceRecord |
Servis kayıtlarını editler. |
Set-DnsServerResourceRecordAging |
Aging ‘ i manuel olarak başlatır. |
Set-DnsServerRootHint |
Root Hints’ in içeriğini editler. |
Set-DnsServerScavenging |
Scavenging ayarlarını editler. |
Set-DnsServerSecondaryZone |
Secondar Zone ayarlarını editler. |
Set-DnsServerSetting |
DNS Server genel ayarlarını editler. |
Set-DnsServerSigningKey |
İmzalanmış keyi editler. |
Set-DnsServerStubZone |
Stub-zone ayarlarını editler. |
Set-DnsServerZoneAging |
Zone ‘ a atanmış aging ‘ i editler. |
Set-DnsServerZoneDelegation |
Bir child zone için, delegasyonu değiştirir. |
Show-DnsServerCache |
DNS server cache ‘ in çıktısını verir. |
Show-DnsServerKeyStorageProvider |
Key’ in sağlayıcısının listesini gösterir. |
Start-DnsServerScavenging |
Eski resource kayıtlarını DNS’ e bildirir. |
Start-DnsServerZoneTransfer |
Zone transferini manuel olarak başlatır. |
Step-DnsServerSigningKeyRollover |
Directory service güncellemesini yapar. |
Suspend-DnsServerZone |
DNS’ teki herhangi bir zone’ u pause eder. |
Sync-DnsServerZone |
DNS’ te değiştirilen kayıtları kontrol eder, değişiklikleri kalıcı olarak veritabanına yazar. |
Test-DnsServer |
DNS Server fonksiyonalitesini test eder. Çıktı verir. |
Test-DnsServerDnsSecZoneSetting |
DNSSEC ‘ i valide eder / doğrulamaz. |
Unregister-DnsServerDirectoryPartition |
Register edilmiş Directory Partitionları kald��rır. |
Update-DnsServerTrustPoint |
Trust Pointlerde yapılan değişiklikleri günceller. |
Sunucu tarafındaki komut setlerimiz bunlardır. Linklerin üzerlerine tıklandığında, syntaxlarını Microsoft’ un sitesinden görüntüleyebilirsiniz.
b. DNS Server Delegasyon ( Yetkilendirme )
DNS’ teki delegasyon yapısıın temel amacı, ortamdaki child ( farklı sitelar, lokasyonlardaki dnsler gibi ) DNS’ lerin root DNS olarak kimi tanıyacağını belirlemektir. Şöyle ki ; bir child domain, en tepede hangi DNS sunucusuna sorgu atacaksa, delegation’ ı o sunucuya assign ediyoruz ve böylelikle, ilgili child domain’ in root domaini, bizim belirlediğimiz DNS oluyor. Bu işlem 2012 ‘ de, secondary ya da stub-zone oluşturulurken yapılabiliyor. Bu esnada yapmadıysak, sonrasında komut setiyle de yapabiliyoruz.
Method – 1 : Arayüz
Şekil – 18
Method – 2 : Komut Satırı
Komut : DNSCMD SERVER_NAME /RECORDADD ZONE_NAME SERVER_NAME NS HOSTNAME / FQDN
Bu komut setini parçalayack olursak; DNSCMD komutun adıdır. SERVER_NAME, sunucu adını temsil eder. /RECORDADD parametredir. Kayıt ekliyorum anlamına gelir. ZONE_NAME, açacağımız stub ya da secondary zone’umuzun adını temsil eder. NS ise yine bir parametredir ve arkasından gelenHOSTNAME ya da FQDN, açtığımız stub-zone ‘ un master’ ı kim olacak bunu belirler.
Evet, buraya kadar detaylıca DNS servisini genel özellikleriyle ve Microsoft alt yapısından örneklerle inceledik. Sizlere son başlık olarak, özellikle MS Windows Server 2012 ‘ lerde gözümüze çarpan DNSSEC özelliğinden bahsetmek istiyorum.
DNS, varsayılan olarak kendi içerisinde bir güvenlik methodolojisi barındırmıyor idi. Ta ki DNSSEC bulunana kadar. DNSSEC, isimlere karşılık gelen sayıların dijital olarak imzalanması teknolıjisine dayalıdır. Bu imza sayesinde, çift taraflı güvenlik onaylanır ve isim çözümleme gerçekleşir. Kısacası DNSSEC’ in yaptığı iş, istemci ile istemcinin ulaşmak istediği hedef arasına girip, istemciye hedefin doğruluğunu kanıtlama işini görür. Bunu yaparken trafiği şifrelemez, sadece doğruluğunu ispat eder.
DNSSEC Workflow
Yapı, yukarıdaki gibi işlemektedir. İstemci sunucuya sorgu gönderdiğinde, DNS, diğer DNS ‘ ler ile irtibata geçerek döndüreceği cevap için DNSSEC doğrulaması yapar ve confirme edilmiş cevabı istemci tarafına gönderir. Böylelikle saldırgan, araya girmeyi başarsa bile, trafik public ve private key ile anahtarlandığından, DNS’ i ele geçiremez.
Evet sevgili bilişim gönüllüleri ve çalışanları, DNS’ i enine boyuna inceledik. Bir bilişim gönüllüsü olarak, böylesine önem arz eden bir konuyu sizlerle paylaşmak ve sahada en çok kullanılan alanlarıyla birlikte anlatmak istedim. Bir sonraki yazı dizimizde görüşmek dileğiyle..