DNS adalah sistem penamaan domain yang mengubah nama domain menjadi alamat IP dan sebaliknya. DNS menggunakan server-server seperti master server, slave server, dan caching-only server untuk menyimpan dan menerjemahkan informasi domain. BIND adalah perangkat lunak implementasi DNS yang paling umum digunakan. BIND rentan terhadap serangan seperti spoofing, denial of service, dan eksploitasi kelemahan pada versi lama."
1. Domain Name Server
.
DNS kepanjangan dari Domain Name
System atau dalam beberapa buku dan
guide di Internet sering diartikan DNS
sebagai kepanjangan dari Domain Name
Service.
2
2. Sejarah DNS
Dengan berjalanya routing paket IP, Wide Area Network
berbasis protokol TCP/IP sudah dapat diwujudkan.
Namun dalam penggunaanya, ternyata timbul masalah
baru. Saat pengunaan aplikasi internet hendak
menghubungi komputer tujuan, dia harus menyebutkan
dulu IP address dari komputer tujuan.
3
3. Sejarah DNS
Pada awalnya digunakan teknik yang dinamakan host
table. Dimana masing-masing komputer menyimpan
daftar kombinasi nama komputer dan IP address, pada
file bernama HOSTS.TXT. Dengan berkembangnya
dunia internet cara ini menjadi sangat tidak efisien.
4
4. Sejarah DNS
Sekitar tahun 1984, Paul Mockapentris mengusulkan
sistem database terdistribusi. Sistem inilah yang
digunakan hingga sekarang.
Untuk memudahkan manusia maka komputer selain di
beri identitas dengan nomor IP juga diberi nama
(hostname). Hanya saja nama komputer dalam
jaringan internet tentunya harus bersifat 'uniq' yang
artinya tidak boleh sama.
5
6. Peran DNS server
Memetakan nama (hostname) dengan
IP address atau sebaliknya.
Menerjemahkan atau men-translate
nama (hostname) menjadi IP address
atau sebaliknya.
Menentukan server email (MX record)
dari suatu domain name.
Menyediakan caching nameserver
7
7. Tipe-tipe DNS server (nameserver)
master ― Dengan konfigurasi seperti ini DNS server atau
nameserver memiliki otoritas pengelolaan suatu
zone(domain) dan menyimpan record-record asli
(sebenarnya) dari suatu zone, menjawab pertanyaan dari
nameserver lainnya mengenai pencarian informasi suatu
domain yang dikelolanya.
8
8. Tipe DNS
slave ― Menjawab semua pertanyaan dari nameserver
lainnya mengenai pencarian informasi suatu domain, disini
nameserver dianggap sebagai yang memiliki otoritas
pengelolaan domain tertentu, Tetapi sebenarnya, slave
nameserver memperoleh informasi domain tersebut dari
master nameserver yaitu dengan menyalin record-record
zone (domain) tersebut dari master melalui mekanisme
transfer file dengan menggunakan protokol DNS.
9
9. Tipe-tipe DNS server (nameserver)
caching-only ― Dengan konfigurasi seperti ini maka
nameserver hanya bertugas melakukan
translasi(resolution) hostname ke IP atau sebaliknya
tetapi tidak memiliki otoritas atas suatu domain.
Seluruh jawaban dari proses translasi (resolutions)
di-cache dalam memory selama periode waktu
tertentu.
10
10. Cont.
forwarding ― Konfigurasi seperti ini meyebabkan
nameserver akan mem-forward atau meneruskan
penerjemahan hostname ke IP address (name
resolution) dari client ke salah satu nameserver dari
daftar nameserver yang sudah ditentukan. Jika tidak
ada daftar nameserver yang dispesifikasikan maka
proses name resolution akan gagal.
11
11. Sejarah BIND
Bind Merupakan software implementasi yang dibuat oleh Kevin
Dunlap untuk sistem operasi Unix Berkeley 4.3BSD.
Sampai saat sekarang BIND telah digunakan keberbagai
sistem operasi unix lain, dan sudah menjadi bagian standar
yang digunakan oleh vendor-vendor unix. Sebenarnya BIND
bukan software yang pertama, karena sebelumnya sudah
ada JEEVES yang dibuat oleh Paul Mockapetris. Softaware
ini yang menjadi sotware pertama untuk spesifikasi DNS.
12
13. Konfigurasi Bind
BIND menyimpan file konfigurasinya dalam dua
lokasi, yaitu:
/etc/named.rfc1912.zones dan
/etc/named.caching-nameserver.conf -
adalah file konfigurasi utama untuk program
named. /var/named/ - adalah sebuah direktori yang
biasanya berisi file-file database zone.
/var/named/chroot - adalah direktori chroot
bind.
14
15. Caching Only nameserver
konfigurasi /etc/named.rfc1912.zones
options {
directory "/var/named";
};
//
// a caching only nameserver config
//
zone "." IN {
type hint;
file "named.ca";
};
16
17. Master nameserver
Contoh tambahan konfigurasi master
nameserver pada file
/etc/named.rfc1912.zones:
zone "fery.ok" IN {
type master;
file "fery.ok.zone";
};
18
18. Master nameserver (cont)
[root@root]#cd /var/named/chroot/var/named
[root@root]#cp localhost.zone fery.ok.zone
[root@root]#chgrp named fery.ok.zone
[root@root]#vi fery.ok.zone
Kemudian rubah isi file “fery.ok.zone”,
seperti berikut:
19
19. Konfigurasi file zone
$TTL 86400
$ORIGIN fery.ok.
@ IN SOA ns.fery.ok. @ root (
42 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
@ IN NS ns.fery.ok.
@ IN MX 10 mail.fery.ok.
ns.fery.ok. IN A 192.168.0.1
mail.fery.ok. IN A 192.168.0.1
www.fery.ok. IN A 192.168.0.1
ftp.fery.ok. IN CNAME www.fery.ok.
20
22. DNS Server Pengelola Top Level Domain
[root@fe]# vi
/etc/named.rfc1912.zones
zone "nf" {
type master;
file "nf.zone";
};
23
23. Konfigurasi file zone
$ttl 38400
nf. IN SOA dns.server.nf. root (
42 ; serial
10800 ;refresh
3600 ;retry
604800 ;expire
nf. IN NS dns.server.nf.
nf. IN MX 10 mail.server.nf.
dns.server.nf . IN A 192.168.0.1
mail.server.nf . IN A 192.168.0.1
www.server.nf . IN A 192.168.0.1
camar.nf. IN NS ns.camar.nf .
ns.camar.nf . IN A 192.168.0.2
merak.nf. IN NS ns.merak.nf .
ns.merak.nf . IN A 192.168.0.3
merpati.nf. IN NS ns.merpati.nf .
ns.merpati.nf IN A 192.168.0.4
24
24. Menjalankan service DNS
#service named start
atau
#service named restart
Kalau ada error lihat pesan kesalahn
pada file /var/log/message
25
25. Menjalankan service DNS
#service named start
atau
#service named restart
Kalau ada error lihat pesan kesalahn
pada file /var/log/message
26
26. Tes DNS
(perintah dig www.nf any
;; QUESTION SECTION:
;nf. IN ANY
;; ANSWER SECTION:
nf. 86400 IN SOA dns.server.nf. root . 42 10800 3600 604800
38400
nf. 86400 IN NS dns.server.nf
nf. 86400 IN MX 10 mai.server.nf.
;; ADDITIONAL SECTION:
dns.server.nf. 86400 IN A 192.168.0.1
mail.server.nf. 86400 IN A 192.168.0.1
27
27. DNS Server Pengelola Sub Domain
zone "camar.nf" {
type master;
file "camar.nf.zone";
};
28
28. Konfigurasi zone
$ttl 38400
camar.nf. IN SOA ns.camar.nf. root (
42 ; serial
10800 ;refresh
3600 ;retry
604800 ;expire
38400 ) ;minimum
camar.nf. IN NS ns.camar.nf.
camar.nf. IN MX 10 mail.camar.nf.
ns.camar.nf IN A 192.168.0.2
mail.camar.nf . IN A 192.168.0.2
www.camar.nf . IN A 192.168.0.2
29
30. Serangan Terhadap DNS
.Beberapa serangan dan issue keamanan yang terjadi pada server DNS adalah:
Penyerangan secara langsung pada perangkat lunak DNS sesuai dengan kelemahan yang
diketahui atau berhasil dieksploitasi. Akibatnya sang penyerang dapat mengambil alih dan
mengontrol host yang diserang. Setelah itu biasanya sang penyerang akan dapat menguasai
jaringan sekaligus.
DNS Spoofing/Cache Poisoning
DNS spoofing atau cache poisoning adalah teknik untuk memasukkan atau meracuni cache pada
suatu server DNS dengan data atau informasi yang salah. Jika sebuah server DNS terkena DNS
spoofing atau cache poisoning maka data atau informasi yang diberikan server DNS tersebut tidak
valid lagi karena telah dispoof atau diracuni oleh sang penyerang. Misal: server DNS dari
target.com terkena DNS spoofing maka sang penyerang dapat memasukkan data atau informasi
yang salah pada server DNS tersebut sehingga dia dapat menggunakannya untuk melakukan
beberapa hal yang berhubungan dengan record DNS pada target.com:
31
31. Serangan DNS
A record
Jika record ini teracuni maka sang penyerang mungkin akan memberikan pemetaan dari nama host ke alamat IP yang salah sehingga
server DNS jadi tidak berfungsi sebagaimana mestinya. Sang penyerang dapat pula membuat website yang sama dengan website aslinya.
Kemudian pemetaan nama ke alamat IP diarahkan ke website yang telah dia buat tadi. misal website bank atau situs ecommerce, sang
penyerang dapat memanen username, password, nomor kartu kredit, dan informasi para pengguna layanan website itu.
MX record
Dengan memasukkan data mx record yang tidak valid, sang penyerang bisa mengarahkan semua lalu lintas email ke server milik
sang penyerang dan tetap memforward/meneruskan email untuk server tujuan.
Spoofing data mx record pada server DNS
Penyerang bisa juga menggunakan permintaan rekursif (recursive query) suatu host/domain ke server DNS target untuk meracuni cache
server DNS. Server tersebut akan mencari nameserver yang bertanggung jawab terhadap host dan akan mengirimkan query ke name
server tersebut untuk meminta record mengenai host/domain yang diminta.
Pada saat bersamaan dengan pemberian respon oleh nameserver yang dimintai untuk melakukan resolving, dimasukkan juga
data/informasi tentang suatu pemetaan host/domain yang salah/palsu. Sehingga resolver/klien lain yang meminta resolving host
tersebut akan mendapatkan respon yang salah/palsu juga.
Denial of Service Attack (DoS)
Denial of Service Attack adalah tipe penyerangan kepada suatu layanan dalam hal ini yang kita bicarakan adalah layanan DNS.
Akibatnya orang lain yang akan menggunakan layanan server DNS ini tidak akan dapat menggunakannya.
Penyerangan DoS bisa dengan mengirimkan
Permintaan zonetransfer secara bersamaan dari mesin yang berbeda dan terus menerus.
Pengiriman query secara membabi buta dan bersamaan dari mesin yang berbeda.
Pengiriman pesan respon ke port 53 dengan respon yang salah/tidak valid sehingga server DNS akan memberikan pesan kesalahan
ke klien/resolver atau nameserver lain.
32
32. Bind
.Beberapa kelemahan keamanan pada BIND:
TSIG bug
Buffer overflow pada kode TSIG pada semua versi BIND dibawah 8.2.3.
Memberikan akses pada host yang menjalankan named.
Dapat dieksploit oleh worm li0n.
Complain bug
Buffer overflow pada nslookupComplain().
Mengijinkan penyerang untuk mengcrash named.
SRV bug
Pemrosesan record SRV yang tidak sesuai.
Menghasilkan loop yang tak terhingga.
NXT bug
Pemrosesan record NXT yang tidak sesuai
Memberikan akses pada host yang menjalankan named.
33
33. bind
.Di bawah ini adalah implementasi dan rekomendasi yang relatif aman pada BIND:
Penggunaan versi BIND terbaru.
Sebagian besar versi BIND lama mempunyai bug dan dapat dieksploitasi sehingga akan menimbulkan serangan. Dengan menggunakan versi terbaru
diharapkan dapat meminimalkan adanya bug dan eksploitasi yang bisa dilakukan terhadap name-server karena bug pada versi sebelumnya biasanya
sudah diperbaiki pada versi yang lebih baru. Jangan lupa ketika meng-upgrade baca perubahan yang ada (release notes), karena pada beberapa versi
terbaru ada perubahan konfigurasi untuk mengaktifkan fitur baru dan kinerjanya.
Mengurangi kesalahan pada satu titik
Ada beberapa cara:
Menyediakan server DNS lebih dari satu yang otoritatif pada tiap zone (berbeda subnet, berbeda router, berbeda koneksi).
Menyediakan master name-server cadangan.
Menyediakan name-server cadangan untuk resolution.
Pembatasan zone-transfer
Melakukan pembatasan zone-transfer hanya kepada secondary name-server atau mesin yang benar-benar mempunyai authority terhadap informasi
atau data pada zone yang bersangkutan. Pada /etc/named.conf tambahkan baris allow transfer { [ip-atau-jaringan-yang-boleh-melakukan-zone-
transfer]}; di bagian options atau zone. Contoh:
options {
allow-transfer {192.168.3.3;};
};
atau pada zone
zone "my-server.com" IN {
type master;
file "db.my-server.com";
allow-transfer {192.168.3.3;};
};
34
34. bind
.Selain itu bisa juga dengan menggunakan metode Transaction SIGnature (TSIG). Contoh:
key transfer.my-server.com. {
algorithm hmac-md5;
secret jggRewTTCgdTOUvWPd0cqPoRiQ/=;
};
zone "my-server.com" {
type master;
file "db.my-server.com";
allow-transfer {key transfer.my-server.com.;};
};
Zone-transfer tidak dapat dilakukan oleh name-server yang meminta tanpa key (kode TSIG) yang sama pada primary-master name-server.
Membatasi dynamic update
Dynamic update harus dibatasi pada server DNS kita dari permintaan update informasi host/domain. Pada /etc/named.conf tambahkan baris allow update { [ip-atau-
jaringan-yang-boleh-melakukan-update]}; di bagian options atau zone. Contoh:
options {
allow-update {192.168.3.3;};
};
atau pada zone
zone "tech-server.com" IN {
type "master";
file "db.tech-server.com";
allow-update {127.0.0.1; 192.168.3.0/24;};
};
35
35. bind
.Membatasi permintaan rekursif
Dengan pembatasan permintaan rekursif pada server DNS maka dapat meminimalkan
ancaman DNS spoofing/cache poisoning. Permintaan rekursif dapat dibatasi dengan options
allow-recursion. Contoh:
options {
...
allow-recursion {192.168.3.0/24;};
...
};
Jika ingin mematikan fasilitas permintaan rekursif dapat menggunakan options recursion
no. Contoh:
options {
recursion no;
};
36
36. bind
.Chroot Jail
Teknik ini akan menghindari named digunakan oleh
penyusup untuk melakukan modifikasi filesystem serta
menghindari adanya buffer overflow.
Secara umum langkah menjalankan named dengan
lingkungan chroot() yaitu: Pilih direktori kerja named misal
/var/named/, jika anda menginginkan direktori lain bisa
anda buat sendiri. Salin berkas-berkas yang penting untuk
menjalankan named: named (binary), named.conf, zone.
Jalankan named dengan option -t.
# /usr/sbin/named -u named -t /var/named/
37
37. Access control
Anda dapat membuat batasan terhadap akses
atau query ke DNS server bind untuk alasan
keamanan dan performa, menggunakan
keyword acl dan view pada file konfigurasi
bind. Sebagai contoh DNS server Anda
adalah sebuah komputer yang berada di area
DMZ, yaitu dapat diakses dari private
network (LAN) dan juga dari public network
(internet).
)
38
41. dari file /etc/named.rfc1912.zones seperti berikut ini:
zone "." IN {
type hint;
file "named.ca";
};
zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local"; 42
allow-update { none; };
42. Sedangkan isi dari file /etc/named.rfc1912.zones.net seperti
berikut ini:
zone "." IN {
type hint;
file "named.ca";
};
zone "merpati.nf" IN {
type master;
file "merpati.com";
};
43