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 설치

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다