ALTERNATIF DNS SERVER PENGGANTI BIND
Kebanyakan orang jika mendengar kata DNS Server di unix, biasanya mereka berpikir tentang BIND ( Barkeley Internet Name Daemond, yaitu sebuah nameserver daemond yang dikembangkan oleh Barkeley. Hampir semua distribusi unix, secara defaultnya menyertakan BIND sebagai program DNS server mereka, sehingga banyak orang mengidentifikasikan atau berpikir DNS Server adalah BIND, namun pada kenyataannya BIND bukan satu-satunya DNS Server yang ada. Ada banyak program DNS yang lain di unix yang dapat berfungsi sebagai DNS Server diantaranya dents dan djbdns.
Pada artikel ini penulis hanya membahas tentang djbdns saja , karena djbdns memiliki aliran yang agakberbeda dengan BIND dalam melakukan setingup dnscache maupun suatu domain.
APA ITU DJBDNS?
DJBDNS adalah koleksi dari beberapa peralatan DNS yang cukup canggih, yang terdiri dari atas
* DNSCACHE, yaitu program yang berfungsi melakukan caching informasi domain dari DNS Server, dnscache menerima dns query dari localhost maupun clientnya (hanya Ipaddress yang diijinkan ), dan dnscache akan mencari dan mengumpulkan informasi dari remote DNS Server serta memberikan jawaban dari query tersebut.
* TINYDNS, yaitu DNS Server yang mempunyai autorisasi untuk satu domain tertentu, memberikan informasi tentang domain yang ditanganinya ke client langsung jika autoritatif, tinydens hanya bekerja berdasarkan paket UDP saja.
* PICKDNS,yaitu DNS Server yang berfungsi sebagai load balancing, biasanya difungsikan untuk membagi beban/load dari suatu server.
* WALLDNS.yaitu berfungsi sebagai reverse dns, menyediakan informasi reverse dan meneruskan informasi sambil menyembunyikan informasi dari localhost.
* RBLDNS, yaitu berfungsi untuk mempublikasikan daftar alamat-alamat IP.
* LIBRARY DNS, yang berfungsi untuk menangani paket-paket DNS yang keluar masuk. Ini dapat digunakan oleh klien seperti web broser ,dsb. Untuk melihat alamat host, nama host, record MX. Dsb.
* DNSFILTER, sebagai penerjamah IP-address-to-host-nama secara parallel.
* DNSIP, DNSIPQ,DNSNAME,DNSTXT DAN DNSMX, yaitu berfungsi sebagai utilitas sederhana untuk berinteraksi dan memeriksa DNS.
* DNSQ DAN DNSTRACE, berfungsi sebagai alat untuk melakukan debigging.
MENGAPA MENGGUNAKAN DJBDNS?
Tahukah anda bahwa sebenarnya BIND sangatlah rentan terhadap serangan-serangan yang dapat membahayakan keamanan server anda?
Seringkali seorang cracker melakukan penyusupan atau DoS (Denialof Services) terhadap server dengan memanfaatkan celah keamanan yang terdapat pada BIND, banyak sekali versi dari BIND yang masih rentan terhadap serangan-serangan seperti ini.
Jika anda terlanjur menggunakan BIND dan masih bersikeras untuk tetap menggunakan BIND dan patch level terbaruh yang bias anda temukan melalui website dari BIND yaitu dihttp://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 bias melakukan kudeta terhadap root dengan memanfaatkan user yang menjalankan BIND.
APA SAJA FITUR YANG DITAWARKAN DJBDNS?
Djbdns terdiri dari beberapa program yang dijalankan nonroot UID/GID sehingga kendali penuh dari system tidak bias disentuh dari djbdns.
* Dnscache akan mengabaikan semua dns queries dari alamat yang tidak termasuk dalam daftar alamat ip yang diijinkan untuk mengakses dnscache, jadi dengan cara ini tidak sembarang orang bias mencuri resource dari system anda, seperti yang terjadi pada kebanyakan nameserver di internet. Pada tinydns akanmengabaikan queries yang bukan outrisasinya.
* Dnscache dan dns library menggunakan ID untuk setiap query baru dan port UDP baru pada untuk ksetiap query dan alan mengabaikan query dari alamat IP yang tidak relevan.
* Dnsccache menggunakan generator kriptografi untuk memilih nomor port dan ID yang sulit ditebak.
* Dnscache kebal terhadap serangan yang mencoba mengacaukan cache (cache-poisoning)
* Tinydns, pickdns dan walldns tidak men-cache informasi dan tidak bias ditipu dengan melakukan rekursi informasi/domain.
Fitur diatas memang dirancang khusus untuk djbdns yang benar-benar realibel dan aman.
INSTALASI DJBDNS (DNSCACHE DAN TINYDNS)
Djbdns hanya berjalan di sitem operasi unix, anda ias menggunakan beberapa variasi unix seperti Linux, FreeBSD dan Open BSD.Untuk menjalankan Djbdns dibutuhkan program tambahan yaitu daemontool yang dapat di dpwnload di http://cr.yp.to/daemontools.html, sedangkan djbdns dapat didownload di http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
ASUMSI
Kita akan membuat server sebagai SERVER DNS dan SERVER CACHE DNS.
Server diasumsikan sudah di set IPnya : 192.168.1.1
Agar kedua tipe DNS server bisa jalan di 1 Komputer maka harus diset IP DNS-nya berbeda dan dipakai:
- Server DNS pakai IP 127.0.0.1
- Server DNS Cache IP 192.168.1.1
- DNS yang digunakan adalah serverku.com
LANGKAH INSTALASI
Sebelum instalasi dimulai, kita siapkan kondisi awal, yakni:
1. Mesin Linux dengan paket gcc terinstall
2. Paket daemontools-0.76.tar.gz
3. Paket ucspi-tcp-0.88.tar.gz
4. Paket djbdns-1.05.tar.gz
Setelah semua paket terpenuhi, berikutnya masuk ke dalam tahap instalasi.
Lakukan instalasi sebagai root.
I. INSTAL DAEMONTOOLS
Pertama-tama install paket daemontools-0.76.tar.gz dengan langkah
sebagai berikut:
1. Buat direktori bernama /package
# mkdir -p /package
2. Ekstrak paket daemontools-0.76.tar.gz ke dalam direktori /package
# tar -zxpf daemontools-0.76.tar.gz -C /package
3. Pindah ke direktori daemontools
# cd /package/admin/daemontools-0.76/
4. Instal daemontools dengan perintah:
# package/install
Kalau saat instalasi keluar error
/usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in tcpserver.o
Ulang langkah 4 dengan terlebih dahulu edit file conf-cc di folder compile, diakhir baris ditambah -include /usr/include/errno.h
II. INSTALASI UCSPI-TCP
Paket daemontools telah terinstall, lanjut ke langkah berikutnya,
yakni instalasi ucspi-tcp-0.88.tar.gz.
Masih sebagai root, lakukan instalasi paket ucspi-tcp-0.88.tar.gz
dengan langkah sebagai berikut:
1. Ekstrak paket ucspi-tcp-0.88.tar.gz ke dalam direktori /var/tmp
# tar -zxpf ucspi-tcp-0.88.tar.gz -C /var/tmp
2. Pindah ke direktori /var/tmp/ucspi-tcp-0.88
# cd /var/tmp/ucspi-tcp-0.88
3. Install ucspi-tcp-0.88
# make setup check
Kalau keluar error seperti saat instalasi daemontools, caranya sama tinggal edit conf-cc.
Paket ucspi-tcp telah terinstall.
III. INSTALASI DJBDNS
berikutnya instalasi paket djbdns . Didownload di djbdns-1.05.tar.gz atau disini.
Masih tetap sebagai root, lakukan instalasi paket djbdns-1.05.tar.gz
dengan langkah sebagai berikut:
1. Ekstrak paket djbdns-1.05.tar.gz ke dalam /var/tmp
# tar -zxpf djbdns-1.05.tar.gz -C /var/tmp
2. Pindah ke direktori /var/tmp/djbdns-1.05
# cd /var/tmp/djbdns-1.05
3. Install djbdns
# make setup check
Sampai saat ini paket-paket yang diperlukan telah terinstall termasuk
paket djbdns. Selanjutnya kita akan mengkonfigurasikan djbdns.
Djbdns dapat dikonfigurasikan sebagai dns cache server, jika anda tidak
berniat untuk mengelola dns server sendiri serta dapat dikonfigurasikan
sebagai dns server, jika anda ingin mengelola dns server sendiri.
LANGKAH INSTALASI
Sebelum instalasi dimulai, kita siapkan kondisi awal, yakni:
1. Mesin Linux dengan paket gcc terinstall
2. Paket daemontools-0.76.tar.gz
3. Paket ucspi-tcp-0.88.tar.gz
4. Paket djbdns-1.05.tar.gz
Setelah semua paket terpenuhi, berikutnya masuk ke dalam tahap instalasi.
Lakukan instalasi sebagai root.
I. INSTAL DAEMONTOOLS
Pertama-tama install paket daemontools-0.76.tar.gz dengan langkah
sebagai berikut:
1. Buat direktori bernama /package
# mkdir -p /package
2. Ekstrak paket daemontools-0.76.tar.gz ke dalam direktori /package
# tar -zxpf daemontools-0.76.tar.gz -C /package
3. Pindah ke direktori daemontools
# cd /package/admin/daemontools-0.76/
4. Instal daemontools dengan perintah:
# package/install
Kalau saat instalasi keluar error
/usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in tcpserver.o
Ulang langkah 4 dengan terlebih dahulu edit file conf-cc di folder compile, diakhir baris ditambah -include /usr/include/errno.h
II. INSTALASI UCSPI-TCP
Paket daemontools telah terinstall, lanjut ke langkah berikutnya,
yakni instalasi ucspi-tcp-0.88.tar.gz.
Masih sebagai root, lakukan instalasi paket ucspi-tcp-0.88.tar.gz
dengan langkah sebagai berikut:
1. Ekstrak paket ucspi-tcp-0.88.tar.gz ke dalam direktori /var/tmp
# tar -zxpf ucspi-tcp-0.88.tar.gz -C /var/tmp
2. Pindah ke direktori /var/tmp/ucspi-tcp-0.88
# cd /var/tmp/ucspi-tcp-0.88
3. Install ucspi-tcp-0.88
# make setup check
Kalau keluar error seperti saat instalasi daemontools, caranya sama tinggal edit conf-cc.
Paket ucspi-tcp telah terinstall.
III. INSTALASI DJBDNS
berikutnya instalasi paket djbdns . Didownload di djbdns-1.05.tar.gz atau disini.
Masih tetap sebagai root, lakukan instalasi paket djbdns-1.05.tar.gz
dengan langkah sebagai berikut:
1. Ekstrak paket djbdns-1.05.tar.gz ke dalam /var/tmp
# tar -zxpf djbdns-1.05.tar.gz -C /var/tmp
2. Pindah ke direktori /var/tmp/djbdns-1.05
# cd /var/tmp/djbdns-1.05
3. Install djbdns
# make setup check
Sampai saat ini paket-paket yang diperlukan telah terinstall termasuk
paket djbdns. Selanjutnya kita akan mengkonfigurasikan djbdns.
Djbdns dapat dikonfigurasikan sebagai dns cache server, jika anda tidak
berniat untuk mengelola dns server sendiri serta dapat dikonfigurasikan
sebagai dns server, jika anda ingin mengelola dns server sendiri.
Mengkonfigurasikan djbdns sebagai server DNS "serverku.com"
1. Create user yang diperlukan untuk menjalankan dns server
# useradd -d /dev/null -s /bin/false tinydns
1. Create user yang diperlukan untuk menjalankan dns server
# useradd -d /dev/null -s /bin/false tinydns
# useradd -d /dev/null -s /bin/false dnslog
2 Setup tinydns di localhost
# tinydns-conf tinydns dnslog /etc/tinydns 127.0.0.1
3. Menambahkan domain
# cd /etc/tinydns/root
# ./add-ns serverku.com 127.0.0.1
2 Setup tinydns di localhost
# tinydns-conf tinydns dnslog /etc/tinydns 127.0.0.1
3. Menambahkan domain
# cd /etc/tinydns/root
# ./add-ns serverku.com 127.0.0.1
#./add-ns 1.168.192.in-addr.arpa 127.0.0.1
# ./add-mx serverku.com 192.168.1.1
# ./add-host ns.serverku.com 192.168.1.1
# ./add-alias www.serverku.com 192.168.1.1
# ./add-alias www.serverku.com 192.168.1.1
# ./add-alias mail.serverku.com 192.168.1.1
4. Jalankan perintah make untuk mengkompile database record dns tersebut
# make
5. Buat simbolik link
# ln -s /etc/tinydns /service
Konfigurasi DJBDNS sebagai dns cache
1. Buat user untuk menangani dnscache dan log dns:
# useradd -d /dev/null -s /bin/false dnscache
2. Setup dnscache
# dnscache-conf dnscache dnslog /etc/dnscache 192.168.1.1
3. Buat symlink direktori /etc/dnscache ke direktori /service
# ln -s /etc/dnscache /service
4. Cek service tersebut dengan perintah svstat
# svstat /service/dnscache
5. Hapus file yang bernama 127.0.0.1
4. Jalankan perintah make untuk mengkompile database record dns tersebut
# make
5. Buat simbolik link
# ln -s /etc/tinydns /service
Konfigurasi DJBDNS sebagai dns cache
1. Buat user untuk menangani dnscache dan log dns:
# useradd -d /dev/null -s /bin/false dnscache
2. Setup dnscache
# dnscache-conf dnscache dnslog /etc/dnscache 192.168.1.1
3. Buat symlink direktori /etc/dnscache ke direktori /service
# ln -s /etc/dnscache /service
4. Cek service tersebut dengan perintah svstat
# svstat /service/dnscache
5. Hapus file yang bernama 127.0.0.1
# rm -f /etc/dnscachex/root/ip/127*
6. Buat file kosong yang menunjukan ip network mana yang dijinkan untuk
menggunakan cache server ini. Karena kita menjalankan dnscache pada
ip 192.168.1.1, maka kita akan mengijinkan ip 192.168.1 (Sesuaikan ip ini pada network anda).
# touch /etc/dnscachex/root/ip/192.168.1
7. Jika ada DNS Server lokal yang terpasang di network (ex: domain lokalku.net dengan IP DNS 192.168.2.2) maka isi:
# echo 127.0.0.1 > /etc/dnscachex/root/servers/serverku.com
# echo 127.0.0.1 > /etc/dnscachex/root/servers/1.168.192.in-addr.arpa
6. Buat file kosong yang menunjukan ip network mana yang dijinkan untuk
menggunakan cache server ini. Karena kita menjalankan dnscache pada
ip 192.168.1.1, maka kita akan mengijinkan ip 192.168.1 (Sesuaikan ip ini pada network anda).
# touch /etc/dnscachex/root/ip/192.168.1
7. Jika ada DNS Server lokal yang terpasang di network (ex: domain lokalku.net dengan IP DNS 192.168.2.2) maka isi:
# echo 127.0.0.1 > /etc/dnscachex/root/servers/serverku.com
# echo 127.0.0.1 > /etc/dnscachex/root/servers/1.168.192.in-addr.arpa
# echo 127.0.0.1 > /etc/dnscachex/root/servers/1.0.0.127.in-addr.arpa
8. Buat simbolik link
# ln -s /etc/dnscachex /service
Setting resolver pada komputer client, isikan dengan ip server cache tadi
8. Buat simbolik link
# ln -s /etc/dnscachex /service
Setting resolver pada komputer client, isikan dengan ip server cache tadi
#vi /etc/resolv.conf
isi dengan
nameserver 192.168.1.1
domain serverku.com
search serverku.com
Selanjutnya test seting DNS memakai dig:
#dig serverku.com
#dig serverku.com MX (test MX)
SETING DNS DI CLIENT
1. Client Linux
Edit resolver linux ke server dns baru:
#vi /etc/resolv.conf
isi dengan IP DNS SERVER
nameserver 172.16.0.49
2. Client MS Windows
1. Start > Setting > Control Panel
2. Klik 2x Network Connection
3. Klik Kanan Local Area Connection > Properties
4. Klik 2x Internet potocol (TCP/IP)
4. Isi Prefered DNS Server dengan IP SERVER 192.168.1.1
Sampai saat ini konfigurasi djbdns sebagai dnscache dan dnsserver
telah selesai. Bila ada kekurangan,harap merujuk pada manual resmi djbdns pada situs resmidjbdns
telah selesai. Bila ada kekurangan,harap merujuk pada manual resmi djbdns pada situs resmidjbdns
No comments:
Post a Comment