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.