DJBDNS (alternatif DNS server pengganti BIND)

Kebanyakan orang jika mendengar kata DNS Server di unix, biasanya mereka berpikir tentang BIND (Berkeley Internet Name Daemon), yaitu sebuah nameserver daemon yang dikembangkan oleh Berkeley. Hampir semua distribusi unix, secara defaultnyamenyertakan BIND sebagai program DNS server mereka, sehingga banyak orang mengidentifikasikan atau berpikir "DNS Server adalah BIND", namun pada kenyataannya BIND bukanlah satu-satunya DNS Server unix yang ada. Ada banyak program lain di unix yang dapat berfungsi sebagaiDNS Server, diantaranya yaitu dents dan djbdns. Pada artikel ini penulis hanya akan membahas tentang djbdns saja, karena djbdns mempunyai "aliran" yang agak berbeda dengan BIND dalam melakukan setting up dnscache maupun suatu domain.

Apa itu DJBDNS?
djbdns adalah koleksi dari beberapa peralatan DNS yang cukup canggih, yang terdiri atas:
Mengapa Menggunakan DJBDNS?
Tahukah anda bahwa sebenarnya BIND sangatlah rentan terhadap serangan-serangan yang dapat membahayakan keamanan server anda? Sering kali seorang cracker melakukan penyusupan atau DoS (Denial of Service) terhadap server dengan memanfaatkan celah keamanan yang terdapat BIND, banyak sekali versi dari BIND yang masih rentanterhadap serangan seperti ini. Jika anda sudah terlanjur menggunakan BIND dan masih bersikeras untuk tetap menggunakan BIND, penulis menyarankan untuk menggunakan BIND dengan patch level terbaru yang bisa anda temukan melalui website dari BIND yaitu di http://www.isc.org/bind.html, serta selalu mengikuti perkembangan informasi tentang security BIND, serta gunakan option -u dan -g untuk menjalankan BIND sebagai non-root UID/GID, karena dengan cara ini sedikit banyak akan mempersulit para cracker untuk bisa melakukan "kudeta" terhadap root dengan cara memanfaatkan user yang menjalankan BIND.

Apa Saja Feature yang ditawarkan DJBDNS?
djbdns terdiri dari beberapa program yang dijalankan oleh non-root UID/GID, sehingga kendali penuh dari system tidak bisa disentuh melalui djbdns.

Feature diatas memang dirancang khusus untuk memberikan DNS Server yang benar-benar reliable dan aman. Sekarang ada tantangan menarik untuk anda semua:djbdns akan memberikan hadiah kepada anda USD500, bagi siapa saja yang pertama kali menemukan dan mempublikasikan lubang keamanan di djbdns !!!

djbdns hanya berjalan di atas sistem operasi unix, anda bisa menggunakan beberapa varian dari unix seperti Linux, FreeBSD, OpenBSD, dsb. Untuk menjalankan djbdns, anda memebutuhkan software tambahan lagi bernama daemontool, yang dapat anda lihat dan downloaddi website Pelik ini di menu download.

Memasang Daemontools
Seperti biasa, lakukan gunzip dan untar terhadap paket daemontools yang anda download:
# tar -xvzf daemontools-0.70.tar.gz
lalu masuk ke direktori daemontools-0.70, dan lakukan kompilasi (defaultnya akan diinstall di /usr/local, edit file conf-home jika anda menginginkan diintall di lain direktori).
# make
kemudian lakukan instalasi.
# make setup check
buatlah direktori untuk meletakkan program yang akan dijalankan oleh daemontools, misalnya bernama service di root direktori:
# mkdir /service

Memasang DJBDNS
Seperti biasa lakukan un-tar dan un-gzipped terhadap file djbdns yang anda download terlebih dahulu:
# tar -xvzf djbdns-1.02.tar.gz
Lalu lakukan kompilasi /9default akan diinstall di /usr/local, edit conf-home jika anda menginginkan diinstall di lain direktori.
# make
Dan install dengan perintah:
# make setup check

Mengkonfigurasi DNSCACHE
Dnscache adalah DNS cache server lokal (jaringan lokal), dnscache akan menerima dan menjawab DNS query dari klien lokal, seperti web browser, mail user agent, dsb. dan akan menyimpan informasi tersebut untuk menjawab DNS query berikutnya sehingga dnscache akan memberikan respon cepat apabila terdapat DNS queries yang sudah pernah disimpan.
Mengkonfigurasi dnscache di djbdns sangatlah mudah, semua sudah diatur oleh program yang bernama dnscache-conf, syntax umum dari dnscache-confadalah:
dnscache-conf acct logacct /direktori [alamat-IP]
dimana acct adalah account yang menjalankan dnscache, logacct adalah account yang digunakan untuk mencatat log, jadi pertama buatlah user yang akan dijadikan sebagai acct dan logacct.
Contoh:
Buatlah account bernama "dnscache" dan "dnslog"
# useradd dnscache -s /bin/false
# useradd dnslog -s /bin/false

Tentukan anda akan menjalankan dnscache dimana, apakah hanya dnscache lokal atau dnscache external, jika anda mempunyai klien-klien yang nantinya akan anda ijinkan untuk melakukan DNs queries ke server anda, silahkan anda pasang dnscache ini pada IP jaringan anda. Sedangkan jika tujuannya hanya untuk menjawab DNS queries dari komputer lokal anda sendiri (localhost), anda cukup memasangnya pada alamat 127.0.0.1, lalu tentukan daftar IP/Range yang diijinkan untuk menggunakan dnscache anda, kemudian buat simbolik-link dengan direktori dari service daemontools anda. Perhatikan contoh berikut.
Misalnya server anda menggunakan ethernet dengan IP 192.168.1.1, dan akan mengkonfigurasikan dnscache sebagai external untuk jaringan intranet anda (misalnya dengan IP jaringan 192.168.1.0/24) maka anda harus mengkonfigurasikan, sbb:
# dnscache-conf dnscache dnslog /etc/dnscachex 192.168.1.1
# touch /etc/dnscachex/root/ip/192.168.1
# ln -s /etc/dnscachex /service

Jika anda hanya ingin membuat cache lokal untuk localhost saja, anda cukup memasangnya di alamat 127.0.0.1, contoh:
# dnscache-conf dnscache dnslog /etc/dnscache 127.0.0.1
# ln -s /etc/dnscachex /service

Sebelum anda menjalankan dnscache anda, pastikan apakah anda mempunyai DNS Server lokal lain untuk intranet anda, jika ya, anda harus memberitahu nama domain dan alamat IP dari DNS server tersebut. Sebagai contoh anda mempunyai domain lokal intranet dengan nama lokalku.net dengan IP dari nameserver 192.168.1.2, maka anda harus memberi tahu dnscache, bahwa ada nameserver lokal tsb. dengan cara:
# echo "192.168.1.2" > /etc/dnscachex/root/servers/lokalku.net
# echo "192.168.1.2" > /etc/dnscachex/root/servers/1.168.192.in-addr.arpa

Setelah semua oke, kemudian jalankan daemontool:
# csh -cf 'svscan /service &'
Setelah anda bisa menjalankan dnscache, mungkin anda akan bertanya, bagaimana membuat DNS Server untuk menangani sebuah domain dengan menggunakan djbdns? Jawabannya adalah: anda dapat menggunakan tinydns yang sudah merupakan satu paket yang tergabung dlama djbdns.
Sekarang marilah kita menginjak pada tahap berikutnya yaitu mengkonfigurasikan tinydns, mengkonfigurasikan tinydns sebenarnya hampir sama dengan mengkonfigurasikan dnscache, hanya bedanya karena tinydns bertugas untuk menjawab DNS queries dari sebuah domain, maka anda akan berhubungan dengan record NS, A, MX, PTR, dsb. dari domain anda, namun konfigurasi tinydns tidak serumit konfigurasi BIND.

Mengkonfigurasi TINYDNS
Tinydns mempunyai program konfigurasi yang bernama tinydns-conf, dengan syntax umum, sbb:
# tinydns-conf [nama-account] [log-account] /direktori [alamat-IP]
jadi sebelumnya anda harus menentukan beberapa hal, yaitu:Sebagai contoh anda akan menjalankan tinydns dengan account bernama "tinydns" dan account untuk log bernama "tinylog", direktori konfigurasi ada di /etc/tinydns dan alamat IP dari DNS servernya ada di 192.168.1.2, maka anda harus "tinydns" dan account untuk log bernama "tinylog", direktori konfigurasi ada di /etc/tinydns dan alamat IP dari DNS servernya ada di 192.168.1.2, maka anda harus mengikuti langkah-langkah berikut, tambahkan user "tinydns" dan "tinylog" terlebih dahulu:
# useradd tinydns -s /bin/false
# useradd tinylog -s /bin/false

jalankan tinydns-conf sesuai dengan spesifikasi diatas:
# tinydns-conf tinydns tinylog /etc/tinydns 192.168.1.2
Buat simbolik-link dengan direktori service dari daemontools:
# ln -s /etc/tinydns /service
Sampai tahap ini tinydns sudah siap untuk dikonfigurasikan untuk sebuah nameserver dari sebuah domain. Sebagai contoh anda akan membuat nameserver dari domain yang bernama lokalku.net, anda masuk ke dalam direktori /etc/tinydns/root terlebih dahulu:
# cd /etc/tinydns/root
kemudian anda berikan perintah, sbb:
# ./add-ns lokalku.net 192.168.1.2
# ./add-ns 1.168.192.in-addr.arpa 192.168.1.2
# ./add-host ns.lokalku.net 192.168.1.2
# make

Sampai tahap ini, kita mempunyai 1 host yang bernama ns.lokalku.net dengan ns yang terdapat pada a.ns.lokalku.netdengan alamat IP 192.168.1.2. Mengapa namanya menjadi a.ns.lokalku.net dan bukan ns.lokalku.net? bagaimana menghilangkan huruf depan 'a'? Untuk membuat ns kita hanya bernama ns.lokalku.net saja, silahkan anda edit file datanya secara manual:
# vi /service/tinydns/root/data
di situ terdapat baris, sbb:
.lokalku.net:192.168.1.2:a:259200
.1.168.192.in-addr.arpa:192.168.1.2:a:259200
=ns.lokalku.net:192.168.1.2:86400

Silahkan anda hilangkan huruf 'a', pada baris pertama dan kedua, sehingga menjadi:
.lokalku.net:192.168.1.2:259200
.1.168.192.in-addr.arpa:192.168.1.2:259200
=ns.lokalku.net:192.168.1.2:86400
setelah anda simpan, silahkan anda "make" ulang:
# make
Anda bisa juga menyerahkan otoritas dari suatu domain ke server lain, yaitu dengan memberikan perintah:
# ./add-childns [namadomain] [alamat-IP]
# make

Untuk menambahkan host baru anda bisa menggunakan perintah add-host, contoh: anda ingin menambahkan host bernama baru.lokalku.net dengan alamat-IP 192.168.1.100:
# ./add-host baru.lokalku.net 192.168.1.100
# make

Untuk menambahkan host alias, anda bisa memberikan perintah "./add-alias" contoh anda ingin membuat domain bernama mail.lokalku.net dan www.lokalku.net dengan alamat IP 192.168.1.2 (ns.lokalku.net):
# ./add-alias www.lokalku.net 192.168.1.2
# ./add-alias mail.lokalku.net 192.168.1.2
# make

Untuk menambah MX (Mail eXchanger), misalnya dari lokalku.net adalah beralamat IP 192.168.1.2
# ./add-mx lokalku.net 192.168.1.2
# make

perintah diatas akan mengakibatkan domain @lokalku.net mempunyai mx dengan alamat IP 192.168.1.2 dengan default namanya adalah: a.mx.lokalku.net dan nomor preference = 0. Jika anda ingin mengganti mx anda menjadi mail.lokalku.net dengan nomor preferencenya ingin anda ganti menjadi 10, maka silahkan anda edit file "data" nya, dan temukan baris, sbb:
@lokalku.net:192.168.1.2:a::86400
edit menjadi
@lokalku.net:192.168.1.2:mail.lokalku.net.:10:86400
kemudian anda "make" ulang:
# make
Tentang PTR, anda tidak usah terlalu pusing memikirkannya, jika anda sudah membuat ns untuk suatu domain berikut x.xxx.xxx.in-addr.arpa nya, setiap anda melakukan penambahan host baru, otomatis alamat IP tersebut akan di PTR ke nama host yang anda masukkan.


Sumber :
Majalah bulanan InfoLinux
Website: www.infolinux.web.id





Copyright (a) 2001 Pelik
Design by globalnet

Hosted by www.Geocities.ws

1