DNS ‘in çalışma mantığına bakacak olursak aslında arkada ip adresi vardır. DNS’in çıkış sebebi ise ip adreslerini bilmek yerine alan adları şeklinde gözükmesini sağlamaktır. Bu şekilde her sitenin ip adreslerini ezberlemek zor olacağından sitelerin domain adreslerini bilmek daha kolay olacaktır.
Örn: 173.194.70.121 yerine blog.btrisk.com domain adresini yazmak gibi.
Alan adı sistemi aradığınız alan adına karşılık gelen ip adresini arka planda kendisi tanımlıyor ve siz o alan adı ile ilişkilenen bilgisayar hizmetlerini, cihazlarını ve servislerini bulabileceğiniz şekilde ip adreslerine dönüştüyor. Kısaca her alan adına karşılık gelen bir IP adresi bulunmaktadır ve siz blog.btrisk.com yazdığınızda bu adrese karşılık gelen ip adresi bulunur. DNS ( Domain Name Server ) sizi o adrese yönlendirecek şekilde ulaşmanızı sağlayan yapıdır.
DNS, host isimleri ile IP adresleri arasında çift taraflı
dönüşüm sağlayan dağıtık bir database yapısına sahiptir. DNS veritabanı sistemi
en tepede root sunucularının yer aldığı ağaç yapısındadır. Ağaç yapısındaki
dallanma maksimum 127 basamaktır. Her nokta maksimum 63 karakterden
oluşabilmektedir. DNS sisteminde root nokta (.) ile gösterilir. Veritabanı
üzerindeki her bir alt nokta “domain”; bu domainden kollara ayrılan her bir
parça ise “subdomain” olarak adlandırılır. Bir adres en alttan root’a gelecek
şekilde gösterilir. Aynı düğüm (parent node) altındaki düğümlerin (children node)
farklı isimde olması gerekir. Böylelikle domain adları tek olması sağlanmış ve
olası çakışmalar önlenmiş olur.
1. DNS TARİHÇESİ
1960’ların sonlarına doğru
Amerika’da ilk geniş alan bilgisayar ağı olan ARPAnet kuruldu. Amerika’da
bulunan araştırma şirketleri arasında dosya, yazılım ve mail haberleşmesi ile
birlikte isim-IP çözümlemesi için sürekli güncel tutulması gereken HOSTS.TXT
dosyası oluşturuldu. HOSTS.TXT dosyası SRI-NIC ismi verilen bir bilgisayarda
tutuluyordu. Ağa bağlanan her yeni bilgisayar ile bu dosya büyümekteydi. Ayrıca
ağda bulunan bilgisayarların çözümleme işlemi için SRI-NIC’ e bağlanmaları
gerekti. 1970 lerin sonlarına doğru HOSTS.TXT dosyası sistemin ihtiyaçlarına
yetersiz kalmaya başlamıştı.
Bir bilgisayar üzerinden bütün isim-IP eşleştirmelerini çekme işlemi sistemin ihtiyaçlarına gerekli cevabı veremeyince DNS sistemi ortaya çıktı. 1984 te yayımlanan RFC 882 ve 883 e göre DNS sistemi global olarak geçerli olmakla birlikte yerel olarak ta yönetilebilir hale geldi. Yönetimin dağıtık yapıda olması internet trafiğini hafifletirken yerel olarak yönetilebilmesi sistemin daima güncel olmasına imkan sağlamış oldu.
Bir bilgisayar üzerinden bütün isim-IP eşleştirmelerini çekme işlemi sistemin ihtiyaçlarına gerekli cevabı veremeyince DNS sistemi ortaya çıktı. 1984 te yayımlanan RFC 882 ve 883 e göre DNS sistemi global olarak geçerli olmakla birlikte yerel olarak ta yönetilebilir hale geldi. Yönetimin dağıtık yapıda olması internet trafiğini hafifletirken yerel olarak yönetilebilmesi sistemin daima güncel olmasına imkan sağlamış oldu.
2. DNS MİMARİSİ
2.1. Root Sunucular
Host isimleri-ip dönüşümü ilk olarak root sunucularında
başlar. Root sunucuları Top-Level Domain(Üst Düzey Alan ) sunucularının
adresini bilirler ve gelen istekleri gerekli TLD(Top Level Domain-Üst Düzey
Etki Alanı) sunucularına yönlendirirler. Internet üzerindeki isim
çözümlemesinin doğru, güvenli ve devamlı olması için root sunucular gereklidir.
Dünya üzerinde isim bazında 13 tane root sunucu bulunmaktadır.
2.2. Top-Level Domain Sunucular
DNS domain uzayında ilk görev paylaşımı TLD’ler
seviyesinde gerçekleşir. 20 adet jenerik TLD (gTLD) ve 248 adet ülke kodlu
ccTLD (country code TLD ) bulunmaktadır. Belli başlı TLD’ler ve açıklamaları
şunlardır:
com |
Ticari Kuruluşlar |
tr |
Türkiye |
org |
Ticari Olmayan Kuruluşlar |
us |
Amerika |
mil |
Askeri Kurumlar |
gb |
İngiltere |
net |
Network Organizasyonları |
de |
Almanya |
edu |
Eğitim Kurumları |
au |
Avustralya |
gov |
Devlet Kurumları |
fr |
Fransa |
int |
Uluslararası Kurumlar |
it |
İtalya |
info |
Bilgi Servisleri |
ca |
Kanada |
name |
Bireysel Kullanım |
ru |
Rusya |
tel |
İnternet İletişim Servisleri |
es |
İspanya |
2.3. İkinci Seviye Domain Sunucuları
İnternette kullanılması için kişi
ya da kurumlara verilen değişken uzunluktaki domain adlarıdır. Örneğin: example.com;
test.com …
2.4. Altdomainler
İkinci seviye domainlerden
türetilen ilave domianlerdir. Altdomainler DNS ağacının büyüterek
istenildiğinde bölümlere ayrılmasına yardımcı olur.
2.5. Sunucu Adı (Host Name)
DNS ağacında bir yaprağa karşı
gelen isimler ve kaynak kayıtlarıdır. DNS alan adlandırmasında en sonda yer
alırlar. “Sunucu Adı - Host Name” terimi bilgisayar ağlarında bir makine adına
karşılık gelir. Bu makine basit bir bilgisayar olabileceği gibi bir ağ
yazıcısı, fax makinası, modem, depolama ünitesi, sunucu vb. ağa bağlanabilen herhangi
bir araç olabilir. Bu makinaların her birine özgün bir sunucu adı atanabilir.
DNS sisteminde ağ üzerindeki makinalar sunucu adı ve alan adı birleşmesiyle adlandırılırlar. FQDN(Fully Qualified Domain Name) denen bu yapıda her domain ismi maksimum 63 karakterden oluşabilir ve toplamda da 255 karakteri aşamaz.
3. DNS YETKİLENDİRME
DNS'te bir
çok organizasyon içersinde bulundurur. Her organizasyon da farklı alt
domainlere bölerek yönetimde bulunur. Böylece yönetim bir merkezden yönetilmesi
engellenmiş olur. DNS sisteminin temel amaçlarından biri olan yönetimin
dağıtılması yetkilendirme (delegation) aracılığı ile gerçekleştirilir.
Yetkilendirme ile birçok subdomain’e bölünebilir. Subdomain’lerden herhangi birinin sorumluğunun başka bir organizasyona verilmesi “delegation” olarak adlandırılır. Her bir subdomain için farklı kurumlar yetkilendirilebilir. Tüm top-level domain’ler ile second-level ve daha alt seviyedeki domain’ler delegation ile daha küçük birçok yönetilebilir birime ayrılabilirler. Bir DNS server tarafından yönetilen, isim cözümlemesi yapılan bu kücük birimlere zone adı verilir. Bu birimlere ait bilgilerin tutulduğu name server’lara da o zone için “authority – yetkili” denilir.
Yetkilendirme ile birçok subdomain’e bölünebilir. Subdomain’lerden herhangi birinin sorumluğunun başka bir organizasyona verilmesi “delegation” olarak adlandırılır. Her bir subdomain için farklı kurumlar yetkilendirilebilir. Tüm top-level domain’ler ile second-level ve daha alt seviyedeki domain’ler delegation ile daha küçük birçok yönetilebilir birime ayrılabilirler. Bir DNS server tarafından yönetilen, isim cözümlemesi yapılan bu kücük birimlere zone adı verilir. Bu birimlere ait bilgilerin tutulduğu name server’lara da o zone için “authority – yetkili” denilir.
4. ZONE TİPLERİ
Tek
bir DNS domain’i ile ilgili kayıtları tutan veritabanıdır. (text file).
test.com bir zone dur. example.test.com
başka bir zone’dur.
Birincil (Primary) Zone(Master Server): Üzerindeki kayıtların doğrudan güncellenebildiği zone türüdür. Manuel kayıt güncellemesi ya da IP’si değişen bir bilgisayar tarafından otomatik kayıt güncellemesi doğrudan yapılabilir.
İkincil (Secondary) Zone(Slave Server): Diğer bir secondary zone türüdür. Secondary zone’dan farkı Primary zone üzerindeki tüm kayıtlar buraya kopyalanmaz. Sıklıkla iki farklı domaine sahip yapıların ya da şirketlerin birleşmeleri ve birbirlerine doğru isim çözümlemeleri ihtiyacı oluştuğunda kullanılır. A, NS ve SOA tipi kayıtlar buraya kopyalanır.
Birincil (Primary) Zone(Master Server): Üzerindeki kayıtların doğrudan güncellenebildiği zone türüdür. Manuel kayıt güncellemesi ya da IP’si değişen bir bilgisayar tarafından otomatik kayıt güncellemesi doğrudan yapılabilir.
İkincil (Secondary) Zone(Slave Server): Diğer bir secondary zone türüdür. Secondary zone’dan farkı Primary zone üzerindeki tüm kayıtlar buraya kopyalanmaz. Sıklıkla iki farklı domaine sahip yapıların ya da şirketlerin birleşmeleri ve birbirlerine doğru isim çözümlemeleri ihtiyacı oluştuğunda kullanılır. A, NS ve SOA tipi kayıtlar buraya kopyalanır.
Kalıntı (Stub) Zone: Primary zone’un kısayolunu belirten zone tipidir.Yalnızca NS, SOA ve A kayıtlarını içeren zondur. Stub zone içeren sunucu o zondan sorumlu (authoritative) değildir.
Active directory Integrated Zone : Active Directory yapısına uygun Primary,Secondary veya Stub zone türüdür.
Conditional forwarding: Şartlı yönlendirmedir. Amaç belli bir zone için yapılacak sorguları doğrudan o zone’u barındıran DNS sunucuya yönlendirmektir. Böylece hem doğru, hem hızlı, hem de güncel bilgi almamızı sağlanır. Bu yüzden oluştururken domain adı ve o domaini barındıran dns sunucu bilgisi girilir.
Birincil
zone ile ikincil zone bilgilerinin eşitliği SOA kaydı içindeki seri numarasıyla
belirlenir. Seri numarasının eşit olması zone transferinin gerekli olmadığını
belirtir. Master sunucudaki seri numarasının daha büyük olması zone’un
güncellendiğini ve zone transferinin gerekli olduğunu gösterir. Domain
ağdaki bütün bilgisayarları içerirken, Zone DNS’te her bir domain ya da
subdomain için oluşturulan kayıtların tutulduğu bölümün tamamına verilen
isimdir.
5. DNS SORGU TİPLERİ
Dns sorguları bir istemci dns sunucuya ya da dns sunucudan başka bir dns sunucuya olabilir. Recursive Query ve İterative Query olmak üzere iki tip sorgu tipi vardır.
5.1. Özyinelemeli
(Recursive) Sorgu
İstemcinin, ağ üzerinde bir kaynağa veya bir internet sitesine
bağlanmak üzere ip adresini DNS sunucusuna sorarken yaptığı sorgu tipidir. Bu sorgu olumlu ya da olumsuz cevaplanmak zorundadır.
İstemci sorgusunu dns sunucuya recursive sorgu olarak yapar, dns sunucu da istemcinin
yaptığı sorguyu alır ve cevabı iletir. Eğer dns sunucu cevabı bilmiyorsa diğer
dns sunucu ya da sunuculara sorarak öğrenir ve sorguyu yapan istemciye cevabı
olumlu ya da olumsuz olarak yapar.
5.2. Tekrarlamalı (Iterative) Sorgu
Dns sunucuların kendi aralarında yaptıkları sorgulara
denir. İstemcinin dns sunucuya ulaşmak istediği ip adresini sorduğunda dns sunucu
bu ip adresini biliyorsa cevap verir. Eğer dns sunucu istemcinin istediği isim
cözümlemesini kendi database'inden ya da cache'inden karşılayamıyorsa
internette ya da localde bulunan diğer dns sunuculardan ip adresini ister. Bu
işlemi istenilen ip adresini bulana kadar sürdürür. İterative sorgu ile sorgu
yapılan sunucudan sahip olduğu en sağlıklı cevabı ister.
6. DNS İSİM ÇÖZÜMLEMESİ
DNS
sunucuları sorumlu olduğu ve de başka yollar ile öğrendiği bütün FQDN’leri ve
IP adreslerinin listesini belleğinde saklar. İstemcilerin öğrenmek istediği IP
ve FQDN’leri öğrenebilmesi için sorgusunda FQDN/IP, sorgu çeşidini (Kaynak
Kaydı(Resource Record)) belirtmesi gerekir.
İstemci tarafından yapılan bir DNS sorgusunun işleyişi şu şekilde gerçekleşir:
İstemci tarafından yapılan bir DNS sorgusunun işleyişi şu şekilde gerçekleşir:
- DNS Name Cache: Önce cache adı verilen önbelleğe bakılır. Eğer erişmek isteyen bilgisayar, sunucuya daha önce eriştiyse bunu cache’de tutar ve burada tuttuğu bilgiyi kullanarak bu bilgisayara erişir. DNS cache’i ipconfig /displaydns komutu ile öğrenilebilir.
- Host file: C:\Windows\system32\drivers\etc altında bulunan host dosyası notepad ile açılırsa çözülmesi istenen adresin karşılığındaki IP adresinin tutulduğunu göreceksiniz. Bu dosyayı değiştirip adresin istediğiniz IP’ye gitmesini sağlamak mümkündür.
- Eğer DNS sunucusu sorguyu host dosyasından cevap bulamazsa, belleğinde kayıtlı Root(Kök) DNS sunucularına sorguyu yönlendirir.
- Kök sunucuları sorguyu ilgili TLD sunucularına yönlendirir.
- TLD sunucuları sorguyu ilgili sunuculara yönlendirerek istemciye cevap dönülmesi sağlanır.
6.1. Caching
DNS sunucuları ve istemciler bir kere öğrendikleri bilgiyi belli bir TTL(Time-To-Live) değeri süresince belleklerinde tutarlar. Böylece yapılacak sonraki aynı sorgular için işlem süresi azalır. Caching ile Root sunucuların sürekli sorgulanması önlenir aynı zamanda da veri trafiğinden tasarruf edilmiş olur. TTL değerinin az olması ağ trafiğini arttırır ancak sorguların taze tutulabilmesini sağlar. DNS Server Caching-Only Server olarak kullanılarak sadece cache amaçlı kullanılabilir.
6.2. TTL(Time-To-Live Yaşam Süresi)
Diğer DNS sunucuları/istemcileri tarafından bilginin ne kadar süre ile cache’te tutulacağını belirtir. Aksi halde authoritative server’lardaki değişiklik network üzerinde geçerli olmaz, böylece istemcilere yanlış cevap dönülmüş olur. Bu kısım elle belirtilebileceği gibi SOA kaydı üzerinden de türetilebilir. Eğer bu kısma bir değer girilmezse SOA kaydı üzerindeki ttl değerini alır.
6.3. Ters DNS Çözümlemesi
IP
adresinden isim çözümlemesi yapılmasıdır. Ters sorgulama için “btrisk.com” adında özel bir domain
bulunmaktadır. Örneğin, 31.210.54.27
adresine
karşılık gelen bilgisayar ismini bulmak için DNS sunucuya “btrisk.com” kayıtı
sorulur.
Buradan da bu sorguyu yapabileceğiz adresi bulabilirsiniz.
Buradan da bu sorguyu yapabileceğiz adresi bulabilirsiniz.
7. DNS SUNUCULARINDA YÜK DENGELEMESİ (ROUND-ROBIN)
Yük
dağılımının yapılması ve yedekleme amacıyla domain birden fazla server’da
tutulur. Yani aynı host ismine birden fazla IP adresi atanır.
Örneğin, 192.168.23.1,
192.168.23..2, 192.168.23..3 IP’li 3 tane web sunucunuz varsa, aşağıdaki
kayıtlar ile istemcilerin her birine sırası ile bağlanmasını sağlayabilirsiniz:
Name
|
TTL
|
CLASS
|
TYPE
|
Resource
Record (RR) Data
|
www
|
3600
|
IN
|
A
|
192.168.23.1
|
www
|
3600
|
IN
|
A
|
192.168.23.2
|
www
|
3600
|
IN
|
A
|
192.168.23.3
|
Bir resolver bu kayıtları sorguladığında, BIND bunları döndürecektir ve sorgulara farklı sıralarda yanıtlar verecektir. Yukarıdaki örnekte, istemciler kayıtları rasgele olarak 1,2,3; 2,3,1; ve 3,1,2 sırasında alacaklardır. Tüm istemciler döndürülen ilk kaydı kullanacaklar ve diğerlerini dikkate almayacaklardır.
8. DNS Kayıt Türleri
Kaynak
kayıtları bir domain isim uzayının yapısını ve içeriğini belirten veri
elemanlarıdır. Bütün DNS tanımlama işlemleri kaynak kayıtları cinsinden
yapılmaktadır. Yani DNS sunucularının asıl görevi olan isim-ip dönüşümleri
Kaynak Kayıtları aracılığıyla yapılır. Kaynak kayıtları formatı RFC 1035 3.2.1.
de belirtilmiştir. Kaynak kayıtları genel olarak
“Alan Adı
ttl Sınıf Kaynak Kaydı Kayda Özgü Veriler”
şeklindedir.
Alan Adı: Kaynak kaydı yapılacak adresi belirtir.
Alan Adı: Kaynak kaydı yapılacak adresi belirtir.
ttl(time to live): Diğer DNS sunucuları/istemcileri tarafından bilginin ne kadar süre ile cache’te tutulacağını belirtir. Bu kısım elle belirtilebileceği gibi SOA kaydı üzerinden de türetilebilir. Eğer bu kısma bir değer girilmezse SOA kaydı üzerindeki ttl değerini alır. Burada dikkat edilecek husus sunucun üzerindeki verilerin durumuna göre optimum seviyede bir ttl süresi belirlemektir.
Sınıf: Kaynak kaydın sınıfını belirten anımsatıcı bir değer içerir
0 Rezerve
1 İnternet (IN)
2 Atanmamış
3 Chaos (CH)
4 Hesiod (HS)
5-65534 Atanmamış
65535 Rezerve
1 İnternet (IN)
2 Atanmamış
3 Chaos (CH)
4 Hesiod (HS)
5-65534 Atanmamış
65535 Rezerve
A KAYDI
Adres
kaydıdır. Bu kayıt host kayıtlarını ilişkili ip adresiyle eşleştirir. 32 bitlik
IPV4 adresini DNS domain ismine eşler.
Alan Adı |
TYPE |
IP |
Sınıf |
TTL |
btrisk.com |
A |
31.210.54.27 |
IN |
3600 |
AAAA KAYDI
A kaydı ile aynı işi yapar yani hostname leri ip adresleri
ile eşler ama ip V6 ile kullanılmak üzere tasarlanmış bir kayıttır. 128 bitlik IPV6 adresini DNS domain
ismine eşler.
Alan Adı |
TYPE |
IP |
Sınıf |
TTL |
google.com |
AAAA |
2a00:1450:400d:804:0:0:0:1005 |
IN |
299 (4 min 59 sec) |
ATMA KAYDI
ATM(Asynchronous Transfer Mode) adres kaydıdır. Alan adı alanında geçen DNS
adresini atm address alanında geçen ATM adresine eşler.
Alan Adı |
Atm Adres |
Sınıf |
TTL |
atm-host |
36.0074.10010200000000000009.00a45b000002.00 |
ATMA |
3600 |
CNAME KAYDI
Canonical
name kaydıdır. Alan adı kısmındaki alternatif domain ismini canonical name
alanındaki birincil DNS domain ismine eşler. Mevcut bir A ya da AAAA
kaydını farklı bir isim ile çözmeye yarar. Herhangi bir sunucuya gerçek
isminden başka bir isimle erişmek istendiğinde bu kayıt tipi kullanılır.
Alan Adı |
Canonical Name |
Sınıf |
TTL |
bim.btrisk.com |
cit.btrisk.com. |
CNAME |
3600 |
HINFO KAYDI
Host
Information kaydıdır. Alan adı kısmındaki DNS adresinin bulunduğu bilgisayar
üzerindeki işlemci ve işletim sistemlerine ait bilgileri verir. Bu bilgi ftp
gibi bilgisayarlar arası iletişimde özel prosedürler gerektiren bazı uygulama
protokolleri tarafından kullanılabilmektedir.
Alan Adı |
CPU/OS type |
Sınıf |
TTL |
btrisk.com |
INTEL-386 WIN32 |
HINFO |
3600 |
ISDN KAYDI
ISDN
(Integrated Services Digital Network) kaydıdır. DNS domain ismini
bir telefon numarasına eşler.
Alan Adı |
ISDN adres |
Sınıf |
TTL |
cc_tbtrisk.com |
009012345678913 |
ISDN |
3600 |
MX KAYDI
Mail
Exchanger kaydıdır. Alan adı alanındaki domain’e gönderilmek istenen e-postaların
mail exchanger host’ta belirtilen adrese yönlendirilmesini sağlar. Eğer
birden fazla exchanger belirtilmiş ise her MX kaydına bir öncelik değeri
verilir. Değeri düşük olan kayıt önce tercih edilir.
Exchange |
Alan Adı |
Type |
Sınıf |
TTL |
ASPMX.L.GOOGLE.com |
btrisk.com |
MX |
IN |
3600 |
NS KAYDI
Name server
kaydıdır. Networkte
bulunan ve kullanılan DNS serverlerin tutulduğu kayıt türüdür. Yani bir DNS
server networkte bulunan başka bir DNS server ile bu kayıt sayesinde daha kolay
ve hızlı bir şekilde haberleşir.
Alan Adı |
Type |
Sınıf |
Name Server Domain Name |
TTL |
example.btrisk.com |
NS |
IN |
nameserver1.btrisk.test.com |
3600 |
OPT KAYDI
Option
kaydıdır. OPT kaydı transport katmanı mesajlarına(örneğin UDP) ait bir
kayıttır. Bir DNS sorgusu ya da cevabında additional data kısmına bir OPT kaydı
eklenebilir. Fakat her mesaj için gerekli değildir.
İsim |
Type |
Sınıf |
TTL |
Rdlen |
Rdata |
test |
OPT |
IN |
1280 |
0 |
0 |
PTR KAYDI
Pointer
kaydıdır. in-addr.arpa domaininde kullanılır. IP’den isim çözmek için
gerekli kayıt türüdür. Ters DNS sorgularında verilen; bir ip adresine
karşı düşen DNS adresini bulmak amacıyla kullanılır.
Alan Adı |
Type |
Target Domain Name |
TTL |
1.0.0.10.in-addr.arpa |
PTR |
pc.test.com |
3600 |
RP KAYDI
Responsible
Person kaydıdır. Alan adı kısmında belirtilen domaine ait sorumlu adres bilgisini
belirtir.
Alan Adı |
Type |
MailBox Name |
Text Record Name |
TTL |
deneme.btrisk.com |
RP |
ns1.btrisk.com |
hostmaster.btrisk.com |
3600 |
SIG KAYDI
İmza
kaydıdır. Kaynak kayıt kümesini, domain ismine ve geçerli olduğu aralığa
enkripte eder.
Alan Adı |
Sınıf |
TTL |
Signature Expiration |
Signature İnception |
Key İdentifier |
Signer Name{Dijital Signature} |
widgets. btrisk.com |
SIG |
86400 |
19700101000000 |
19700101000000 |
49292 |
widgets.btrisk.com.{AIYADP8d3zYNyQwW2EM4wXVFdslEJcUx/fxkfBeH1El4ixPFhpfHFElxbvKoWmvjDTCmfiYy2X+8XpFjwICHc398kzWsTMKlxovpz2FnCTM=} |
SOA KAYDI
Bir DNS zone ile ilgili Name Server, domain administrator’un
e-mail adresi, replikasyon bilgisi ve diğer birkaç sayaç bilgisinin tutulduğu
kayıt türüdür.
Name Server |
Type |
Responsible( Serial Number, Refresh İnterval, Retry İnterval, Expiration, Min. Time to Live) |
nameserver.example.btrisk.com. |
SOA |
postmaster.btrisk.microsoft.com. (1 ; serial number3600 ; refresh [1h]600 ; retry [10m]86400 ; expire [1d]3600 ) ; min TTL [1h] |
serial number: Seri numarasını belirtir. Yapılan her değişiklikte bu numara artar. Zone transferleri bu numaraya bakılaraktan yapılır.
refresh interval: İkincil DNS sunucusunda zone bilgisinin yenilenmesi gereken süreyi belirtir. Bu sure dolduğunda zone bilgisinin yenilenmesi gerekir.(saniye)
retry interval: Bir şekilde tamamlanamamış zone yenileme denemesinden sonar beklenen süredir.(saniye)
expiration: Zone bilgisinin yenilenemediği durumlarda ikincil sunucunun sorgulara yetkili olarak cevap vermeyi kesmesi için geçmesi gereken süredir.(saniye)
minimum time_to_live: İkincil sunucunun zone dosyasını önbellekte tutma süresidir. (saniye)
SRV KAYDI
Özel bir servisin hangi port ve hangi IP’den verildiğinin
bilgisini tutan kayıttır. Örnek olarak KMS (Key Management Service) için DNS’e
SRV kaydı girilir ve windows sistemler ürün anahtarı doğrulamasını otomatik
olarak gerçekleştirir.
Service.Protocol.Name |
Type |
Preference |
Weight |
Port |
Target |
_ldap._tcp._msdcs |
SVR |
10 |
0 |
389 |
dc2.example.btrisk.com |
servis: Kullanılan servisin sembolik adıdır. smtp gibi…
protokol: İletişimprotokolüdür.TCP, UDP gibi…
isim: Kayda ait domain ismi. Bu kaynak kaydıi sorgulanmaması yönüyle diğer kayıtlardan ayrılır.
öncelik: hedefte belirtilen bilgisayar için öncelik değeri belirtir.
ağırlık: hedefte birden fazla sunucu belirtilmesi durumunda öncelik değerine ek olarak kullanılabilen yük dengeleme(load-balancing) için kullanılır.
port: sunucuya ulaşılacak bağlantı noktası
hedef: İstenilen servisi sağlayan sunucunun DNS domain adıdır. Burada belirtilecek hedeflerin mutlaka A kaydı yapılmış olmalıdır.
isim: Kayda ait domain ismi. Bu kaynak kaydıi sorgulanmaması yönüyle diğer kayıtlardan ayrılır.
öncelik: hedefte belirtilen bilgisayar için öncelik değeri belirtir.
ağırlık: hedefte birden fazla sunucu belirtilmesi durumunda öncelik değerine ek olarak kullanılabilen yük dengeleme(load-balancing) için kullanılır.
port: sunucuya ulaşılacak bağlantı noktası
hedef: İstenilen servisi sağlayan sunucunun DNS domain adıdır. Burada belirtilecek hedeflerin mutlaka A kaydı yapılmış olmalıdır.
TXT KAYDI
Alan Adı |
Type |
Record |
TTL |
btrisk.com |
TXT |
v=spf1 a mx ip4:77.92.152.20 ip4:77.92.152.15 ip4:77.92.152.0/24 ip4:77.92.153.0/24 ip4:188.132.128.0/21 ~all |
3600 |
WKS KAYDI
Well-known
servis kaydıdır. Bir ip adresinde bulunan ve bir protocol tarafından
desteklenen belli başlı TCP/IP servislerini belirtir.
Alan Adı |
Type |
Protocol |
Adres |
Servis List |
TTL |
deneme.btrisk.com |
WKS |
TCP |
172.16.1.2 |
Telnet Smtp Ftp |
3600 |
X.25 KAYDI
X.25
kaydıdır. Bir domain ismini PSDN(Public Switched Data Network) adresine eşler.
Alan Adı |
Type |
Psdn Number |
TTL |
deneme.btrisk.com |
X.25 |
1234567890 |
3600 |
9. DNS Commandlar
ipconfig
registerdns => Bilgisayarı adını ve ipsini DNS e kaydetmek için kullanılır.
ipconfig flushdns => Dns clientların cache belleklerinde tuttukları isim ve ip adres eşleşmelerine ait bilgileri siler,Cache belleği boşaltır.(Sorun Çözmek için kullanılır)
ipconfig displaydns ipconfig displaydns => Eğer kullandığınız bilgisayar aynı zamanda bir DNS client'ı ise, DNS Cache belleğinde bulunan IP adresleri ve onlara ait olan DNS isimlerinin gösterilmesini sağlar.
Nslookup Komutu
Nslookup komutu DNS'in düzgün çalışıp çalışmadığını kontrol eder. En basit kullanım alanı makine isminden makine IP adresinin bulunmasıdır.Komutun temel kullanım şekli aşağıdaki gibidir:
ipconfig flushdns => Dns clientların cache belleklerinde tuttukları isim ve ip adres eşleşmelerine ait bilgileri siler,Cache belleği boşaltır.(Sorun Çözmek için kullanılır)
ipconfig displaydns ipconfig displaydns => Eğer kullandığınız bilgisayar aynı zamanda bir DNS client'ı ise, DNS Cache belleğinde bulunan IP adresleri ve onlara ait olan DNS isimlerinin gösterilmesini sağlar.
Nslookup Komutu
Nslookup komutu DNS'in düzgün çalışıp çalışmadığını kontrol eder. En basit kullanım alanı makine isminden makine IP adresinin bulunmasıdır.Komutun temel kullanım şekli aşağıdaki gibidir:
nslookup [seçenek] [sorgu]
Tracert
Tracert komutu ile uzaktaki makinaye giden yoldaki geçilen yönlendiriciler hakkında bilgi alınır. Networkde nerde hata var gönderdiğimiz paket nerede takılıyor bunun detaylı bilgisini verir müdahale daha kısa zamanda olur ve saglıklı bilgi edinmis oluruz.
Tracert www.google.com
DIG Komutu
Dig(domain information groper)Linux sistemlerde DNS kayıtlarına bakmak için kullanılır. DNS adreslerine bakmak istediğiniz siteyi dig komutu ile aratma yapmanız mümkün ve sitede kullanılan tüm DNS kayıtları karşınıza çıkacaktır.
Dig komutu kullanımı
- "dig <alanadi>" olarak kullanıldığında size domaine bağlı olan A Kaydını göstermektedir.
- "dig <alanadi> -t NS" olarak kullanıldığı zaman NS kayıtlarını listelemektedir.
- "dig <alanadi> -t MX" olarak kullanıldığı zaman MX kayıtlarını listelemektedir.
- "dig <alanadi> -t txt" olarak kullanıldığı zaman TXT kayıtlarını listelemektedir.
- "dig -x <ipadresi> +short" olarak kullanıldığı zaman eskiden kullanılan kayıtları listelemektedir.
- "dig <dns adresi> <alanadi> -t <aratmak istediğiniz kayıt tipi>" şeklindeki aramalarda /etc/resolv.conf da kayıtlı dns yi kullanmadan bilgi almanızı sağlar
- "dig <alanadi> +nocomments +noquestion +noauthority +noadditional +nostats"
- +nocomments bilgileri kapatır
- +noauthority yetki alanını kapatır
- +noadditional ek bölümleri kapatır
- +nostats istatistikleri kapatır.
- "dig -f kayit1.txt -t MX +noall +answer " olarak kullanıldığında txt dosyasındaki MX kayıtlarını tek tek bakarak komut dizininde size listeleyecektir.
- “dig -h” komutu ile dig’in yardım menüsüne erişilebilir.
- " dig @ns1.example.com example.com axfr" zone transfer işleminde kullanılır.
dig <alanadi> +noall +answer
komutunu kullanarak +noall yani yukarıda yazılanların kapatılması işlemi cevap
içinde + answer yazıyoruz.
10. Zone Transferi
Zone Transferi; Belirli bir işlem sonucunda DNS veritabanının bir sunucudan
başka bir sunucuya aktarılmasına denir.
Zone transfer işlemlerinin amacı, network ortamında
bulunan bilgisayarların, IP adresleri ve isim çözümlemelerinde meydana gelen
değişiklikler durumunda ve DNS server içerisindeki zone veritabanının da
meydana gelen değişiklik sonucunda, bu değişikliklerin diğer DNS server
sunucuları arasında güncelleştirmesini sağlar. Eğer bunun üzerinde değişiklik
herkese açıksa buraya saldırgan tarafından kayıtlar atanır.
10.1. Dns Hijacking
Dns
hijacking
merkez dns'ler, kök dns sunucularda, name serverı yönettiğiniz domain paneli
üzerinde, host üzerinde name serverlarin tanımlı olduğu alanda değişiklik
yapılmasını sağlayan hacking türüdür. Böylece Dns çözümleme işlemi sırasında bir
yerlerde bizi doğru sunucuya yönlendirme yerine önceden planlanan ve gerçek
olmayan bir sunucuya yönlendirmektedir.
Bir site yasaklamak istiyorsunuz. Sitenin IP kaydını değiştirerek gerçekten girmek istediğiniz site yerine bu site şu anda yasaklıdır sayfasının olduğu bir sunucuya yönlendirebilirsiniz.
Eğer siz her hangi bir websitesinin name server larının yönetimini ele geçirirseniz bu alan adının yönetiminin tamamen ele geçirildiği anlamına gelir. Önceleri Domain Hacking ismi verilen domain haklarının illegal yollarla üzerine geçirilmesi işleminin, günümüzde hak sahipliği anlaşmaları ile garantiye alınarak domainin asıl sahibinin geri alması üzerinde birçok kolaylıklar sağlanmaktadır. Dns hijacking işleminde siz domain hak sahipliğini geçici süre alsanız bile bu kısmi domain hack olur ve domainin yönetimini kısa süreli de olsa elinizde bulundurmuş olursunuz.
Bir site yasaklamak istiyorsunuz. Sitenin IP kaydını değiştirerek gerçekten girmek istediğiniz site yerine bu site şu anda yasaklıdır sayfasının olduğu bir sunucuya yönlendirebilirsiniz.
Eğer siz her hangi bir websitesinin name server larının yönetimini ele geçirirseniz bu alan adının yönetiminin tamamen ele geçirildiği anlamına gelir. Önceleri Domain Hacking ismi verilen domain haklarının illegal yollarla üzerine geçirilmesi işleminin, günümüzde hak sahipliği anlaşmaları ile garantiye alınarak domainin asıl sahibinin geri alması üzerinde birçok kolaylıklar sağlanmaktadır. Dns hijacking işleminde siz domain hak sahipliğini geçici süre alsanız bile bu kısmi domain hack olur ve domainin yönetimini kısa süreli de olsa elinizde bulundurmuş olursunuz.
Burada dikkat edilmesi gereken şeylerden bir tanesi de şudur. Dns Hijacking
işlemi Dns Spoofing ile kesinlikle karıştırılmamalıdır. Arp saldırılarından
olan Dns spoofing işleminde olay yerel dns lerle alakalıdır ve genelde yerel
networkü ilgilendiren bir konudur.
10.2. DNS spoofing
DNS spoofing, DNS ön bellek zehirlenmesi, ya da domain
adı sistemi (DNS) zehirlenmesi, bir Domain Ad Sistemi (DNS) ad sunucusunun ön
bellek veritabanına veri eklenerek, ya da oradaki veriler değiştirilerek ad
sunucunun yanlış IP adresleri dönmesine ve trafiğin başka bir bilgisayara
(sıklıkla da saldırıyı gerçekleştirenin bilgisayarına) yönlendirilmesine neden
olan bir saldırıdır.
Bu saldırıya maruz kalan bilgisayarınıza kullanıcı bir sayfaya (İnternet adresine) gitmeye çalıştığı zaman, isteği farklı bir adrese yönlendirilir. O noktada kullanıcının bilgisayarına kurt, casus yazılım, Web tarayıcı korsan programı veya başka türlü zararlı yazılımlar yüklenebilir, ya da kullanıcı gitmeye çalıştığı siteye benzer, ama sahte bir siteye çekilerek tuzağa düşürülebilir. İnternet üzerinde kullandığınız tüm bilgilerize sahip olabilir. Buna banka şifreleriniz ve Facabook, mail vb. gibi internet şifreleriniz de dahildir.
Bu saldırıya maruz kalan bilgisayarınıza kullanıcı bir sayfaya (İnternet adresine) gitmeye çalıştığı zaman, isteği farklı bir adrese yönlendirilir. O noktada kullanıcının bilgisayarına kurt, casus yazılım, Web tarayıcı korsan programı veya başka türlü zararlı yazılımlar yüklenebilir, ya da kullanıcı gitmeye çalıştığı siteye benzer, ama sahte bir siteye çekilerek tuzağa düşürülebilir. İnternet üzerinde kullandığınız tüm bilgilerize sahip olabilir. Buna banka şifreleriniz ve Facabook, mail vb. gibi internet şifreleriniz de dahildir.
10.3. Örnek Bir Saldırı
10.3.1. DNS Sorgulama Yapısı
- 192.168.163.132 IP adresli saldırgan hedef DNS sunucu üzerinden facebook.com sayfasını sorgular.
- DNS sunucuda facebook.com alan adı bulunmadığından facebook.com alan adından sorumlu olan a.ns.facebook.com sunucusundan alan adını sorgular.
- a.ns.facebook.com sunucusu, facebook.com alan adı için geçerli olan 173.252.11.27 IP adresini yanıt olarak hedef DNS sunucusuna döndürür.
- DNS sunucusu da saldırgana facebook.com alan adının IP adresi olan 173.252.11.27 adresini döndürür. Burada dikkat edilmesi gereken hedef DNS sunucusunun saldırgan ile haberleşirken istek ve cevaplarda aynı kaynak portu (63) kullanması ve tahmin edilebilir TXID (0x5774) değerini kullanmasıdır. Hedef DNS sunucusundan gelen cevabın geçerli olması için istekte bulunurken kullanılan TXID değerinin cevap kısmında da aynı değerde dönmesi gerekmektedir.
10.3.2. DNS Spoofing Saldırı Örneği
1.Saldırgan Hedef DNS sunucuya facebook.com alanına ait bir çok alt alan ismi (a.ns.facebook.com, b.ns.facebook.com … z.ns.facebook.com) için DNS sorgusu göndermektedir. facebook.com alan adı için Hedef DNS sunucu üzerinde sorgulama yaparak DNS sunucunun bir çok cevaplar beklemesini sağlamaktır.2. Hedef DNS sunucusu facebook.com sunucularından IP çözümlemesini beklemektedir. DNS sunucu tüm alt alan isimleri için a.ns.facebook.com sunucusuna istekte bulunmaktadır. a.ns.facebook.com sunucusu da tüm alanlar için geri cevaplar vermektedir. Fakat aynı zamanda saldırgan da Hedef DNS sunucuya sanki a.ns.facebok.com sunucusundan geliyormuş gibi cevaplar göndermektedir. Bu cevaplar, facebook.com alan adı için IP adresini kendisi göstermektedir ve kendi aralarında bilinen TXID alanını tahmin etmeye çalışmaktadır.
Deneme sonrası a.ns.facebook.com alan adı için k.ns.facebook.com adlan adı için saldırganın gönderdiği cevap paketi TXID alanını doğru tahmin etmesi sonucu hedef DNS sunucu bu cevabın ns.facebook.com'dan geldiğini kabul ederek aslında saldırgana yönlendirmektedir. Böylece saldırgan Hedef DNS sunucusunun belleğini zehirlemiş olmaktadır.
Sonrasında kurban facebook.com adresine gitmek istediğinde Hedef DNS sunucu saldırganın adresine yönlendirdiğinden, saldırganın kurmuş olabileceği sahte bir facebook.com sayfasına erişecektir.