RSS
 

Debian Lenny ile Güvenli Bind Kurulumu

08 Mar

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.
delicious | digg | reddit | facebook | technorati | stumbleupon | chatintamil
 

Tags: , , , , , , , , , , , , , , , , , , ,

Leave a Reply

 
 
  1. Ethem

    08 Haziran 2009 at 14:26

    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

    08 Haziran 2009 at 19:21

    { 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

    06 Kasım 2009 at 21:10

    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

    07 Kasım 2009 at 03:00

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

     
  5. Linuxuzmani.com – Linux Notlarım » Google Genel Dns ve OpenDns

    17 Aralık 2009 at 01:46

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

     
  6. ercan

    27 Temmuz 2010 at 11:27

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

     
  7. Salih BiLGiN

    27 Temmuz 2010 at 12:40

    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

    27 Temmuz 2010 at 17:20

    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

    27 Temmuz 2010 at 18:02

    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

    27 Temmuz 2010 at 18:05

    Tebrikler. Ayarları yapmaya baslayabilirsiniz :)

     
  11. ercan

    28 Temmuz 2010 at 07:54

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

     
  12. ercan

    28 Temmuz 2010 at 08:37

    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

    28 Temmuz 2010 at 15:08

    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