6 September 2010

MEMBUAT DNS SERVER MENGGUNAKAN SLACKWARE

DNS adalah salah satu jenis sistem yang melayani permintaan pemetaan IP Address ke FQDN (Fully Qualified Domain Name) dan FQDN ke IP Address. FQDN lebih mudah untuk diingat oleh manusia daripada IP Address. Pada sistem operasi Linux, DNS diimplementasikan dengan menggunakan software Berkeley Internet Name Domain (BIND), BIND ini memiliki dua sisi, yaitu sisi client dan sisi server. Sisi client disebut resolver. Resolver ini bertugas membangkitkan pertanyaan mengenai informasi domain name yang dikirimkan kepada sisi server. Sisi server BIND ini adalah sebuah daemon yang disebut named (baca: name di). Ia yang akan menjawab query-query dari resolver yang diberikan kepadanya. kemudian bagaimana cara membangunnya. Berikut adalah langkah-langkahnya :

1. Periksa apakah BIND sudah terinstall di mesin slackware

# ls /var/log/packages/ | grep bind

bind-9.4.3_P2-i486-2

kdebindings-4.2.4-i486-1

terlihat bahwa di mesin slackware telah terinstall paket bind-9.4.3_P2-i486-2 (Slackware-current), untuk paket bind-9.4.3_P2-i486-1 (Slackware 12.2). Ada beberapa file installasi default yang berkaitan dengan ini, antara lain :

/var/named/caching-example/named.ca

/var/named/caching-example/named.local

/var/named/caching-example/localhost.zone

/etc/rc.d/rc.bind

/etc/named.conf

named.ca , named.local dan localhost.zone adalah contoh dari konfigurasi bind9, file selanjutnya adalah init script (rc.bind) dan konfigurasi dari bind (named.conf). Untuk setting BIND ini, file-file yang harus Anda perhatikan adalah:

1./etc/resolv.conf

Berisi alamat domain atau alamat IP dari name.

2./etc/named.conf

Berisi keterangan letak dan jenis databases yang dibutuhkan oleh BIND

3./var/named/named.ca

Berisi informasi data yang berada dalam domain root, yang akan dipergunakan name server jika ada resolver yang akan meminta nama domain diluar nama domain lokal.

4./var/named/named.local

Berisi alamat loopback untuk alamat ke diri sendiri dengan alamat 127.0.0.1

2. Persiapan setting Domain baru

untuk memudahkan dalam pemahaman setting DNS server, maka data-data yang saya siapkan antara lain :

Hostname : ns1

Nama Domain : gslack.net

Nama DNS Server : ns1.gslack.net

Edit file /etc/named.conf

File /etc/named.conf merupakan konfigurasi utama untuk bind. File ini merupakan kumpulan statemen yang nilainya kita tentukan sesuai dengan DNS seperti apa yang kita inginkan. Berikut ini adalah isi file /etc/named.conf bawaan di slackware-current tetapi isi file ini sama dengan di slackware 12.2:

options {

directory “/var/named”;

/*

* If there is a firewall between you and nameservers you want

* to talk to, you might need to uncomment the query-source

* directive below. Previous versions of BIND always asked

* questions using port 53, but BIND 8.1 uses an unprivileged

* port by default.

*/

// query-source address * port 53;

};

//

// a caching only nameserver config

//

zone “.” IN {

type hint;

file “/var/named/named.root”;

};

zone “localhost” IN {

type master;

file “/var/named/localhost.zone”;

allow-update { none; };

};

zone “0.0.127.in-addr.arpa” IN {

type master;

file “/var/named/named.local”;

allow-update { none; };

};

1.pada blok pertama

options {

directory “/var/named”;

/*

* If there is a firewall between you and nameservers you want

* to talk to, you might need to uncomment the query-source

* directive below. Previous versions of BIND always asked

* questions using port 53, but BIND 8.1 uses an unprivileged

* port by default.

*/

// query-source address * port 53;

};

blok ini merupakan global setting dari BIND, dimana direktory “/var/named” (dibaca : tanpa tanda kutip) adalah direktori kerja dari bind, di direktoru tersebut ditempatkan file-file konfigurasi domain yang biasa disebut zone (perintah yang digunakan untuk menunjukkan domain yang dilayani oleh name server). Dan tidak disarankan untuk mengedit blok ini, kecuali jika anda tahu dan anda memahami blok ini. Blok ini memberitahukan kepada Server BIND dimana file-file zone tersimpan.

2.pada blok kedua

zone “.” IN {

type hint;

file “/var/named/named.root”;

};

Blok ini merupakan blok root zone atau kasarnya alamat-alamat dari domain-domain international. Kita membutuhkan blok root zone ini. Tetapi pada bagian file “/var/named/named.root”, bagian ini sudah saya pindahkan dimana difault_nya berada pada direktori cacing-example yang ada dalam direktori named, tetapi saya keluarkan dari direktori difault_nya ini hanya selera saja.

3.Pada blok ketiga

zone “localhost” IN {

type master;

file “/var/named/localhost.zone”;

allow-update { none; };

};

Blok ini merupakan forward localhost, dalam arti jika dns server mendapatkan perintah untuk mengetahui alamat ip dari localhost maka bagian blok ini yang mengurusnya.

4.Pada blok keempat adalah blok tambahan

zone “0.0.127.in-addr.arpa” IN {

type master;

file “/var/named/named.local”;

allow-update { none; };

};

Baris-baris pada bagian blok dibawah ini menyatakan bahwa kita akan mendefinisikan DNS server sebagai Primary Name Server untuk domain gslack.net dan file-file forward adalah nama file yang merupakan zona file dari domain gslack.net. Dan ini merupakan nama domain yang akan didaftarkan di /etc/named.conf.

#Baris di bawah untuk menterjemahkan FQDN ke IP Address (Forward Zone) dengan domain gslack.net

zone “gslack.net” IN {

type master;

file “/var/named/db.gslack”;

allow-update { none; } ;

};

Baris-baris dibawah ini adalah berisi reverse DNS Zone. Ini diperlukan agar DNS Server Anda dapat menterjemahkan dari nomor IP Address ke mana host pemilik IP Address dalam jaringan.

#Baris untuk menterjemahkan IP Address ke FQDN

#reverse Zone

zone “68.45.128.in-addr.arpa” IN {

type master;

file “/var/named/db.128.45.68″;

allow-update { none; };

};

Lalu untuk mendapatkan key adalah dengan cara mengetikkan

# rndc-confgen

Maka akan muncul seperti tulisan dibawah ini

# Start of rndc.conf

key “rndc-key” {

algorithm hmac-md5;

secret “CrNUrLFcedX/AIQSAF6oEw==”;

};

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 “CrNUrLFcedX/AIQSAF6oEw==”;

# };

#

# controls {

# inet 127.0.0.1 port 953

# allow { 127.0.0.1; } keys { “rndc-key”; };

# };

# End of named.conf

Salah satu bagian keluaran tadi , ambillah bagian setelah tulisan Use with the following in named.conf, adjusting the allow list as needed , dengan menghapus tanda pagar lalu paste-kan ke named.conf bagian paling bawah. Contoh seperti dibawah ini

options {

directory “/var/named”;

/*

* If there is a firewall between you and nameservers you want

* to talk to, you might need to uncomment the query-source

* directive below. Previous versions of BIND always asked

* questions using port 53, but BIND 8.1 uses an unprivileged

* port by default.

*/

// query-source address * port 53;

};

//

// a caching only nameserver config

//

zone “.” IN {

type hint;

file “/var/named/named.root”;

};

zone “localhost” IN {

type master;

file “/var/named/localhost.zone”;

allow-update { none; };

};

zone “0.0.127.in-addr.arpa” IN {

type master;

file “/var/named/named.local”;

allow-update { none; };

};

zone “gslack.net” IN {

type master;

file “/var/named/db.gslack”;

allow-update { none; } ;

};

zone “68.45.128.in-addr.arpa” IN {

type master;

file “/var/named/db.128.45.68″;

allow-update { none; };

};

key “rndc-key” {

algorithm hmac-md5;

secret “CrNUrLFcedX/AIQSAF6oEw==”;

};

controls {

inet 127.0.0.1 port 953

allow { 127.0.0.1; } keys { “rndc-key”; };

};

Kemudian pada bagian atas copylah dan pastekan pada rndc.conf :

key “rndc-key” {

algorithm hmac-md5;

secret “CrNUrLFcedX/AIQSAF6oEw==”;

};

options {

default-key “rndc-key”;

default-server 127.0.0.1;

default-port 953;

Kemudian pada bagian key “rndc-key” copylah dan pastekan ke /etc/rndc.key:

key “rndc-key” {

algorithm hmac-md5;

secret “CrNUrLFcedX/AIQSAF6oEw==”;

};

Semua kode harus sama pada named.conf, rndc.conf dan rndc.key

Setting file zone

Selanjutnya adalah mengkonfigurasi Primary Name Server untuk Domain gslack.net pada host ns1.gslack.net dengan IP Address 128.45.68.1. Berdasarkan pada file /etc/named.conf kita akan membuat file sebagaimana yang didefinisikan pada file /etc/named.conf kita akan membuat file sebagaimana yang didefinisikan pada file /etc/named.conf file tersebut bernama “db.gslack” dan reversenya “db.128.45.68”.

root@gslack:/var/named/caching-example#ls

named.ca named.root localhost.zone named.local

file dalam direktory caching-example saya keluarkan dan saya masukkan kedalam direktory named ini hanya soal selera, dimana saya tidak ingin membuka direktory terlalu banyak maka saya pindahkan file yang ada dalam direktory tersebut dan melakukan rename untuk localhost.zone dengan db.gslack dan named.local dengan db.128.45.68. Caranya seperti ini :

root@gslack:/var/named# mv /var/named/caching-example/* /var/named/

root@gslack:/var/named#ls

caching-example named.ca named.root

localhost.zone named.local

root@gslack:/var/named#cp localhost.zone db.gslack

root@gslack:/var/named#cp named.local db.128.45.68

root@gslack:/var/named#ls

caching-example db.gslack named.ca named.root db.128.45.68 localhost.zone named.local

edit zona file db.gslack.net

Langkah selanjutnya adalah mengkonfigurasikan name server untuk domain gslack.net pada host gslack.net pada IP Address 128.45.68.1 sebagai berikut

root@gslack:/var/named#nano db.gslack

$TTL 86400

@ IN SOA ns1.gslack.net root.gslack.net. (

42 ; serial (d. adams)

3H ; refresh

15M ; retry

1W ; expiry

1D ) ; minimum

IN NS ns1.gslack.net.

gslack.net. IN A 128.45.68.1

www.gslack.net. IN A 128.45.68.1

penjelasan

1.TTL (Time To Live) yang mendefinisikan waktu lamanya data berada dalam database.

2.SOA (Start of Authority) mendefinisikan hostname yang merupakan awal dari suatu zone.

3.42;serial: merupakan nomor serial dari zone file yang akan bertambah jika ada perubahan data.

4.3H;refresh: merupakan selang waktu yang diperlukan secondary name server untuk memeriksa perubahan pada Primary Name Server.

5.15M;retry: merupakan selang waktu secondary name server untuk mengulang pengecekan pada primary name server.

6.IN NS ns1.gslacknet: mendefinisikan bahwan hostname ns1.gslack.net yang memegang tanggung jawab terhadap domain gslack.net.

7.IN A 128.45.68.1 mendefinisikan bahwa hostname ns1.gslack.net mempunyai IP Address 128.45.68.1.

8.www IN A 128.45.68.1 mendefinisikan bahwa hostname ns1.gslack.net mempunyai nama www.gslack.net.

root@gslack:/var/named#nano db.128.45.68

$TTL 86400

@ IN SOA ns1.gslack.net. root.gslack.net. (

1997022700 ; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400 ) ; Minimum

IN NS ns1.gslack.net.

1 IN PTR gslack.net.

Penjelasan:

1.Penjelasan yang lain sama dengan penjelasan pada bagian gslack.net

2.IN PTR gslack.net mendefinisikan bahwa hostname gslack.net mempunyai IP Address 128.45.68.1

pada file rndc.key kita copy dan rubah namanya menjadi rndc.conf dan edit file rndc.conf seperti berikut :

root@gslack:/etc#cp rndc.key rndc.conf

root@gslack:/etc# nano rndc.conf

tambahkan perintah berikut pada baris berikutnya

options {

default-key “rndc-key”;

default-server 127.0.0.1;

default-port 953;

};

selanjutnya adalah menjalankan dan test domain

root@gslack:~# chmod +x /etc/rc.d/rc.bind (enter)

untuk mengaktifkan service bind

root@gslack:~# /etc/rc.d/rc.bind start (enter)

untuk menjalankan bind

root@gslack:~# /etc/rc.d/rc.bind restart (enter)

untuk merestart bind

root@gslack:~# /etc/rc.d/rc.bind stop (enter)

untuk menonaktifkan bind

Setelah perintah service bind dijalankan jangan lupa untuk melakukan pengecekan terhadap konfigurasi DNS yang kita bangun dengan perintah nslookup [DNS_server]. Jika terjadi pesan kesalahan seperti ini.

root@gslack:~#nslookup gslack.net

Server: 128.45.68.1

Address: 128.45.68.1#53

** server can’t find gslack.net: gslack.net

berarti pada bagian /etc/resolf.conf kita belum di masukkan alamat dari nameserver kita, untuk mengatasinya maka edit file /etc/resolve.conf.

root@gslack:~#nano /etc/resolve.conf

nameserver 128.45.68.1

Maksud dari perintah di atas adalah memasukkan IP komputer kita menjadi nama server, karena DNS yang kita gunakan menggunakan IP 128.45.68.1. kemudian ulangi perintah nslookupnya. Jika senuanya lancar hasilnya akan begini :

root@gslack:~# nslookup gslack.net

Server: 128.45.68.1

Address: 128.45.68.1#53

Name: gslack.net

Address: 128.45.68.1

kemudian jika kita melakukan nslookup dengan menggunakan IP addressnya hasilnya akan seperti ini

root@gslack:~# nslookup 128.45.68.1

Server: 128.45.68.1

Address: 128.45.68.1#53

1.68.45.128.in-addr.arpa name = gslack.net.

Dan pada saat dilakukan nmap pun berjalan

root@gslack:~# nmap 128.45.68.1

Starting Nmap 5.00 ( http://nmap.org ) at 2009-08-24 11:06 WIT

Interesting ports on gslack.net (128.45.68.1):

Not shown: 996 closed ports

PORT STATE SERVICE

22/tcp open ssh

37/tcp open time

53/tcp open domain

113/tcp open auth

Nmap done: 1 IP address (1 host up) scanned in 0.35 seconds

root@gslack:~# dig gslack.net

; <<>> DiG 9.4.3-P2 <<>> gslack.net

;; global options: printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1711

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:

;gslack.net. IN A

;; ANSWER SECTION:

gslack.net. 86400 IN A 128.45.68.1

;; AUTHORITY SECTION:

gslack.net. 86400 IN NS ns1.gslack.net.

;; Query time: 0 msec

;; SERVER: 128.45.68.1#53(128.45.68.1)

;; WHEN: Mon Aug 24 11:08:03 2009

;; MSG SIZE rcvd: 62

kemudian coba dengan melakukan ping baik menggunakan IP address, hostnamenya dan domainname servernya, seperti ini :

root@gslack:~# ping 128.45.68.1

PING 128.45.68.1 (128.45.68.1) 56(84) bytes of data.

64 bytes from 128.45.68.1: icmp_seq=1 ttl=64 time=0.031 ms

64 bytes from 128.45.68.1: icmp_seq=2 ttl=64 time=0.029 ms

64 bytes from 128.45.68.1: icmp_seq=3 ttl=64 time=0.034 ms

64 bytes from 128.45.68.1: icmp_seq=4 ttl=64 time=0.033 ms

64 bytes from 128.45.68.1: icmp_seq=5 ttl=64 time=0.032 ms

root@gslack:~# ping gslack.net

PING gslack.net (128.45.68.1) 56(84) bytes of data.

64 bytes from gslack.net (128.45.68.1): icmp_seq=1 ttl=64 time=0.020 ms

64 bytes from gslack.net (128.45.68.1): icmp_seq=2 ttl=64 time=0.032 ms

64 bytes from gslack.net (128.45.68.1): icmp_seq=3 ttl=64 time=0.037 ms

64 bytes from gslack.net (128.45.68.1): icmp_seq=4 ttl=64 time=0.032 ms

root@gslack:~# ping www.gslack.net

PING www.gslack.net (128.45.68.1) 56(84) bytes of data.

64 bytes from gslack.net (128.45.68.1): icmp_seq=1 ttl=64 time=0.019 ms

64 bytes from gslack.net (128.45.68.1): icmp_seq=2 ttl=64 time=0.028 ms

64 bytes from gslack.net (128.45.68.1): icmp_seq=3 ttl=64 time=0.030 ms

64 bytes from gslack.net (128.45.68.1): icmp_seq=4 ttl=64 time=0.028 ms

sehingga pada saat client melakukan ping ke domain name server tidak ada yang gagal baik melakukan ping dengan IP address, ping dengan hostnamenya dan ping menggunakan domain namenya. Sebelumnya pasang dulu IP address di ethernetnya sebelum menjalankan,melakukan test dan mengedit file di atas.

Tidak ada komentar:

Posting Komentar