Debian Lenny üzerinde Bind9 kullanarak dns sunucu kuracağız. Güvenliği chroot kullanarak en üst seviyede tutacak şekilde yapılandıracağız.

BIND 9 Kurulumu
BIND 9 kurulumu ile birlikte nslookup, dig,nsupdate araçlarınıda kullanmak için dnsutils paketini kuruyoruz.

apt-get install bind9 dnsutils

Bind9 için genel ayar seçeneklerini düzenleyelim.

nano /etc/bind/named.conf.options 

options {
	directory "/var/cache/bind";

	auth-nxdomain no;    # conform to RFC1035
	listen-on-v6 { any; };
};

Yetkili DNS Ayarları

‘linuxuzmani.com’ yazılı yerleri kendi alanadınızla ve 172.16.3.1 ip adresini kendi internet ip adresiniz ile değiştirmeyi unutmayın. Ip adresiniz için ters kayıt eklerken son üç basamağı eklemiyorsunuz. Her ip için bu kayıt bir kere girilebilir. Yani 172.16.3.1 adresi için ters kayıt 3.16.172.in-addr.arpa şeklinde yazılır.

nano /etc/bind/named.conf.local

zone "linuxuzmani.com" {
type master;
file "/etc/bind/zones/linuxuzmani.com.db";
};

zone "3.16.172.in-addr.arpa"{
type master;
file "/etc/bind/zones/rev.3.16.172.in-addr.arpa";
};

Alanadı Ekleme
Alanadımızı zone (bölge) olarak veritabanını dosyasını oluşturuyoruz. Bu dosyaya A, MX, CNAME, NS vb kayıtları girilmektedir. BIND config dosyasina alanadlarımızı tutacağımız yer olarak /etc/bind/zones klasörünü gösterdik. Bu klasörü oluşturarak işe başlıyoruz.

mkdir /etc/bind/zones

Dns tanımlamalarını yapacağımız alanadı için dosyamızı açıyoruz.

nano /etc/bind/zones/linuxuzmani.com.db

;
; SOA
;
$TTL    1h
@               IN      SOA     ns1.linuxuzmani.com. hostmaster.linuxuzmani.com. (
                        0000000001      ; Serial number
                        1h              ; Slave refresh
                        15m             ; Slave retry
                        2w              ; Slave expire
                        1h              ; Negative Cache TTL
                        )
;
; Name Server Kayıtları
;
@               IN      NS              ns1.linuxuzmani.com.
@               IN      NS              ns2.linuxuzmani.com.
;
; Mail Kayıtları
;
@               IN      MX      10      mail.linuxuzmani.com.
;
; A Kayıtları
;
@               IN      A               172.16.3.1
www             IN      A               172.16.3.1
ns1             IN      A               172.16.3.1
ns2             IN      A               172.16.3.2
mail            IN      A               172.16.3.3
destek          IN      A               172.16.3.4

dosyamızı kaydediyoruz.

Ters DNS
172.16.3.1, 172.16.3.2, 172.16.3.3, 172.16.3.4 ipleri için ters dns kaydı girelim. Sondaki 3 basamak yazmadan ip dosyamızı açıyoruz.

nano /etc/bind/zones/rev.3.16.172.in-addr.arpa

$TTL    1h
@ IN SOA ns1.linuxuzmani.com. hostmaster.linuxuzmani.com. (
                        0000000001;
                        1h;
                        15m;
                        2w;
                        1h
)

                    IN    NS     ns1.linuxuzmani.com.
1                   IN    PTR    linuxuzmani.com.
2                   IN    PTR    linuxuzmani.com.
3                   IN    PTR    linuxuzmani.com.
4                   IN    PTR    linuxuzmani.com.

Dosyamızı kaydediyor ve çıkıyoruz.

Chroot Ayarları
Bind9 yetkisiz bir kullanıcı ve chroot olarak /var/lib/named altında çalıştırmak için /etc/default/bind9 açıyor ve aşağıdaki satırları ekliyoruz.

nano /etc/default/bind9

# run resolvconf?
RESOLVCONF=yes
# startup options for the server
OPTIONS="-u bind -t /var/lib/named"

Dosyamızı kaydediyoruz.

Bu dizinin chroot olarak çalışması için aşağıdaki klasörleri oluşturuyoruz.

mkdir -p /var/lib/named/etc
mkdir -p /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run

Bind9 konfigürasyon dizinini /var/lib/named/etc altına taşıyoruz.

mv /etc/bind /var/lib/named/etc

Yeni konumdan eski konuma sembolik link verelim..

ln -s /var/lib/named/etc/bind /etc/bind

Boş ve rasgele aygıt oluşturalım.

mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8

Dizinlerimizin erişim yetkilerini düzenleyelim.

chmod 666 /var/lib/named/dev/null
chmod 666 /var/lib/named/dev/random
chown -R bind:bind /var/lib/named/var/
chown -R bind:bind /var/lib/named/etc/bind

Alanadı sunucumuzdaki logları sistem logunda görebilmek için /etc/init.d/sysklogd dosyasına aşağıdaki eklemeyi yapalım. PATH=/bin:/usr/bin:/sbin:/usr/sbin yazan satırın altına aşağıdaki satırı ekliyoruz.

nano /etc/init.d/sysklogd

SYSLOGD="-a /var/lib/named/dev/log"
Sistem log servisimizi ve dns sunucumuzu yeniden başlatıyoruz.

/etc/init.d/sysklogd restart
/etc/init.d/bind9 restart

Normal şartlarda domaini aldığınız yerde alt domain tanımlama bölümünden internet ipnize ns1 ve ns2 karşılığı olarak eklersiniz. Bundan sonra herhangi bir dnsten sorgulama yapabilirsiniz. Biz yerel olarak yapılandırdığımız için dns sorgulamalarızın kurdugumuz dns sunucuya gelmesi için resolv.conf dosyamızı ipmizi ekliyoruz.

nano /etc/resolv.conf

nameserver 172.16.3.1

DNS Ayarlarını Kontrol Edelim Working

Alt alanadlarını (subdomain) kontrol etmek için dig @172.16.3.1 destek.linuxuzmani.com ve mail kayıtlarını görmek için dig MX @172.16.3.1 linuxuzmani.com şeklinde kullanabilirsiniz.

dig @172.16.3.1 linuxuzmani.com

; <<>> DiG 9.5.0-P2 <<>> @172.16.3.1 linuxuzmani.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42726
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;linuxuzmani.com.                   IN      A

;; ANSWER SECTION:
linuxuzmani.com.            3600    IN      A       172.16.3.1

;; AUTHORITY SECTION:
linuxuzmani.com.            3600    IN      NS      ns1.linuxuzmani.com.
linuxuzmani.com.            3600    IN      NS      ns2.linuxuzmani.com.

;; ADDITIONAL SECTION:
ns1.linuxuzmani.com.        3600    IN      A       172.16.3.1
ns2.linuxuzmani.com.        3600    IN      A       172.16.3.2

;; Query time: 0 msec
;; SERVER: 172.16.3.1#53(172.16.3.1)
;; WHEN: Sun Mar 8 17:53:47 2009
;; MSG SIZE  rcvd: 116

Ters dns kaydını kontrol edelim.

host 172.16.3.1

1.3.16.172.in-addr.arpa domain name pointer linuxuzmani.com.

Eğer mail hizmetinizi Gmail’den alıyorsanız alanadı dosyamızda aşağıdaki yeri;

@               IN      MX      10      mail.linuxuzmani.com.

Siliyorsunuz. Gmail’e ait bilgileri onun yerine ekliyorsunuz.

linuxuzmani.com.		3600	IN	MX	3 alt2.aspmx.l.google.com.
linuxuzmani.com.		3600	IN	MX	5 aspmx2.googlemail.com.
linuxuzmani.com.		3600	IN	MX	5 aspmx3.googlemail.com.
linuxuzmani.com.		3600	IN	MX	1 aspmx.l.google.com.
linuxuzmani.com.		3600	IN	MX	3 alt1.aspmx.l.google.com.

13 Yorum on Debian Lenny ile Güvenli Bind Kurulumu

  1. Ethem diyor ki:

    Mehaba,
    Makale için teşekkürler, ufak bir yazım hatası var sanırım
    zone “3.16.172.in-addr.arpa” -> en sonda “{” yok,
    birde Lenny de sysklogd varsayılan olarak gelmiyor ,varsayılanı kaldırıp bunu mu kuralım.

    Teşekkürler

  2. Salih BiLGiN diyor ki:

    { eklendi. Dikkatiniz için teşekkürler.
    sysklogd yerine
    Lenny için, /etc/rsyslog.d/bind-chroot.conf dosyasının sonuna

    $AddUnixListenSocket /var/lib/named/dev/log

    satırını eklemeniz yeterli olacaktır.
    /etc/init.d/rsyslog restart ile log sunucusunun yeniden başlatıyoruz.

    tail -f /var/lib/named/dev/log

    komutu ile gelen istekleri izleyebilirsiniz.

  3. ozan diyor ki:

    Selamlar aynen dediğiniz gibi dns ayarlarını yaptım ancak “/etc/init.d/bind9 start” dediğim zaman fail alıyorum :S. Ubuntu server sistemime bu konfigurasyonları yaptım, debian tabanlı olduğu için hata almayacağımı düşündüm ancak olmadı !! Bi fikriniz varmı acaba?

  4. Salih BiLGiN diyor ki:

    Merhaba,
    Aldığınız hatayı paylaşırsanız sorun hakkında fikir yürütebilirim.

  5. [...] Kullananlar için riskli bir durum görünmüyor istatistik bilgileri dışında. Ben yine kendi dns sunucumu kullanma tercihimi [...]

  6. ercan diyor ki:

    /etc/init.d/bind9 start dediğimde direk fail veriyor…!

  7. Salih BiLGiN diyor ki:

    ikinci bir terminalde tail -f /var/log/syslog ile takip ederseniz hatayı loga yazacaktır. Bunu paylaşırsanız çözüme gidebiliriz.

  8. Salih BiLGiN diyor ki:

    apt-get --purge remove bind9
    rm -rf /etc/bind/

    Kaldırma ve yapılan dosyaların silinmesinin ardından tekrar kurup dns sunucunuzun çalıştığını kontrol eder misiniz?

    apt-get install bind9

  9. ercan diyor ki:

    root@ubuntu:~# /etc/init.d/bind9 stop
    * Stopping domain name service… bind9 [ OK ]
    root@ubuntu:~#
    root@ubuntu:~# /etc/init.d/bind9 start
    * Starting domain name service… bind9 [ OK ]

    kurulumu yeniden yaptım

  10. Salih BiLGiN diyor ki:

    Tebrikler. Ayarları yapmaya baslayabilirsiniz :)

  11. ercan diyor ki:

    named.conf içerisinde ne gibi değişiklikler yapmamız gerkiyor ! kurulduğu gibi bırakacakmıyız ?

  12. ercan diyor ki:

    yukarıdaki konfigurasyonu aynen kopyalayıp deniyorum, yine çalıştırdığımda fail veriyor… ve yine permission hatası …

    Jul 27 23:38:08 ubuntu named[15603]: loading configuration from ‘/etc/bind/named .conf’
    Jul 27 23:38:08 ubuntu named[15603]: none:0: open: /etc/bind/named.conf: permiss ion denied

  13. ercan diyor ki:

    hiçbir değişiklik yapmadan aşağıdaki linke göre kurulumu yapıyorum, yine çalıştırdığımda permission hatası geliyor loga.! en iyisi komple kaldırmak sanırım.!

    http://wiki.ubuntu-tr.net/index.php/BIND9

Bir Cevap Yazın

*


*