Rabu, 03 November 2010

Membangun DNS server pada 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:
  •  ./etc/resolv.conf
    • Berisi alamat domain atau alamat IP dari name.
  • ./etc/named.conf
    • Berisi keterangan letak dan jenis databases yang dibutuhkan oleh BIND
  • ./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.
  • /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.
ns1.gslack.net.         IN     A    128.45.67.1
gslack.net.                IN    A    128.45.67.1
www.gslack.net.       IN     A    128.45.67.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


sumber : http://www.palembang-slackers.org/?p=217

Tidak ada komentar:

Posting Komentar