Cara Membuat DNS Server Menggunakan BIND-CHROOT di Centos 5

Selamat malam sobat find4something. Sebenarnya malam ini saya sudah mau tidur. Tapi, karena baru selesai telponan sama seseorang, jadi belum sempat tidur deh =D Mendingan Posting artikel. Pada postingan kali ini, saya akan share tentang Cara Membuat DNS Server Menggunakan BIND-CHROOT di Centos 5

  CentOS  
I. PENDAHULUAN
DNS (Domain Name System) adalah sebuah sistem yang menjaga informasi tentang nama host (hostname) dan juga nama domain (domain name) dalam bentuk database tersebar (distributed database) pada jaringan komputer. Dengan DNS, sebuah alamat IP dapat dipetakan ke dalam hostname dan domain name yang lebih mudah diingat oleh manusia. Adalah lebih mudah bagi kita untuk mengingat nama www.google.com dibandingkan dengan 66.249.89.99. DNS ditemukan oleh Paul Mockapertis pada tahun 1983.Ada beberapa metode untuk membuat server DNS, namun dalam tutorial ini akan dijelaskan cara membuat server DNS menggunakan BIND karena aplikasi BIND merupakan aplikasi terpopuler dalam membuat server pada saat ini dan dengan asumsi bahwa paket BIND sudah ada di dalam sistem.

II. Istilah-istilah Pada DNS
• RR atau Resource Records adalah kumpulan sumber informasi yang berhubungan dengan nama-nama domain.
• Namespace adalah struktur dari seluruh DNS yang berbentuk pohon terbalik.
• Nameserver adalah program-program yang menyimpan informasi tentang namespace domain.
• TLD or Top-Level Domain adalah level domain paling atas dibawah root (“.”). Contoh dari TLD adalah .com, .net, .org, dan sebagainya.
• Delegation atau delegasi adalah memberikan sbuah tanggung jawab kepada sebuah subdomain untuk mengatur dirinya sendiri.
• Registry adalah sebuah organisasi yang bertanggung jawab untuk menjaga file-file data di TLD dan mendelegasikannya ke setiap subdomain dari TLD itu. Contoh Verisign untuk mengelola TLD .com
dan .net.
• Registrar adalah sebuah organisasi yang bertindak sebagai antar muka (interface) antara pelanggan dan registry atau lebih dikenal dengan nama ISP. Contohnya idwebhost.
• Registration adalah proses dimana pelanggan memberitahukan ke sebuah registrar untuk mendelegasikan sebuah subdomain kepadanya.
• Zone atau zona adalah sebuah daerah yang mencakup sebuah domain utuh atau hanya sebagian saja.

III. BIND
BIND singkatan dari Berkeley Internet Name Domain yang ditulis oleh Kevin Dunlap untuk BSD UNIX 4.3 Berkeley. Pada umumnya, setiap distro linux mempunyai paket BIND, tetapi jika kita tidak menemukan paket BIND dalam distro linux, kita bisa mendapatkan BIND versi terakhir di sini. Di Centos 5, versi terakhir dari BIND adalah versi 9. Pada paket ini, BIND menyertakan paket chroot untuk meningkatkan keamanan server DNS. Ada beberapa file penting di dalam BIND yang harus diperhatikan, yaitu:
a. named.conf –> File konfigurasi utama untuk membuat DNS dan digunakan sebagai referensi untuk menentukan prosedur server DNS
b. named.ca –> Digunakan untuk menangani informasi server DNS root yang diperlukan untuk menginisialisasi cache dari domain server DNS internet yang disediakan oleh layanan registrasi interNIC.
c. resolv.conf –> Berisi alamat domain atau alamat IP dari nameserver (biasanya IP ISP)
d. Zona forward –> Memetakan domain name ke alamat IP
e. Zona Reverse –> Memetakan alalamt IP ke domain name
IV. CARA KERJA DNS
Untuk memahami bagaimana DNS itu bekerja, lihat gambar berikut ini:
carakerja
• Misal kita mau mengecek email kita di warnet dan dibrowser kita ketikkan http://mail.yahoo.com.
• Setelah itu PC kita akan mengontak server DNS lokal (Jaringan ISP yang terhubung ke warnet itu) untuk menanyakan alamat IP darihttp://mail.yahoo.com. (Panah 1)
• Server DNS lokal akan melihat ke dalam memori cachenya (Panah 2)
• Jika data itu ada di cachenya, server tersebut akan memberikan alamat IP ke browser PC kita (Panah 5). Jika tidak, maka server tersebut mengontak server DNS di atasnya untuk mengetahui alamat IP tersebut.
• Jika domain itu benar-benar ada, maka root DNS akan mendapatkan alamat IP tersebut, kemudian akan dikirimkan ke server DNS lokal kita (Panah 3).
• Server DNS lokal akan mengontak server DNS mail.yahoo.com untuk menanyakan alamat IP-nya, dan server mail.yahoo.com akan mengirimkannya ke server DNS lokal kita (Panah 4).
• Server DNS lokal kita akan memberitahukan alamat IP untuk mail.yahoo.com kepada browser PC kita.
• Kemudian PC kita akan menggunakan alamat IP tersebut untuk mengontak mail.yahoo.com
V. Persiapan Nama Domain
Kita akan membuat domain baru untuk server DNS, mail server dan webserver.
Domain name: example.com
DNS server name: ns1.example.com
IP DNS server: 192.168.1.2
Mail server name:mail.example.com
HTTP server: http://www.example.com
VI. Konfigurasi BIND
1. Cek paket BIND
Cek paket BIND di sistem kita, apakah sudah ada atau belum dengan cara:
# rpm -qa | grep bind
Jika paket bind tersebut tidak ada, instal paket tersebut dengan cara
# yum install bind-*

2. Konfigurasi rndc key
rndc key digunakan untuk mengendalikan operasi dari server DNS. Asalnya, rndc key sudah tersedia di dalam paket BIND. Kita bisa menggunakan apakah menggunakan yang sudah tersedia atau membuat yang baru. Jika kita ingin membuat RNDC key yang baru, maka berikan perintah:
# cd /var/named/chroot/etc/
# rndc-confgen > rndc.key
Setelah itu lihat file rndc.key dan kemudian hapus atau beri tanda pagar dari baris options sampai selesai kemudian salin bagian yang tidak dihapus atau yang tidak diberi tanda pagar.

rndc.conf
3. Konfigurasi named.conf
Sesudah mengkonfigurasi rndc.key, kita harus memasukkan file rndc.key dan menyalin bagian
Key “rndc.key” {
………………… };
Sesudah itu kita harus membuat file named.conf di direktory yang sama dengan cara:
# vi named.conf
dan menambahkan script berikut:
# mulai named.conf
#kita masukkan rndc.key (copy-paste dari rndc.key yang baru dibuat)  key “rndckey” {
…………………………………………
};
// kita asumsikan server kita mempunyai IP 192.168.1.2 yang melayani 192.168.1.0/24
controls {
inet 192.168.1.2 allow { 192.168.1.0/24; } keys { “rndckey”; };
};
options {
directory “/var/named”;
pid-file “/var/run/named/named.pid”;
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
query-source address * port 53;
// so people can’t try to guess what version you’re running
version “REFUSED”;
allow-query {
any; };
};
server 192.168.1.2 {
keys { rndckey; };
};
zone “.” IN {
type hint;
file “data/named.ca”;
};
// Kita asumsikan dns server kita adalah example.com
zone “example.com” IN {
type master;
file “data/example.com.zone”;
allow-update { none; };
};
// Kita asumsikan bahwa zona reverse kita adalah 1.168.192
zone “1.168.192.in-addr.arpa” IN {
type master;
file “data/1.168.192.zone”;
};
// end of named.conf

4. Konfigurasi zona forward
Sesudah kita mengkonfigurasi named.conf kita harus membuat forward zone di dengan cara:
# vi /var/named/chroot/var/named/data/example.com.zone
dan mengkonfigurasinya seperti ini:
$TTL 38400      ; 10 hours 40 minutes
@                          IN SOA  ns1.example.com. admin.example.com. (
2007020400 ; serial
180        ; refresh (3 minutes)
360        ; retry (6 minutes)
604800     ; expire (1 week)
86400      ; minimum (1 day)
)
NS     ns1.example.com.
A      192.168.1.2
MX     10 mail.example.com.  ns1                     IN   A       192.168.1.2
ftp                      IN   CNAME   ns1
mail                     IN   CNAME   ns1
www                   IN   CNAME   ns1
Penjelasan singkat:


Bagian Fungsi
TTL (Time to Live) Panjang waktu nameserver untuk menyimpan sebuah record. Jika TTL berakhir, nameserver harus membuang data yang tersimpan dan mendapatkan data baru dari nameserver otoritative
SOA (Start of Authority) Mengindikasikan otoritas untuk zona ini
IN (Internet Name) Digunakan jika menggunakan protokol TCP/IP
ns1.example.com Hostname yang bertanggungjawab untuk domain example.com
admin.example.com Alamat email administrator
serial Nomor serial yang akan bertambah jika data berubah, biasanya ditulis dengan format YYYYMMDDxx
refresh Panjang waktu untuk server secondary untuk mengecek perubahan di server primer
retry Panjang waktu untuk server secondary untuk menunggu verifikasi terhadap perubahan di server primer jika server primer tidak memberikan respon ketika refresh
expire Panjang waktu untuk secondary server untuk menahan zona file jika server secondary tidak melakukan keadaan refresh
@ Bagian ini identik dengan dengan zona yang didefinisikan di named.conf dan bisa digantikan dengan nama DNS (misal: example.com)
NS (Name Server) Digunakan untuk mendefinisikan sever hostname DNS dan harus diakhiri dengan tanda titik
minimum ttl Menentukan nilai ttl untuk seluruh record di zona forward
IN NS ns1.example.com Mendefinisikan bahwa hostname ns.example.com yang memegang tanggung jawab terhadap domain example.com
IN MX 10 mail.example.com Mendefinisikan bahwa hostname mail.example.com yang memegang tanggung jawab sebagai mail server di domain example.com. nomor mewakili prioritas ketika pengiriman surat dan nomor kecil menjadi prioritas utama
ns IN A 192.168.1.2 Mengecek bahwa hostname ns.example.com mempunyai alamat IP di 192.168.1.2
mail IN CNAME NS Mengecek bahwa hostname ns.example.com mempunyai nama lain (name alias) mx.example.com

5. Konfigurasi zona reverse
Sesudah mengkonfigurasi zona forward, kita harus membuat zona reverse di dalam direktori yang sama dan mengkonfigurasinya seperti ini:
# vi /var/named/chroot/var/named/data/1.168.192.zone
dan mengkonfigurasinya seperti ini:
$TTL 38400      ; 10 hours 40 minutes
@                          IN SOA  ns1.example.com. admin.example.com. (
2007020404 ; serial
180        ; refresh (3 minutes)
360        ; retry (6 minutes)
604800     ; expire (1 week)
86400      ; minimum (1 day)
)
NS     ns1.example.com.
2                              IN PTR    arfie.example.com
Penjelasan singkat:

2 IN PTR arfie.example.com –> mengecek bahwa hostname arief.example.com mempunyai alamat IP di 192.168.1.2
sisanya sama dengan zona forward
6. Konfigurasi resolve.conf
Kita harus mengkonfigurasi file resolve.conf di /etc/resolv.conf dan mengkonfigurasinya seperti ini:
nameserver 192.168.1.2

7. Menambahkan named.ca
Setelah mendownload file named di sini, maka ubahlah namanya menjadi named.ca dengan cara:
# mv named.root named.ca
lalu pindahkan file ini ke /var/named/chroot/var/named/data
# mv named.ca /var/named/chroot/var/named/data

8. Menyalakan Server DNS
Sesudah mengkonfigurasi server DNS, kita harus mengecek apakah server DNS kita sudah bekerja atau belum. Gunakan perintah ini:
# service named start

9. Mengecek server DNS
Gunakan nslookup atau dig untuk mengecek server DNS
# nslookup example.com

nslookup2

# dig example.com

dig2
VII. Troubleshooting
Mungkin apabila kita pertama kali membuat server DNS, akan banyak error yang terjadi. Biasanya, error akan langsung muncul setelah kita mencoba menyalakan DNS. Tapi, terkadang error itu tidak muncul dan DNS kita tidak bekerja. Untuk itu, lihatlah di file /var/log/messages sehingga kita bisa mengidentifikasi error apa dan bagaimana cara menghilangkan error itu. Di bawah ini ada beberapa solusi untuk menghilangkan error-error yang terjadi ketika membuat server DNS:
1. File tidak ada
Error:
xxxxxxxxxx: file not found
Solusi:
Kita memasukkan zona forward atau reverse ke direktory yang salah yang tidak sama dengan parameter yang ada di file named.conf atau bisa juga kita salah dalam membuat nama zona forward atau reverse yang tidak sama dengan parameter yang ada di file named.conf. Maka dari itu, pastikan bahwa nama file baik itu zona forward maupun zona reverse sesuai dengan yang ada di file named.conf. Dan juga pastikan bahwa, file-file tersebut sesuai dengan apa yang ada di file named.conf.
2. Non existent Domain
Error:
*** xxx can’t find xxx: Non-existent domain
Solusi:
Cek di zona reverse apakah kita sudah memberi pointer kepada file itu. Jika belum, buatlah pointer seperti pada bagian diatas (Konfigurasi Zona Reverse).

3. Refused
Error:
** server can’t find ****: REFUSED
Solusi:
Ganti IP DNS di /etc/resolv.conf


Referensi

Comments