<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d3417119785294949608\x26blogName\x3dMy+Special+Blog\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dTAN\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://yudymardianto.blogspot.com/search\x26blogLocale\x3den_US\x26v\x3d2\x26homepageUrl\x3dhttp://yudymardianto.blogspot.com/\x26vt\x3d995569220600001438', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

My Special Blog

Uang adalah Hamba yang sangat baik tapi merupakan Tuan yang sangat buruk.

DNS Server Master & Slave FreeBSD

Tanpa banyak penjelasan lengkap tentang DNS anda bisa lihat di Wikipedia. Pada pembahasan kali ini akan dijelaskan bagaimana membuat DNS server master dan slave untuk menangani satu domain atau lebih. Contoh kasus disini adalah domain yang saya beli kurang hampir dua minggu. Domain web ini yaitu "mbalelo.info". Saya beli cuma 25 rb di Ardhosting. Cukup murahkan untuk sebuah experiman. Fasilitas control panel termasuk lengkap sehingga kita bisa assign child nameserver untuk domain ini dengan mudah.

Untuk domain ini child nameserver yang saya assign adalah ns1.mbalelo.info untuk ip 124.81.224.211 dan ns2.mbalelo.info 124.81.224.210. Sebenarnya sangat tidak dianjurkan untuk meletakkan nameserver pada blok ip yang sama dan alokasi yang sama. Lebih baik lagi apabila salah satu nameserver diletakkan ditempat lain dengan geografis beda misalkan diluar negeri, sehingga apabila ada gangguan atau bencana domain tidak akan mati. Karena keterbatasan tempat dan tidak ada server ditempat lain cukuplah 2 server yang ada saya pakai sebagai sarana ujicoba/experimen.

Untuk server saya menggunakan FreeBSD 6.1 dengan Bind 9.3.2 dan FreeBSD 5.4 dengan Bind 9.3.1 yang sudah bulit in didalamnya. Untuk mengaktifkan bind setiap kali startup tambahkan parameter pada rc.conf

# ee /etc/rc.conf
named_enable="YES"
named_flags="-u bind"

Pada Bind versi 9 terdapat utility yang digunakan utntuk mengontrol bind yaitu "rndc". Agar rndc bisa digunakan setidaknya ada 2 file yang harus kita buat yaitu "rncd.conf" dan "rndc.key" yang diletakkan pada direktori "/etc/named". Untuk membuat file tersebut dipakai command rndc-confgen
# rndc-confgen
# Start of rndc.conf
key “rndc-key” {
algorithm hmac-md5;
secret “8EQdlGbpeIO2/I7yLJP5CQ==”;
};

options {
default-key “rndc-key”;
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:
#key “rndc-key” {
# algorithm hmac-md5;
# secret “8EQdlGbpeIO2/I7yLJP5CQ==”;
#};
#
#controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { “rndc-key”; };
#};
# End of named.conf

Ok setelah itu kita pisahkan masing2 konfigurasi berdasarkan letaknya pada file masing2

# ee /etc/named/rndc.conf

key “rndc-key” {
algorithm hmac-md5;
secret “8EQdlGbpeIO2/I7yLJP5CQ==”;
};

options {
default-key “rndc-key”;
default-server 127.0.0.1;
default-port 953;
};

Sedangkan rndc.key saya letakkan pada
# ee /etc/namedb/rndc.key
key “rndc-key” {
algorithm hmac-md5;
secret “8EQdlGbpeIO2/I7yLJP5CQ==”;
};

Lakukan langkah yang sama pada pembuatan file rndc.conf dan rndc.key pada DNS server Slave.

Berikutnya akan kita bahas file named.conf yang berisi konfigurasi bind. Kita bagi pembahasan file named.conf ini, untuk file named.conf pada DNS server master dan named.conf untuk DNS server slave.
# ee /etc/namedb/named.conf (pada DNS server master)
acl slave {
124.81.224.210/32;
124.81.252.55/32;
};

options {
directory “/etc/namedb”;
pid-file “/var/run/named/pid”;
dump-file “/var/dump/named_dump.db”;
statistics-file “/var/stats/named.stats”;
allow-transfer { slave; };
recursion no;
notify yes;
};

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { “rndc-key”; };
};

key “rndc-key” {
algorithm hmac-md5;
secret “8EQdlGbpeIO2/I7yLJP5CQ==”;
};

zone “.” {
type hint;
file “named.root”;
};

zone “0.0.127.IN-ADDR.ARPA” {
type master;
allow-update { none; };
file “master/db.127.0.0.1”;
};

zone “localhost” {
type master;
allow-update { none; };
file “master/db.localhost”;
};
zone “mbalelo.info” {
type master;
allow-update { none; };
file “master/db.mbalelo.info”;
};

Pada konfigurasi diatas kita buat acl (Access Control) "acl slave" untuk mengatur server hostname mana yang boleh menerima tranfer zone. Opitons "recursion no" dengan option ini kita hanya memberikan jawaban query atas domain yang kita pegang (Authoritative Domain) dalam hal ini mbalelo.info. Selain domain tersebut maka DNS server tidak akan memberikan jawaban atas query selain domain mbalelo.info. Selain mengurangi resiko DNS cache poisoning atau resiko sekurity lainnya. Option ini juga akan meningkatkan performa DNS server karena kita tidak akan memberikan jawaban atas query domain yang lain. Options "notify yes" artinya setiap perubahan zone server master akan memberikan notify ke server slave untuk mengadakan update pada zone yang bersangkutan. Berikutnya adalah zone pointer dan reverse localhost seperti dibawah ini:

# ee /etc/namedb/master/db.127.0.0.1
$TTL 86400
@ IN SOA localhost. root.localhost. (
2006081613 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum

IN NS localhost.
1 IN PTR localhost.

# ee /etc/namedb/master/db.localhost
$TTL 86400
$ORIGIN localhost.
@ IN SOA localhost. root.localhost. (
2006081613 ; serial
28800 ; refresh
14400 ; retry
3600000 ; expiry
86400 ) ; minimum

IN NS localhost.
IN A 127.0.0.1

Untuk zone mbalelo.info sebagai berikut:
# ee /etc/namedb/master/db.mbalelo.info
$TTL 86400
@ IN SOA ns1.mbalelo.info. info.mbalelo.info. (
2007012602 ; Serial (YYYYMMDDnn)
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Negative Cache TTL

IN NS ns1.mbalelo.info.
IN NS ns2.mbalelo.info.
IN MX 10 mail.mbalelo.info.
IN A 124.81.224.211

ns1 IN A 124.81.224.211
ns2 IN A 124.81.224.210
mail IN A 124.81.224.211
www IN CNAME mbalelo.info.
ftp IN CNAME mbalelo.info.
download IN CNAME mbalelo.info.


Standart format serial untuk zone adalah (YYYYMMDDnn) "nn" adalah revisi zone. Setiap kali ada perubahan zone sebaliknya merubah serial zone. Misalkan kita dalam sehari melakukan beberapa kali update zone revisi sebaliknya berybah seperti 01 atau 02 sebanyak revisi yang kita lakukan. Secara tidak langsung juga untuk memberitahukan DNS Server Slave untuk mengupdate zonenya. SPF secara record disini berfungsi untuk mencegah spammer menggunakan domain untuk tujuan spam. Lebih jelasnnya lihat websitenya tentang format penulisan atau memanfaatkan wizard yang ada.

Berikut adalah file konfigurasi DNS Server Slave yang hampir sama dengan file konfigurasi server master. Untuk pembuatan file rndc.conf dan rndc.key sama dengan langkah yang dijelaskan diatas. Kita langsung saja pada file konfigurasi Bindnya.
# ee /etc/namedb/named.conf (Pada DNS Server Slave)
options {
directory “/etc/namedb”;
pid-file “/var/run/named/pid”;
dump-file “/var/dump/named_dump.db”;
statistics-file “/var/stats/named.stats”;
recursion no;
notify no;
};

key “rndc-key” {
algorithm hmac-md5;
secret “reseHZh2qBABma1zjrT3/A==”;
};

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { “rndc-key”; };
};

zone “.” {
type hint;
file “named.root”;
};

zone “0.0.127.IN-ADDR.ARPA” {
type master;
file “master/db.127.0.0.1”;
};

zone “localhost” {
type master;
file “master/db.localhost”;
};

zone “mbalelo.info” {
type slave;
file “slave/db.mbalelo.info”;
masters {
124.81.224.211;
};
};

Konfigurasi DNS server Slave tidak jauh beda dengan Master cuman parameter type disini adalah slave yang menyatakan server ini adalah DNS server slave dan ada tambahan parameter master yang diberitahukan DNS server slave harus mengambil dari mana update zone yang dipegangnya. Kemudian karena kita menjalankan bind dengan user bind maka kita harus rubah permission untuk file2 zone pada direktori /etc/namedb.

Server Master:
#cd /etc/namedb/master
#chown bind* db.*

Server Slave:
#cd /etc/namedb/slave
#chown bind* db.*

Setelah konfigurasi selesai maka berikutnya adalan menjalankan DNS server.Jalankan terlebih dahulu server master baru kemudian server slave.
#/usr/sbin/named -u bind

Cek pesan server ketika bind dijalankan:
# tail -f /var/log/messages

Bila sukses pesan yang ditampilkan adalah sebagai berikut:
Jan 23 10:35:31 ns1 named[28558]: starting BIND 9.3.2 -u bind
Jan 23 10:35:31 ns1 named[28558]: command channel listening on 127.0.0.1#953
Jan 23 10:35:31 ns1 named[28558]: running

Kemudian jalankan DNS Server Slave dan cek apakah file database zone telah ditransfer ke dalam direktori /etc/namedb/slave.Jika sudah maka proses testing server sudah selesai dan anda telah berhasil membuat DNS Server Master dan Slave.Jika file database zone belum ditransfer maka kita bisa secara manual mengkopi file database untuk zone tersebut ke server slave.Kemudian kita jalankan command rndc reload atau rndc reconfig untuk mereload konfigurasi atau zone yang baru.

Ok setelah semua konfigurasi selesai coba cek domain yang anda buat dengan DNS tools yang banyak di internet seperti DNS Report atau Checkdns.

Salam Buat "satujamsaja.org"

........................ Semoga Bermanfaat ......................