BIND Chroot DNS Master dan Slave Dalam Satu Server

multiple-bind

multiple-bind dns master dan slave

DNS  (Domain Name System) adalah sebuah server yang bertugas untuk menterjemahkan alamat IP Address ke dalam bentuk sebuah nama domain, tujuannya adalah untuk mempermudah penemuan atau akses ke dalam sebuah situs berdasarkan nama atau domain yang mudah untuk diingat. Tentunya bisa dibayangkan jika sobat sekalian harus mengingat banyaknya nomor-nomor IP Address yang harus dihapal untuk mengakses situs tujuan.

DNS juga diperlukan untuk mengatur nama domain dan subdomain yang dipakai pada sebuah perusahaan ataupun untuk diri pribadi, umunya DNS server terdiri dari DNS Master dan Slave yang terinstall pada dua buah server dengan IP Address yang berbeda.

Pada kesempatan ini penulis ingin berbagi bagaimana caranya untuk menjalankan DNS Master dan Slave sebuah DNS server yang menggunakan BIND-9 dalam satu buah server dan berjalan dengan metode chroot, untuk itu perlu disiapkan sebuah server dengan dua buah ethernet card yang telah terinstall Linux dan sudah dikonfigurasikan dengan dua buah alamat IP yang berbeda.

Server spesifikasi :
Sistem Operasi : Fedora Core 6 32 bit, RAM 1 GHz
IP Address 1  : 10.10.10.2 (eth1) – ini hanya IP contoh, sesuaikan dengan ip public sobat
IP Address 2  : 172.16.0.2 (eth2)
BIND dan SSL : bind-9.9.2 dan openssl-0.9.8x

Langkah-langkah berikut harus dilakukan setelah login meggunakan root dalam server:

Jika sobat menggunakan versi fedora yang lebih tinggi dan versi openssl telah sama atau lebih tinggi, lewati langkah untuk install openssl dibawah ini:

Download openssl-0.9.8x.tar.gz

# cd source
# tar xfvz openssl-0.9.8x.tar.gz
# cd openssl-0.9.8x
# ./configure
# make
# make test
# make install

Download dan install bind

# cd source
# tar xfvz bind-9.9.2.tar.gz
# cd bind-9.9.2
# rpm -e bind bind-utils caching-nameserver (lewati jika bind tidak diinstall)
# ./configure --prefix=/usr/local --disable-ipv6 --with-openssl=/Path-to-openssl-sobat
# make
# make install

Konfigurasi dan persiapkan jail (chroot)

# groupadd named
# useradd -g named -d /chroot/named -s /bin/true named
# passwd -l named

# mkdir -p /chroot/named
# cd /chroot/named
# mkdir dev
# mkdir etc
# mkdir logs
# mkdir -p var/run
# mkdir -p conf/secondaries
# mknod dev/null c 1 3
# mknod dev/zero c 1 5
# mknod dev/random c 1 8
# cp /etc/localtime etc

 

Buat konfigurasi named.conf, karena DNS Master dan Slave berjalan dalam satu server berarti ada dua buah konfigurasi, sebut saja named1.conf dan named2.conf

# vi /chroot/named/etc/named1.conf, copykan template berikut didalamnya : named1.conf
# ln -s /chroot/named/etc/named1.conf /etc/named1.conf

Ulangi dua langkah diatas untuk membuat named2.conf (ganti name1,conf dengan named2.conf)
klik link named2.conf berikut untuk isi konfigurasi named yang kedua.

Buat tiga buah file db.rootcache, db.localhost and db.127.0.0 dalam direktori /chroot/named/conf

# dig +tcp @a.root-servers.net . ns > /chroot/named/conf/db.rootcache
# vi /chroot/named/conf/db.localhost, copykan kode dibawah ini:

;
; db.localhost
;
$TTL    86400

@       IN SOA   @ root (
                        42              ; serial
                        3H              ; refresh
                        15M             ; retry
                        1W              ; expiry
                        1D )            ; minimum

        IN NS        @
        IN A         127.0.0.1

# vi /chroot/named/conf/db.127.0.0, copykan kode dibawah ini:

;
; db.127.0.0
;
$TTL    86400
@       IN      SOA     localhost. root.localhost.  (
                            1          ; Serial
                            28800      ; Refresh
                            14400      ; Retry
                            3600000    ; Expire
                            86400 )    ; Minimum
        IN      NS      localhost.
1       IN      PTR     localhost.

Buatlah bind.zone untuk alasan security
# vi /chroot/named/conf/db.bind

;
$TTL    1D
$ORIGIN bind.
@       1D      CHAOS   SOA     localhost. root.localhost. (
                2001013101      ; serial
                3H              ; refresh
                1H              ; retry
                1W              ; expiry
                1D )            ; minimum
        CHAOS NS        localhost.

version.bind.   CHAOS  TXT "BIND 9.1.3+robhacks"
authors.bind.   CHAOS  TXT "Are You Bind Master? :)"

 

Langkah selanjutnya ada setup direktori dan file permission, untuk mempermudah akan dibuat sebuah file untuk melakukan hal tersebut.

# vim /chroot/named.perms

# named.perms
# setting ownership dan permission dalam direktori named

cd /chroot/named

chown -R root:named .

find . -type f -print | xargs chmod u=rw,og=r     
find . -type d -print | xargs chmod u=rwx,og=rx   

chmod o= etc/*.conf

touch conf/secondaries/.empty  # placeholder
find conf/secondaries/ -type f -print | xargs chown named:named
find conf/secondaries/ -type f -print | xargs chmod ug=r,o=

chown root:named conf/secondaries/
chmod ug=rwx,o=  conf/secondaries/

chown root:root  var/
chmod u=rwx,og=x var/

chown root:named  var/run/
chmod ug=rwx,o=rx var/run/

chown root:named  logs/
chmod ug=rwx,o=rx logs/

Untuk menjalankannya ketikkan:
# sh -x /chroot/named.perms

Instal dan Konfigurasi rndc daemon
# cd /chroot/named/etc

# /usr/local/sbin/dnssec-keygen -a HMAC-MD5 -b 256 -n HOST rndc
Krndc.+xxx+xxxxx 

# cat Krndc.+xxx+xxxxx.private
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: xxxxx-xxxxx-xxxxxx-xxxxxx-xxxxx-xxxx  --- key yang akan di copy ke rndc-key

Buat file rndc-key
# cd /chroot/named/etc
# vim rndc-key, copykan kode berikut

key "rndckey" {
       algorithm       "hmac-md5";
       secret          "xxxxx-xxxxx-xxxxxx-xxxxxx-xxxxx-xxxx";
};

# rm -f Krndc.+xxx+xxxxx.*  — hapus file setelah rndc-key tersimpan
Membuat file rndc.conf
# cd /chroot/named/etc
# vim rndc.conf, copykan kode berikut:

options {
        default-server  127.0.0.1;
        default-key     "rndckey";
};

server 127.0.0.1 {
        port 953;
        key     "rndckey";
};

include "/chroot/named/etc/rndc-key";

# chown root:named
# chmod 600 rndc-key
# ln -s /chroot/named/etc/rndc.conf /usr/local/etc/rndc.conf
# ln -s /chroot/named/etc/rndc.conf /etc/rndc.conf

Kemudian Buat startup untuk masing-masing konfigurasi:
# cd /chroot/named
# vi named1.start, copykan kode berikut:

cd /chroot/named
# 
touch named1.run
chown named:named named1.run
chmod ug=rw,o=r   named1.run

PATH=/usr/local/sbin:$PATH named  \
        -t /chroot/named \
        -u named \
        -c /etc/named1.conf

# vi named2.start, copykan kode berikut:

cd /chroot/named

touch named2.run
chown named:named named2.run
chmod ug=rw,o=r   named2.run

PATH=/usr/local/sbin:$PATH named  \
        -t /chroot/named \
        -u named \
        -c /etc/named2.conf

Jalankan kedua startup tersebut saat komputer server hidup atau menyala:
# vi /etc/rc.d/ini.d/named, copykan kode berikut dan simpan

#!/bin/sh

export PATH=/usr/local/sbin:$PATH       # untuk rndc

case "$1" in
  start)
        # Start daemons.
        echo -n "Starting named: "
        sh /chroot/named1.start
        echo "named up"

	echo -n "Starting named2: "
        sh /chroot/named2.start
        echo "named2 up"
        ;;
  stop)
        # Stop daemons.
        echo -n "Shutting down named: "
        rndc stop
	killall named
        echo "done"
        ;;
esac

exit 0

# chmod 755 /etc/rc.d/init.d/named
# vi /etc/rc.d/rc.local, copykan kode berikut pada baris akhir:

/etc/rc.d/init.d/named start

Sekarang sobat dapat mencoba menjlanakan dns server dengan mengetikan:

/etc/rc.d/init.d/named start

Untuk cek apakah master dan slave sudah berjalan, ketikkan:

# ps ax | grep named
 1805 ?        Ss     0:00 named -t /chroot/named -u named -c /etc/named1.conf
 1811 ?        Ss     0:00 named -t /chroot/named -u named -c /etc/named2.conf

Jika terlihat hasil seperti diatas, artinya chroot bind master dan slave telah berjalan

Setelah semua langkah diatas dilakukan dan kedua dns server telah up, saatnya untuk membuat routing table agar server dapat berjalan dengan dua gateway berbeda, dengan asumsi bahwa IP 10.10.10.2 (eth1) adalah routing utama dengan default gateway 10.10.10.1, jalankan perintah dibawah secara berurutan:

# echo 100 nama_table >> /etc/iproute2/rt_tables

# /sbin/ip route add default via 172.16.0.1 dev eth2 table nama_table
# /sbin/ip route add 172.16.0.0/24 dev eth2 src 172.16.0.2 table nama_table
# /sbin/ip rule add from 172.16.0.2 table nama_table
# /sbin/ip rule add to 172.16.0.2 table nama_table

Donwload template konfigurasi untuk named1.conf dan named2.conf klik disini.

Demikianlah, tinggalkan komentar jika menghadapi kendala, terima kasih.

Inpirasi Artikel :
1. http://www.cymru.com/Documents/secure-bind-template.html
2. http://www.unixwiz.net/techtips/bind9-chroot.html

You Might Also Like

5 Comments

  1. Mainan Anak Anak

    I’m curious to find out what blog platform you happen to be working with?
    I’m having some minor security issues with my latest
    website and I would like to find something more safeguarded.
    Do you have any solutions?

  2. abietstudio

    terima kasih infonya

  3. Jual Kambing Murah

    Terima kasih atas yang bermanfaat ini dan sukses selalu.

  4. grosir gamis murah

    terima kasih atas informasi yang bermanfaat dan sukses slalu

  5. bola plastik mandi bola

    terima kasih karma telah memberikan informasi yang bermanfaat ini dan sukses selalu

Leave a Reply

*