Anda di halaman 1dari 9

Tutorial setting DNS Server pada UBUNTU

DNS atau Domain Name Server merupakan penerjemah nama menjadi IP.
www.rab.co.id adalah 202.59.201.67, itulah tugas DNS. Kita memerlukannya karena pada
dasarnya data dikirim ke alamat IP, bukan nama domain. Saat Anda menggunakan layanan
GPRS, program wvdial otomatis menentukan DNS sesuai arahan ISP, Internet Service Provider.
Bila Anda punya warnet, Internet server dapat diset sebagai DNS. Ini memudahkan pengaturan
DHCP server yang mengarahkan DNS bagi para pc client. Sehingga saat Anda beralih ke ISP
lain, tidak perlu lagi mengubah setting DHCP.
Tulisan ini dicoba menggunakan Ubuntu 8.04 dan seharusnya berfungsi pada distro turunan
Debian, dan mudah-mudahan juga berlaku bagi distro-distro lainnya.
Sekarang pasanglah paketnya:
$ sudo su
# apt-get install bind9
Lalu ubahlah /etc/bind/named.local.conf, hapus remark pada include-nya sehingga menjadi
seperti ini:
// Consider adding the 1918 zones here, if they are not used in your
// organization
include "/etc/bind/zones.rfc1918";
Simpan, dan restart daemon-nya:
# /etc/init.d/bind9 restart
Untuk mencobanya ubahlah /etc/resolv.conf menjadi:
nameserver 127.0.0.1
Baris-baris nameserver lainnya di-remark saja. resolv.conf dikategorikan sebagai "client setting",
mudah-mudahan Anda paham maksudnya. Kemudian ujilah dengan memanggil sebuah nama:

# telnet google.com 80
Trying 209.85.171.100...
Connected to google.com.
Escape character is '^]'.
^]
Log-nya bisa Anda lihat di /var/log/daemon.log. Sampai di sini DNS hanya dapat digunakan
oleh server sendiri. Selanjutnya izinkan pc client menggunakannya dengan mengubah
/etc/bind/named.conf.options. Tambahkanlah di atas options dengan:

acl semua {
0.0.0.0/0;
};
Lalu di-dalam options tambahkan:
allow-query { semua; };
Sehingga keseluruhan /etc/bind/named.conf.options menjadi seperti ini:

acl semua {
0.0.0.0/0;
};
options {
directory "/var/cache/bind";
auth-nxdomain no;    # conform to RFC1035
allow-query { semua; };
}
Lanjutkan dengan restart daemon-nya:

# /etc/init.d/bind9 restart
Di PC client, ubahlah DNS ke 192.168.0.254 ( IP server ), lalu cobalah:
$ telnet google.com 80
Trying 209.85.171.100...
Connected to google.com.
Escape character is '^]'.
^]
IP Publik
Sekarang server ini memiliki IP publik, dimana ia dapat dihubungi dari luar (Internet). Cobalah
pasang Apache:
# apt-get install apache2
Misalkan ISP memberikan IP publik 202.59.201.67 untuk server ini. Ujilah dari tempat lain,
bukan dari server maupun dari LAN, misalnya menggunakan GPRS di laptop:

$ telnet 202.59.201.67 80
telnet 202.59.201.67 80
Trying 202.59.201.67...
Connected to 202.59.201.67.
Escape character is '^]'.
Baik, itu artinya IP publik sudah berfungsi dan Apache telah merespon dengan benar.
Selanjutnya pesanlah sebuah domain ke register.net.id, katakanlah rab.co.id. Katakan pada
mereka bahwa rab.co.id ada di 202.59.201.67 dengan hostname dns1.rab.co.id.
Setelah itu, lakukan setting di server. Buatlah
/etc/bind/db.rab.co.id:

$TTL 1500
@  IN SOA dns1.rab.co.id. grananda.rab.co.id. (
2007062703        ;serial
28800             ;refresh
3600              ;retry
604800            ;expire
38400 )           ;minimum 25 minutes
@               IN      NS      dns1.rab.co.id.
@               IN      A       202.59.201.67
dns1             IN      A       202.59.201.67
www             IN      CNAME   dns1
Tambahkan di /etc/bind/named.local.conf dengan ini:

zone "rab.co.id" {
type master;
file "/etc/bind/db.rab.co.id";
};
Kemudian restart daemon-nya:
# /etc/init.d/bind9 restart
Lalu cobalah dari server:
# telnet rab.co.id 80
Trying 202.59.201.67...
Connected to rab.co.id.
Escape character is '^]'.
^]
Coba juga dari ISP lain. Biasanya 3 hari setelah pendaftaran di register.net.id, domain Anda
sudah dikenali oleh Internet.
Selamat mencoba.
 
Sumber: jabber.rab.co.id
Instalasi DNS Server di Ubuntu menggunakan Bind9
Instalasi DNS server menggunakan bind9 di Ubuntu dalam sistem chroot. Anda akan dikenalkan
pada beberapa record penting, yang harus Anda pahami ketika mengadministrasi sebuah domain
di DNS server Anda.

Instalasi Bind dalam sistem chroot


Mengapa instalasi nya dalam chroot? Karena bind ini memiliki sejarah yang panjang dalam
urusan lubang keamanan (sering ditemukan celah, yang menyebabkan sistem Anda bisa dicrack
melalui bind), maka kita lakukan instalasi dalam lingkungan yang terbatas/chroot.
Instalasi paket
sudo apt-get install bind9
Stop dulu, sebelum kita lanjutkan ke tahapan chroot
sudo /etc/init.d/bind9 stop
Konfigurasi chroot
sudo mkdir -p /var/lib/named/etc
sudo mkdir /var/lib/named/dev
sudo mkdir -p /var/lib/named/var/cache/bind
sudo mkdir -p /var/lib/named/var/run/bind/run
sudo mv /etc/bind /var/lib/named/etc
sudo ln -s /var/lib/named/etc/bind /etc/bind
sudo mknod /var/lib/named/dev/null c 1 3
sudo mknod /var/lib/named/dev/random c 1 8
sudo chmod 666 /var/lib/named/dev/*
sudo chown -R bind:bind /var/lib/named/var/*
sudo chown -R bind:bind /var/lib/named/etc/bind
Sunting Berkas /etc/default/bind9, cari baris seperti di bawah ini,
OPTIONS="-u bind"
Lalu ganti menjadi,
OPTIONS="-u bind -t /var/lib/named"
Setelah itu, start kembali bind,
sudo /etc/init.d/bind9 start
Sekarang instalasi chroot dns sudah selesai. Kita lanjutkan ke tahapan berikutnya.
Format Penulisan berkas Domain di Bind
Ini adalah bagian yang paling rumit tapi juga penting. Dengan memahami cara penulisan record
domain di bind, Anda dijamin bisa mengelola domain dengan baik.
Misal, Anda ingin membuat domain baru, perusahaan.com. Maka langkah pertama yang perlu
Anda lakukan adalah membuat berkas baru yang isinya kira-kira seperti di bawah ini.
1 $TTL 7200 ; 2 hours
2 @ IN SOA ns1.perusahaan.com. hostmaster.perusahaan.com. (
3 2009060708 ; serial
4 7200 ; refresh (2 hours)
5 3600 ; retry (1 hour)
6 604800 ; expire (1 week)
7 10800 ; minimum (3 hours)
8 )
9 NS ns1.perusahaan.com.
10 NS ns2.perusahaan.com.
11 A 192.168.1.2
12 MX 10 mail1.perusahaan.com.
13 MX 20 mail2.perusahaan.com.
14  
15 mail1 A 192.168.1.11
16 mail2 A 192.168.1.12
17  
18 ns1 A 192.168.1.3
19 ns2 A 192.168.2.3
20  
21 pop CNAME mail1
22 smtp CNAME mail1
23 webmail CNAME mail1
24  
25 www A 192.168.1.2

Mari kita pelajari beberapa record yang ada di berkas tersebut.


SOA record
@ IN SOA ns1.perusahaan.com. hostmaster.perusahaan.com.
SOA (Start of Authority) adalah catatan dimana berkas zona/domain tersebut pertama kali
dibuat. Ini juga bisa diartikan sebagai master DNS.
Sedangkan kolom berikutnya adalah kontak email, hanya saja @ disini digantikan dengan titik.
Jadi dari baris di atas bisa kita simpulkan kontak emailnya adalah hostmaster@perusahaan.com.
NS record
NS (Name Server) adalah catatan yang menentukan server mana yang akan menjawab atau
melayani informasi seputar DNS untuk sebuah domain.
Sebuah domain bisa memiliki banyak NS record. Semakin banyak NS server yang Anda
definisikan, berarti semakin banyak pula yang bisa melayani (tentunya harus di setup juga proses
master/slave utk proses propagasi data). Disarankan lokasi NS yang satu dan lainnya, ada di
jaringan yang berbeda. Jadi kalau ada satu network yang terputus, NS server di jaringan yang
lain masih bisa memberikan layanan.
MX record
MX (Mail Exchange) adalah catatan yang menentukan kemana sebuah email akan dikirim.
Dalam record MX ini, ada variabel tambahan yaitu priotity.
Priority ini adalah angka yang menunjukkan skala prioritas, yang bisa Anda isi dari mulai 0 s.d
65536. Semakin kecil angkanya, semakin tinggi prioritasnya.
Jadi kalau Anda lihat di contoh di atas, maka mail1.perusahaan.com adalah tujuan pertama email
akan dikirim, jika server mail1 ini tidak bisa diakses, maka email akan dikirim ke mail2.
A record
A (atau biasa disebut sebagai host record) merupakan inti dari DNS. A record adalah pemetaan
dari nama ke alamat ip. Pemetaan ini tidak harus satu ke satu, beberapa nama yang berbeda bisa
Anda petakan ke satu buah alamat IP yang sama.
Misal,
cecep A 192.168.1.13
mahbub A 192.168.1.13
Lihat juga record CNAME.
CNAME record
CNAME (Canonical Name) adalah alias. Jadi jika pada contoh di atas saya tulis, pop CNAME
mail1, maka pop adalah nama lain untuk host mail1.
Dalam beberapa kasus, CNAME tidak disarankan. Misal mengisi alamat MX record dengan
sebuah record CNAME. Karena akan menambah satu proses query ke DNS, dan itu tidak efisien.
Untuk informasi dasar seputar DNS ini silahkan Anda baca Basic Guide to DNS sebuah tulisan
dari google.
Membuat Zona Baru
Karena kita sedang berbicara instalasi bind9 di Ubuntu, maka kita pakai cara ubuntu saja, dan
kalau menggunakan distro lain tentunya harus menyesuaikan.
Tadi kita sudah buat berkas baru yang berisikan record-record utk domain yang akan kita kelola.
Sekarang kita simpan berkas tersebut dengan nama db_perusahaan.com, simpan di
/etc/bind/.

Pastikan hak akses dan kepemilikannya sudah betul


sudo chmod 644 /etc/bind/db_perusahaan.com
sudo chown bind:bind /etc/bind/db_perusahaan.com
Lalu sekarang kita sunting berkas /etc/bind/named.conf.local, buat baris baru seperti
berikut,
1 zone "perusahaan.com" {
2 type master;
3 file "/etc/bind/db_perusahaan.com";
4 };
Setelah itu, konfigure ulang bindnya.
sudo rndc reload
Cek dan ricek menggunakan dig
Untuk mengecek SOA record, termasuk didalamnya adalah serial dari zona yang baru kita buat,
jalankan perintah berikut,
dig @localhost soa perusahaan.com
Untuk mengecek MX record, gunakan perintah berikut,
dig @localhost mx perusahaan.com
Untuk mengecek A record atau CNAME record, kita tinggal query hostnamenya saja. Misal, cek
www.perusahaan.com,
dig @localhost www.perusahaan.com
Pemecahan Masalah
Kalau ada masalah, jangan buru-buru menyerah, atau bertanya ke google. Biasanya solusinya
ada didekat-dekat kita juga. Mari kita lihat.
Lihat Log
Di Ubuntu, log yang harus diperiksa adalah /var/log/daemon.log, lihat disitu seharusnya ada
clue buat Anda.
Kurang Titik!
Masalah yang sering terjadi dalam mengkonfigurasi DNS adalah kurang teliti dalam membuat
zona domain. Kurang titik bisa membuat zona yang kita buat salah. Perhatikan gambar di bawah
ini, lalu teliti kembali berkas db_perusahaan.com yang sudah Anda buat tadi.

Masalah AppArmor
Di Ubuntu server defaultnya sudah terinstall aplikasi apparmor, yang kalau di fedora padanannya
tuh SELinux. Sama-sama berfungsi untuk menambahkan layer security, tapi kadang bikin mumet
proses konfigurasi.
Untuk proses troubleshoot, coba matikan dulu apparmor
sudo /etc/init.d/apparmor stop
Jika ingin membuang paketnya,
sudo dpkg --purge apparmor apparmor-utils

Anda mungkin juga menyukai