DNS ( Domain Name System )...Domain Name System (DNS)’i tanımlayan RFC 882 ve RFC 883’ü...
Transcript of DNS ( Domain Name System )...Domain Name System (DNS)’i tanımlayan RFC 882 ve RFC 883’ü...
DNS ( DOMAİN NAME SYSTEM ) Alper YAZGAN / Microsoft Sistem Uzmanı
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.TXT 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 HOSTS.TXT’in 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.
Şekil. 1
c. 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 :
o Com = Ticari Kuruluşlar
o Org = Ticari Olmayan Kuruluşlar
o Mil = Askeri Kuruluşlar
o Net = Ağ Kuruluşları
o Edu = Eğitim Kurumları
o Gov = Hükümet Kurumları
o İnt = Uluslararası Kuruluşlar
o İnfo = Bilgi Servisleri Kuruluşları
o Tel = İletişim, Telekomünikasyon Kurumları
Ülke Kodları
o Tr = Türkiye
o Us = Amerika
o Gb = İngiltere
o De = Almanya
o Au = Avustralya
o Fr = Fransa
o Ru = Rusya
o 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 :
Şekil.2
DNS ‘ in Mimarisi
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.
b. 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.
c. 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.
d. 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.
e. 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 :
Şekil – 5
b. 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 - 6
Ş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.
Şekil - 8
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.
Şekil - 9
Advanced
Şekil - 10
o 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.
o 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.
o 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.
o 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.
o 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.
o 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.
o 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.
o 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.
o 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.
o 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
o 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.
o Packet content : TCP/IP paketlerinn içeriğini toplar ve log
dosyasına yazar.
o Transport protocol : İletişim protokolünü yani çift yönlü 53 portunu izler.
o 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
o Log File and name : Adından da anlaşılacağı üzere, kaydedilen
dosyaların hangi klasöre ve isme yazılacağıdır.
o 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 :
Şekil - 14
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.
c. 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.
o 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.
o 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.
o 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 :
Şekil - 16
Yedekleme senaryoları bu şekildedir.
d. 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.
e. 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 - 17
Ş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 gelen HOSTNAME 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.
Alper YAZGAN