1 Kasım 2016 Salı

Ubuntu'da DNS Server Kurulumu

Öncelikle DNS(Domain Name Server): Alan adlarının hangi IP adresine bağlı olduğunu öğrenmemize yarayan harikalı bir sistem.

Bugün girdiğimiz bir sitenin, görüntüleneceği IP adresini değiştirerek nasıl müthişli yerlere yönlendirilebileceğimizi açıklayacağım. (Sonu müthişli bitiyor.)

Ben bu uygulamada kendi bilgisayarımı DNS Server olarak kullanıcam, yönlendirmek istediğim adresleri kendi bilgisayarımda yapılandıracağım. Ve Sanal Makineye kurduğum Ubuntu(14.04 LTS)yuda client(istemci) olarak kullanıp, kendi DNS Server'mdaki siteye bağlanmaya çalışacağım. 





Kendi Bilgisayarımda

1.ADIM : DNS Server Kurmak 

# apt-get install bind9 bind9utils rblcheck

Yapılandırma:

# vim /etc/bind/named.conf.default-zones dosyasına 

zone "yazilimyazari.com" IN {
        type master;
        file "/etc/bind/yazilimyazari.zone";
        allow-update { none ; };
};

yazarak kayıt ediyoruz.








       2.ADIM: DNS Server'a Domainleri ve IPlerini Kaydetmek 

# vim yazilimyazari.zone dosyası oluşturuyoruz.

$TTL 86400
@   IN  SOA     ns1.yazilimyazari.com. root.yazilimyazari.com. (
        2016110111 ;Serial  (yil/ay/gün/seriNo yazılmalı)
        3600            ;Refresh
        1800            ;Retry
        604800        ;Expire
        86400         ;Minimum TTL
)

; NS sunucularini belirtiyoruz:
                IN      NS              ns1.yazilimyazari.com.

; NS'lere ait kayitlar. (bu domain ayni zamanda ana zone oldugundan ns1 ve ns2'yi de tanimliyoruz.):
ns1             IN      A               192.168.56.1 ;(Web Server IP'si)

; ve diger tum kayitlar.
@               IN      A               192.168.56.1 ;(Web Server IP'si)
www           IN      CNAME       @




                          3.ADIM : DNS Server'ı Yeniden Başlatmak

$ sudo service bind9 restart

-- DNS Server Kurulumu Bitti ---

4.ADIM :  Web Server Kurulumu Yapmak

**Domainleri localimize yönlendireceksek web server kurulumu yaparız.

Apache ya da nginx kurulumu :)

# apt-get install nginx
#service nginx restart

VEYA

# apt-get install apache2
#/etc/init.d/apache2 restart

-- Web Server Oluşturduk --


Sanal Makinemde

$ sudo vim /etc/resolv.conf dosyasına giderek DNS Server'n adresini yazıyoruz.

nameserver 192.168.56.1

$ sudo vim /etc/dhcp/dhclient.conf
...

#prepend domain-name-servers 127.0.0.1;

....


                           Yukarıdaki yorum satırını açıp 127.0.0.1 yerine 192.168.56.1 yazıyoruz. Böylelikle DNS Server olarak 192.168.56.1 IPsi kullanılsın diyoruz. 

**NOT : Bu ayarlardan sonra DNS önbelleği(cache) temizlenmezse, ayar değişikliklerinden önce girilen siteler için alınmış dns cevapları cache'de saklanır ve tekrar erişilmek istenildiğinde yeni yapılandırdığımız ayarlardaki dns server'daki değilde, önceden kullanılan dns server'daki ip adresleri geçerli olur. Bu yüzden yeni dns yapılandırmalarından sonra:

$ sudo /etc/init.d/dns-clean restart 

komutu ile dns cache'ini temizliyoruz.

Daha sonra ağımızın yeni ayarlarla çalışabilmesi için :

$ sudo /etc/init.d/networking restart

komutunu kullanıyoruz.
Bunları yapmazsak modemdeki DHCP ayarlarındaki DNS sunucu IPsi kullanılır.

Şimdi client(sanal makineyi ben client olarak kullandım)da gerçekleşen olaylar :

1 - Kullanıcı tarayıcıya domain girer.
2 - Tarayıcı domainin IPsini sorgulamak için DNS Server Kontrolü yapar.
3 - Bu kontrolde hangi DNS Server adresinden sorgulanacağına bakar,
EĞER Client bilgisayarında Özel DHCP ayarları mevcutsa bunları kullanır,
DEĞİLSE Modem üzerindeki DHCP ayarları geçerli olur.
Ve iki yöntemden birisiyle bulduğu DNS Server Adresinde domaini sorgular.
4 - DNS Sunucusu yanıt üretir ve domain'e ait IP adresi bulunuyorsa IP'yi geri döndürür, bulunmuyorsa hata döndürür. (SERVFAIL vb.)
Döndürdüğü IP adresi domaine tanımlı web serverın ip adresidir. 
5 - Browser DNS Sunucusundan aldığı IP adresine Request(İstek) oluşturarak web server'dan response(cevap) alır. Bu isteği client(istemci) için render eder.

Ve son olarak client'da(sanal makinemde) browsera yazilimyazari.com yazınca:



Sanal makinemde yazilimyazari.com yazdığımda süperli şeylerle karşılaşmamızın sebebi localhostumda bulunan index.html dosyam. :)
İçeriğini buraya bırakıyorum :

<!DOCTYPE html>
<html lang="tr">

<head>
        <meta charset="UTF-8">
        <title>DNS Ayarları</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
        <style type="text/css">
                body
                {
                        margin: 0 auto;
                        text-align: center;
                }
        </style>
</head>
<body>
        <p><img src="http://i.hizliresim.com/40BM1A.jpg" alt="Nereye Yönlenecekler?"></p>
        <p class="lead">#dnsolusturmakeyfisi #ablandnsbeybisi #nereyeyonlenecekler #icliklergiyilsin</p>

</body></html>

"DNS nasıl çalışır?" burada çok güzel anlatılmış. :)

6 yorum:

  1. sudo/etc/init.d/networking restart kodunda failed alıyorum
    domain dns ayarlarında yönlendirmedede hata veriyor nedeni nedir acaba

    YanıtlaSil
    Yanıtlar
    1. Merhaba, aldığınız hataların ekran görüntülerini mail atarsanız yardımcı olmaya çalışacağım. Domain olarak hangi name i kullandınız ? Ayrıntılı bir mail atarsanız sevinirim. Mail: dilekuzulmez@gmail.com

      Sil
  2. iyi günler ubuntuda mail server kurulumu için ubuntu server kurulumu yapılandırılırken name server adress olarak bir ekran var buradaki adress ne olaki Burada Ben ActiveDirectory üzerinde DNS serverımı barındırıyorum ve AD Serverımın ip adresini giriyorum. şeklinde belirtmiş yaptığı işlemi tabi ben bunu neden böyle yapıyor diye merak ediyorum burada da servere bağlanmak isteyen nereye bağlanacak onu mu yazıyoruz yani kendi belirlediğimiz ipv4 adresini yazabilirmiyiz

    YanıtlaSil
  3. Merhabalar,
    Tam olarak hangi adımları yaptınız ve hangi adımdasınız, nasıl bir gidişat izlediniz tam olarak bilemediğim için sağlıklı bir cevap veremiyorum. Lakin

    https://www.serdarbayram.net/ubutunu-server-14-04-uzerine-zimbra-server-8-0-6-kurulumu-bolum-1.html
    bu adrese bakın bakalım işinize yaracak mı?. Sanırım name server adress yerine Ubuntu Serverınıza vereceğiniz IP adresini girmeniz gerekiyor. mail adresime yazarsanız yardımcı olmaya çalışayım. dilekuzulmez@gmail.com

    YanıtlaSil
  4. Düzenlediğimiz dosyadan hangi komut yada kısa yol ile kaydedip çıkıyoruz?

    YanıtlaSil
    Yanıtlar
    1. Ben vim kullanıyorum. ,kaydedip çıkmak için esc :wq yazarak çıkabilirsiniz. Vim kullanmayı bilmiyorsanız, Nano ile de o dosyaları açabilirsiniz.

      Sil