twitter
    Find out what I'm doing, Follow Me :)

cara instal bind

Dependensi Paket
Untuk melakukan instalasi Bind ini, ada paket-paket yag harus sudah terinstall terlebih dulu, yaitu :
• Gcc
# rpm -qa | grep gcc
gcc-3.2.3-20
gcc-java-3.2.3-20
gcc-g77-ssa-3.5ssa-0.20030801.41
compat-gcc-7.3-2.96.122
gcc-c++-3.2.3-20
gcc-gnat-3.2.3-20
gcc-objc-3.2.3-20
gcc-c++-ssa-3.5ssa-0.20030801.41
gcc-java-ssa-3.5ssa-0.20030801.41
compat-gcc-c++-7.3-2.96.122
libgcc-ssa-3.5ssa-0.20030801.41
libgcc-3.2.3-20
gcc-g77-3.2.3-20
gcc-ssa-3.5ssa-0.20030801.41
gcc-objc-ssa-3.5ssa-0.20030801.41

• Compatible c++
# rpm -qa | grep compat
compat-gcc-7.3-2.96.122
compat-libstdc++-devel-7.3-2.96.122
compat-gcc-c++-7.3-2.96.122
compat-libstdc++-7.3-2.96.122
compat-glibc-7.x-2.2.4.32.5

• Paket glibc
# rpm -qa | grep glibc
glibc-devel-2.3.2-95.3
glibc-common-2.3.2-95.3
glibc-profile-2.3.2-95.3
glibc-utils-2.3.2-95.3
glibc-headers-2.3.2-95.3
glibc-kernheaders-2.4-8.34
glibc-2.3.2-95.3
compat-glibc-7.x-2.2.4.32.5

• Aplikasi make
# rpm -qa | grep make
automake-1.6.3-5
make-3.79.1-17
automake15-1.5-7
automake14-1.4p6-6

• Aplikasi perl
]# rpm -qa | grep perl
perl-Parse-Yapp-1.05-30
perl-libxml-perl-0.07-28
perl-XML-Grove-0.46alpha-25
perl-DBI-1.32-5
perl-Digest-HMAC-1.01-11.1
openssl-perl-0.9.7a-43.2
perl-5.8.0-88.4
perl-Filter-1.29-3
perl-DateManip-5.40-30
perl-HTML-Parser-3.26-17
perl-URI-1.21-7
perl-XML-Parser-2.31-15
perl-XML-Dumper-0.4-25
perl-libxml-enno-1.02-29
perl-XML-Twig-3.09-3
perl-CGI-2.81-88.4
newt-perl-1.08-4
perl-CPAN-1.61-88.4
perl-Net-DNS-0.31-3.1
perl-SGMLSpm-1.03ii-11
perl-HTML-Tagset-3.03-28
perl-libwww-perl-5.65-6
perl-XML-Encoding-1.01-23
perl-Time-HiRes-1.38-3
perl-Digest-SHA1-2.01-15.1

• Openssl yang bias di download di
http://www.openssl.org/source/openssl-0.9.8d.tar.gz





Instalasi
Berikut langkah-langkahnya :
1. Install paket openssl
a. Download paket
wget http://www.openssl.org/source/openssl-0.9.8d.tar.gz
b. Ekstrak paket
tar -xvzf openssl-0.9.8d.tar.gz
hasil ekstraksi akan mambuat suatu file bernama openssl-0.9.8d. masuk ke directory tersebut.
#cd openssl-0.9.8d
c. Lakukan konfigurasi
#./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl
Instalasi akan meletakkan openssl di dalam directory /usr/local/openssl
d. Kemudian lakukan kompilasi
#make && make test && make install
Sampai saat ini , instalasi openssl telah selesai dilakukan
2. Download paket bind
wget -c http://ftp.isc.org/isc/bind9/9.3.4/bind-9.3.4.tar.gz
3. Ekstrak paket
#tar xfvz bind-9.3.4.tar.gz
Kemudian masuk ke directory hasil ekstraksi
# cd bind-9.3.4
4. Lakukan konfigurasi
#./configure --prefix=/usr/local/named --enable-ipv6 --enable-libbind --with-openssl=/usr/local/openssl/ --sysconfdir=/etc --sbindir=/sbin/ --bindir=/bin --with-ptl2 --with-libtool --enable-getifaddrs
• Pada konfigurasi ini, kita melakukan kustomisasi
• pada letak directory di /usr/local/named
• mengaktifkan ipv6
• mengaktifkan library bind
• menggunakan openssl, yaitu di /usr/local/openssl
• konfigurasi file diletakkan di /etc
• file bin diletakkan di /bin dan /sbin
5. Lakukan kompilasi
#make && make clean && make depend && make all && make install

Pembuatan User
Setelah kompilasi dan instalasi selesai, sekarang kita coba membuat konfigurasi filenya. Agar yang menjalankan aplikasi ini bukan root, maka kita buat dulu 1 user
# /usr/sbin/useradd named -s /sbin/nologin -d /var/named/
Perintah ini akan menambahkan 1 user bernama named, yag tidak memiliki akses login, dan mempunyai directory di /var/named.

Pengubahan kepemilikan Direktory.
Direktory /var/named ini nantinya akan kita tempatkan sebagai directory zone record dns kita. Agar user named bias menggunakannya, kita ubah kepemilikannya menjadi named.
#chown named.named /var/named
Direktory yang lain adalah /usr/local/named/var/run. Yaitu directory untuk meletakkan pid dari named tersebut.
#chown named.named -Rf /usr/local/named/var/run

Konfigurasi
Pada instalasi, kita telah mengarahkan aplikasi named, agar memanggil membaca file konfigurasi nya di directory /etc. secara default, nama konfigurasi adalah named.conf. pada saat instalasi tersebut, akan dibuatkan beberapa file dan diletakkan di /sbin. File tersebut anatara lain
Named (sebagai daemon file)
named-checkconf (untuk memeriksa apakah konfigurasi named.conf sudah benar atau tidak)
named-checkzone (untuk memeriksa zone)
rndc (juga sebagai daemon)
rndc-confgen (untuk men-generate rndc key, yang akan diletakkan di /etc/, nama filenya rndc.key.
sebelum ke named.conf , kita ciptakan dulu rndc.conf nya
# /sbin/rndc-confgen >> /etc/rndc.ke

Setelah itu , baru kita buat named.conf, berikut contohnya

# more /etc/named.conf
#add by rito
#Senin, 5 Februari 2007
include "/etc/rndc.key";
options {
directory "/var/named";
allow-query {any; };

};
controls {
inet 127.0.0.1 allow { localhost; } keys { "rndc-key"; };
};

zone "." IN {
type hint;
file "named.ca";
};

zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};

Kemudian, buat file named.ca, localdomain.zone, dan named.local di /var/named. Isinya kurang lebih sebagai berikut :
# more /var/named/named.ca
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . "
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC
; under anonymous FTP as
; file /domain/named.cache
; on server FTP.INTERNIC.NET
; -OR- RS.INTERNIC.NET
;
; last update: Jan 29, 2004
; related version of root zone: 2004012900
;
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; operated by VeriSign, Inc.
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
;
; operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; operated by ICANN
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File

]# more /var/named/named.local
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.

1 IN PTR localhost.

# more /var/named/localdomain.zone
$TTL 86400
@ IN SOA localhost root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS localhost
localhost IN A 127.0.0.1

file –file di atas hanya contoh.

Setelah membuat file di atas, sekarang kita membuat init daemonnya. Pada redhat, diletakkan di /etc/rc.d/init.d atau di /etc/init.d
Nama filenya ada named
Isi filenya kurang lebih sebagai berikut :

# more /etc/init.d/named
#!/bin/bash
#
# named This shell script takes care of starting and stopping
# named (BIND DNS server).
#
# chkconfig: - 55 45
# description: named (BIND) is a Domain Name Server (DNS) \
# that is used to resolve host names to IP addresses.
# probe: true

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
[ -r /etc/sysconfig/network ] && . /etc/sysconfig/network

RETVAL=0
prog="named"

# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 1

[ -r /etc/sysconfig/named ] && . /etc/sysconfig/named

[ -x /sbin/named ] || exit 1

[ -r ${ROOTDIR}/etc/named.conf ] || exit 1


start() {
# Start daemons.
if [ -n "`/sbin/pidof named`" ]; then
echo -n $"$prog: already running"
return 1
fi
echo -n $"Starting $prog: "
ckcf_options='';
if [ -n "${ROOTDIR}" -a "x${ROOTDIR}" != "x/" ]; then
OPTIONS="${OPTIONS} -t ${ROOTDIR}"
ckcf_options="-t ${ROOTDIR}";
if [ -s /etc/localtime ]; then
cp -fp /etc/localtime ${ROOTDIR}/etc/localtime
fi;
fi
conf_ok=0;
if [ -x /sbin/named-checkconf ] && /sbin/named-checkconf $ckcf_options;
then
conf_ok=1;
else
RETVAL=$?;
fi
if [ $conf_ok -eq 1 ]; then
daemon /sbin/named -u named -n 2 ${OPTION};
RETVAL=$?;
else
named_err=`/sbin/named -g 2>&1 | sed s/\n/\\n/g`;
if [ `tty` != "/dev/console" ]; then
echo -e "\n$named_err";
echo -n "Error in configuration file /etc/named.conf : ";
fi;
failure $"Error in configuration file /etc/named.conf : $named_err";
echo
return $RETVAL;
fi;
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/named
Echo
return $RETVAL
}
stop() {
# Stop daemons.
echo -n $"Stopping $prog: "
/sbin/rndc stop >/dev/null 2>&1
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/named || {
# killproc named
# Never do this! Can cause corrupt zone files!
/sbin/rndc stop >/dev/null 2>&1
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/named
echo
return $RETVAL
}
success
echo
return $RETVAL
}
rhstatus() {
/sbin/rndc status
return $?
}
restart() {
stop
# wait a couple of seconds for the named to finish closing down
sleep 2
start
}
reload() {
echo -n $"Reloading $prog: "
p=`/sbin/pidof -o %PPID named`
RETVAL=$?
if [ "$RETVAL" -eq 0 ]; then
/sbin/rndc reload >/dev/null 2>&1 || /usr/bin/kill -HUP $p;
RETVAL=$?
fi
[ "$RETVAL" -eq 0 ] && success $"$prog reload" || failure $"$prog reload
"
echo
return $?
}
probe() {
# named knows how to reload intelligently; we don't want linuxconf
# to offer to restart every time
/sbin/rndc reload >/dev/null 2>&1 || echo start
return $?
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
rhstatus
;;
restart)
restart
;;
condrestart)
if [ -e /var/lock/subsys/named ]; then restart; fi
;;
reload)
reload
;;
probe)
probe
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|p
robe}"
exit 1
esac

exit $?

Menjalankan named
Untuk menjalankan named. Cukup dengan perintah berikut :
#/etc/init.d/named start
Kemudia kita periksa apakah sudah jalan atau belum
# ps -ax | grep named
14134 ? S 0:01 /sbin/named -u named -n 2

Terlihat named sudah jalan.

0 comments: