0. rpm 버전의 bind 확인 후 검색 되면 관련패키지를 모두 지운다.
# rpm -qa | grep bind
bind-libs-9.2.4-7_EL3
bind-utils-9.2.4-7_EL3
bind-9.2.4-7_EL3
# rpm -e bind-utils-9.2.4-7_EL3
# rpm -e bind-libs-9.2.4-7_EL3
# rpm -e bind-9.2.4-7_EL3
1. 그룹/사용자 추가한다. 만일 네임서버 유저가 있다면 이 단계를 넘어갈 것.
# useradd -u 25 -r -d /var/named -M -s /bin/false named
2. Bind 소스 파일을 받아서 압축을 푼다.
# wget ftp://ftp.isc.org/isc/bind9/9.3.1/bind-9.3.1.tar.gz
# tar xfvz bind-9.3.1.tar.gz
# cd bind-9.3.1
3. 컴파일을 하기전에 globals.h 를 다음과 같이 수정
# cd bin/named/include/named
# pwd
~ bind-9.3.1/bin/named/include/named
# vi globals.h
(전략)
EXTERN const char * ns_g_defaultpidfile INIT(NS_LOCALSTATEDIR
"/run/named.pid");
; /run/named.pid 를 /run/named/named.pid로 수정
EXTERN const char * lwresd_g_defaultpidfile INIT(NS_LOCALSTATEDIR
"/run/lwresd.pid");
; /run/lwresd.pid 를 /run/named/lwresd.pid로 수정
(후략)
따라서 결론적으로 다음과 같이 되어 있어야 한다.
EXTERN const char * ns_g_defaultpidfile INIT(NS_LOCALSTATEDIR
"/run/named/named.pid");
EXTERN const char * lwresd_g_defaultpidfile INIT(NS_LOCALSTATEDIR
"/run/named/lwresd.pid");
4. 컴파일 / make / make install
# pwd
~ bind-9.3.1
환경변수를 첨가시켜준다.
# CFLAGS="-O2 -march=i686 -funroll-loops"
# Export CFLAGS
# ./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/share/man \
--with-openssl \ openssl이 깔려 있어야 하며, 경로를 못 찾으면 다음처럼 지정 : --with-openssl=/usr/local/ssl \
--with-libtool \
--enable-threads
# make
# find / * > ../BIND_0 (make 후의 파일변화를 기록)
# make install
# find / * > ../BIND_1 (make install 후의 파일변화를 기록)
# strip /usr/sbin/named
# mkdir -p /var/named
# mkdir -p /var/run/named
# install -c -m 600 ./bin/rndc/rndc.conf /etc/
# chown named.named /etc/rndc.conf
# chown named.named /var/named/
# chown named.named /var/run/named/
# /sbin/ldconfig
이과정 까지 끝마쳤으면 설치파일을 정리한다.
# cd ..
# rm -rf bind-9.3.1
5. 기본 파일 생성 및 설정
vi를 이용하여 다음의 파일들을 만들어 준다.
▪ /etc/named.conf
▪ /var/named/named.ca
▪ /var/named/localhost.zone
▪ /var/named/named.local
▪ /etc/logrotate.d/named
▪ /etc/sysconfig/named
▪ /etc/rc.d/init.d/named
▪ /etc/rndc.key
6. 네임서버 실행을 위한 준비
# cd /etc/rc.d/init.d
# chmod 700 named
# chown 0.0 named
# chkconfig --add named
# service named start
7. 네임서버 데몬이 잘 살아있는지 확인
# ps ax | grep named
23801 ? S 0:00 named -u named
23866 pts/0 S 0:00 grep named
이렇게 나오면 네임서버가 잘 실행되고 있는 것이다.
만약 네임서버가 실행이 안되었다면 /var/log/messages 파일을 참고하도록 한다.
소스컴파일을 통한 BIND 설치