>> Read No. 3290 article  
bind-9.2.2rc1소스 설치후 체인지 루트(chroot)하기

등록 2003-01-22 23:01:00     조회 5
이름 비츠로    

		첨부 설정파일은 홈에서 다운 받으세요.(설치이야기 게시판)
질문은 비츠로 홈에서 해주세요.
비츠로 홈 http://vitro.pe.kr  자세한 설정은 김정균씨가 설명해주셨기 때문에
그곳을 참조하기 바란다. http://oops.org  http://www.isc.org - Internet Software Consortium (ISC)
홈페이지에서 소스를 다운 받는다.
 현재 버전은 BIND Version 9.2.1이다.
나는 bind-9.2.2rc1으로 테스트 했다.
 소스를 /var/tmp에다가 푼다.
tar xfzp bind-9.2.2rc1.tar.gz -C /var/tmp
 네임서버 데몬을 실행할 유저를 추가한다.
useradd -u 25 -s /bin/false -M -r -d /var/named named
보통 유저를 추가해서 그 유저로 데몬을 돌리면
루트로 데몬을 실행할때에 비해 안전하기 때문에
따로 유저를 추가한다.
 cd /var/tmp/bind-9.2.2rc1/ 소스 폴더로 이동한다.
vi 로 bin/named/include/named/globals.h 파일을
열어서 다음 부분을 바꿔준다.
run/named.pid/ -> run/named/named.pid
run/lwresd.pid -> run/named/lwresd.pid
이렇게 프로세서 아디가 생기는 경로를 바꿔준다.
 그리고 컨피그
 CFLAGS="-O2 -march=i686 -funroll-loops"; export CFLAGS
./configure
--prefix=/usr
--sysconfdir=/etc
--localstatedir=/var
--mandir=/usr/share/man
--with-openssl
--with-libtool
--disable-ipv6
 누누히 말하듯이 나는 항상 옵션이 길다. /usr 프리픽스로
맞추기 위해서...
 make <--- 실제 소스 컴파일
 find /* > /root/bind1
 설치될 서버의 파일 목록을 작성하기 위해
설친전의 시스템에 존재하는 파일과
디렉토리 목록을 작성해두는 것이다.
 make install <-- 컴파일 한 소스를 설치한다.
 설치후 퍼미션과 실행에 필요한 디렉토리 생성
 strip /usr/sbin/named
mkdir -p /var/named
mkdir -p /var/run/named
install -c -m0600 bin/rndc/rndc.conf /etc/
chown named.named /etc/rndc.conf
chown named.named /var/named/
chown named.named /var/run/named/
/sbin/ldconfig
 find /* > /root/bind2
설치하고 난뒤에 생긴 파일들 리스트 조사
 diff /root/bind1 /root/bind2 > bind-install
프로그램 설치전에 시스템에 존재하는 파일목록과
프로그램 설치후에 시스템에 존재하는 파일 목록을
비교하여 새로 시스템에 설치된 파일들을 추출한다.
이렇게 하면 새로 설치한 프로그램의 목록을 만들수 있다.
나중에 해당 프로그램을 삭제할때 아주 유용하다.
 각 설정 파일들은 /etc/named.conf
/var/named/db.??? <-- 여러 설정 파일은
직접 작성하여야 한다.
첨부 파일에 예제 파일이 있다.
위에서 conf와 /var/named/ 아래에 있는 파일들은
적절히 수정해서 사용하면 된다.
그리고 다음의 내용으로 /etc/sysconfig/named라는
파일을 작성한다. 두개 라인다 주석으로 해두었으나
나중에 네임서버 체인지 루트할때를 위해 필요하다.
#ROOTDIR="/chroot/named/"
#OPTIONS=""
 각 설정파일의 퍼미션 바꾼다.
chmod 600 /etc/named.conf
chown named.named /etc/named.conf
chmod 600 /var/named/db.localhost
chown named.named /var/named/db.localhost
chmod 600 /var/named/db.127.emoticon
chown named.named /var/named/db.127.emoticon
 chmod 644 /var/named/db.네트워크
chown named.named /var/named/db.네트워크
chmod 644 /var/named/db.도메인명
chown named.named /var/named/db.도메인명
 루트 네임서버의 정보를 받아와서 db.cache라는
파일로 저장하는 방법이다.
dig @198.41.0.4 . ns > /var/named/db.cache
퍼미션 변경
chmod 644 /var/named/db.cache
chown named.named /var/named/db.cache
 그리고 init.d/named 파일을 /etc/rc.d/init.d/아래에
복사한뒤에
chkconfig --level 2345 named on
/etc/rc.d/init.d/named restart
 서비스 시작한뒤에
 echo "nameserver 자신의 아피 주소" > /etc/resolv.conf
 서비스가 잘 되는 지 확인한다.
dig vitro.com <- 자신의 도메인명으로
예전버전에선 nslookup이지만 지금은
dig와 host라는 명령으로 변경되었다.
 bind 체인지 루트(chroot)하기 
 
 네임 서버의 체인지 루트 별 필요없다고 생각할지도
모르나 요즘 같은 보안이 중요한 시대엔 필수라고
할수 있다. 그냥 지나치지 말고 꼭 체인지 루트하는걸
필자는 권한다. 설정도 그렇게 복잡하지 않고 간단하다.
 /etc/rc.d/init.d/named stop
우선 서비스 정지
 체인지 루트할 디렉토리를 생성 및 복사
mkdir -p /chroot/named
mkdir -p /chroot/named/etc
mkdir -p /chroot/named/var/run/named
mkdir -p /chroot/named/var/named
chown -R named.named /chroot/named/var/run/named/
chown -R named.named /chroot/named/var/named/
mv /etc/named.conf /chroot/named/etc/
cd /var/named
mv * /chroot/named/var/named/
chown named.named /chroot/named/etc/named.conf
chown -R named.named /chroot/named/var/named/*
이런식으로 퍼미션과 소유권을 변경하는걸
깜박하고 안한다면 보안도 문제지만 데몬이
아예 뜨지 않기도 한다. 퍼미션과 소유권을
꼼꼼히 설정하도록 한다.
 cp /etc/localtime /chroot/named/etc/
서버의 시간관련 파일도 복사한다.
 /etc/sysconfig/named파일의
#ROOTDIR -> ROOTDIR 처럼 주석을 제거한다.
chmod 600 /chroot/named/etc/named.conf
 혹시나 해서 기우지만 다시 한번 리솔버파일을
재 작성해준다.
echo "search `domainname`
nameserver 자신의 아피" > /etc/resolv.conf
 서비스 재시작
/etc/rc.d/init.d/named restart
 ps axw | grep named
네임서버 프로세서가  -t /chroot/naemd/ 디렉토리로 변경
되었는지 확인해서 되었음 잘 된것이다.
이름
암호
  목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 1.25 초 ] 작업시간: [ 0.43 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1791008599
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.