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.
|
|
|
|
|
|
Tags: alanadı, bind, bind9, chroot, cname, dig, dns, dns server, dnsutils, gmail, host, in-addr.arpa, mx, named, nameserver, reverse dns, soa, syslog, ters dns, zones
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
{ eklendi. Dikkatiniz için teşekkürler.
sysklogd yerine
Lenny için, /etc/rsyslog.d/bind-chroot.conf dosyasının sonuna
satırını eklemeniz yeterli olacaktır.
/etc/init.d/rsyslog restart ile log sunucusunun yeniden başlatıyoruz.
komutu ile gelen istekleri izleyebilirsiniz.
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?
Merhaba,
Aldığınız hatayı paylaşırsanız sorun hakkında fikir yürütebilirim.
[...] Kullananlar için riskli bir durum görünmüyor istatistik bilgileri dışında. Ben yine kendi dns sunucumu kullanma tercihimi [...]
/etc/init.d/bind9 start dediğimde direk fail veriyor…!
ikinci bir terminalde
tail -f /var/log/syslogile takip ederseniz hatayı loga yazacaktır. Bunu paylaşırsanız çözüme gidebiliriz.apt-get --purge remove bind9rm -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 bind9root@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
Tebrikler. Ayarları yapmaya baslayabilirsiniz
named.conf içerisinde ne gibi değişiklikler yapmamız gerkiyor ! kurulduğu gibi bırakacakmıyız ?
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
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