E D R , A S I H C RSS

FrontPage bind_gentoo

gentoo BIND 설치 (chroot 버전)


Contents

1. gentoo BIND 설치 (chroot 버전)
1.1. 소개
1.2. 설치
1.2.1. bind , bind-tools install
1.2.2. chroot
1.2.2.1. chroot 빌드
1.2.2.2. chroot 옵션확인
1.2.2.3. chroot directory
1.3. 설정
1.3.1. named.conf
1.3.2. named 데몬 등록 & 시작
1.4. kkanari.info 도메인 등록
1.4.1. named.conf 수정
1.4.2. zone 파일생성
1.4.3. named zone reload
1.4.4. log 확인
1.4.5. 테스트 !!!


1.1. 소개

이 문서는 chroot BIND 문서이다. chroot 로 운영하지 않으려면 아래 ebuild /var... config 항목을 실행시켜 주지 않으면 된다. 그리고 기본 디렉토리를 /var/bind 로 가정한다.

1.2. 설치

1.2.1. bind , bind-tools install


# emerge bind bind-tools
네임서버 bind 와 bind-tools (dig, nslookup, host 등) 을 설치한다

1.2.2. chroot

1.2.2.1. chroot 빌드

chroot 로 돌리기 위해서 아래와 같이 실행한다
# ebuild /var/db/pkg/net-dns/<bind version>/<bind-version> config 

설치된 버전이 bind-9.2.2-r3 임으로 아래와 같이 입력한다
 # ebuild /var/db/pkg/net-dns/bind-9.2.2-r3/bind-9.2.2-r3.ebuild config
 *
 * Setting up the chroot directory... Done.
 *
 * Add the following to your root .bashrc or .bash_profile:
 *    alias rndc='rndc -k /chroot/dns/etc/bind/rndc.key'
 * Then do the following:
 *    source /root/.bashrc or .bash_profile
 *

위와 같이 하면 /etc/conf.d/named 파일 내용을 보면 CHROOT 라는 항목도 변경되어 있다
chroot 로 변경하는 이유는 named 가 보안버그상 취약성이 발견되어 뚫릴 수가 있는데, 이럴때를 방지하기 위해서 사용한다. chroot 사용 안하는 사람은 /var/bind 로 사용한다.

1.2.2.2. chroot 옵션확인

# cat /etc/conf.d/named 
# Set various named options here.
#
OPTIONS=""

# Set this to the number of processors you have.
#
CPU="1"

# If you wish to run bind in a chroot, run:
# ebuild /var/db/pkg/net-dns/<bind version>/<bind-version> config
# and un-comment the following line.
# You can specify a different chroot directory but MAKE SURE it's empty.
CHROOT="/chroot/dns" 

1.2.2.3. chroot directory

chroot 하위디렉토리는 아래와 같이 구성되어 있다.
# cd /chroot
# tree
.
`-- dns
    |-- dev
    |   |-- random
    |   `-- zero
    |-- etc
    |   |-- bind
    |   |   |-- named.conf
    |   |   |-- pri -> ../../var/bind/pri
    |   |   |-- rndc.key
    |   |   `-- sec -> ../../var/bind/sec
    |   `-- localtime
    `-- var
        |-- bind
        |   |-- named.ca
        |   |-- pri
        |   |   |-- 127.zone
        |   |   `-- localhost.zone
        |   |-- root.cache -> ../../var/bind/named.ca
        |   `-- sec
        `-- run
            `-- named

12 directories, 9 files

1.3. 설정

1.3.1. named.conf

# vi /chroot/dns/etc/bind/named.conf 
위 파일 중에 listen-on 이라고 되어있는 항목이 있는데, 현재 상태가 127.0.0.1 에 대한
lookup 만 허용되어있다. 서비스 돌릴 IP 를 추가하여 준다.
        listen-on { 127.0.0.1; 192.168.0.100; 210.111.16.144; };

1.3.2. named 데몬 등록 & 시작

named 를 시작데몬에 등록시키고 start 시킨다
# rc-update add named default
 * named added to runlevel default
 * Caching service dependencies...
 * rc-update complete.
# /etc/init.d/named start
 * Starting chrooted named...                                                      [ ok ] 

여기까지면 캐슁서버로 훌륭한 동작을 한다.

1.4. kkanari.info 도메인 등록

1.4.1. named.conf 수정

그럼 도메인을 하나 등록해 보자 !
kkanari.info 도메인을 등록해 보겠다. (파일명 kkanari.info.zone)

/chroot/dns/etc/bind/named.conf 에 아래와 같이 추가를 해 준다.
zone "kkanari.info" IN {
    type master;
    file "pri/kkanari.info.zone";
    allow-update { none; };
};

1.4.2. zone 파일생성

/chroot/dns/etc/bind/pri/kkanari.info.zone 파일을 아래와 같이 만들어 준다.
$TTL 3600
@   IN  SOA ns.kkanari.info. root.kkanari.info. (
                                      2005012701 ; serial
                                      28800      ; refresh
                                      7200       ; retry
                                      604800     ; expire
                                      86400      ; minimum
                                      )
;
;
        IN      NS      ns.kkanari.info.
        IN      A       210.111.16.144
        IN      MX 10   mail
;
;
ns      IN      A       210.111.16.144
ns2     IN      A       210.111.16.144
mail    IN      A       210.111.16.144
ftp     IN      A       210.111.16.144
www     IN      A       210.111.16.144
home    IN      A       210.111.16.144
*       IN      A       210.111.16.144 

1.4.3. named zone reload

zone 파일 load 를 해준다
# rndc reload 

1.4.4. log 확인

/var/log/everything/current 로그를 확인해 보면 (syslogd 가 아닌 metalog 다 ;;)
Jan 27 15:06:21 [kernel] process `rndc' is using obsolete setsockopt SO_BSDCOMPAT
Jan 27 15:06:21 [named] loading configuration from '/etc/bind/named.conf'
Jan 27 15:06:21 [named] no IPv6 interfaces found
Jan 27 15:06:21 [named] zone kkanari.info/IN: loaded serial 2005012701
위와같이 정상적으로 읽어들였다.

1.4.5. 테스트 !!!

테스트를 해 보자
> server kkanari.info
Default Server:  kkanari.info
Address:  210.111.16.144

> kkanari.info
Server:  kkanari.info
Address:  210.111.16.144

Name:    kkanari.info
Address:  210.111.16.144

> www.kkanari.info
Server:  kkanari.info
Address:  210.111.16.144

Name:    www.kkanari.info
Address:  210.111.16.144

> mail.kkanari.info
Server:  kkanari.info
Address:  210.111.16.144

Name:    mail.kkanari.info
Address:  210.111.16.144 

아주 잘 된다 :D
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2005-01-27 15:55:02
Processing time 0.0262 sec