DNS Üzerine Detaylı Anlatım

Alper YAZGAN 22 Temmuz 2015 0
DNS Üzerine Detaylı Anlatım

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 :

Şekil – 5

  

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 – 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

  

  • 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 filefrom 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 :

Ş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.

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 :

Şekil – 16

 

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 – 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 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..

Yorum Bırak »