웹마스터 팁
Bind 설정하기
2014.07.30 16:23
요새는 직접 서버를 다루는 일이 거의 없는거 같더군요..
앞으로 조금씩 이전에 제가 서버 관리하면서 기록한 것들을 적어보려고 합니다.
이전에 기록한 것들이지만, 직접 설치해 보거나 설정하는데.. 도움이 될거라 생각이 되는데.. ^^;
#############################################
# Bind 설정하기
#############################################
# ps ax|grep bind
22217 pts/0 S+ 0:00 grep bind
# rpm -qa|grep bind
bind-utils-9.3.3-10.el5
bind-9.3.3-10.el5
bind-chroot-9.3.3-10.el5
bind-libs-9.3.3-10.el5
ypbind-1.19-8.el5
yum을 사용하면 yum install bind bind-utils 이처럼 사용하면 쉽게 설치가 가능한다..
# /etc/init.d/named start
Locating /var/named/chroot//etc/named.conf failed: [FAILED]
: 설치후 바로 실행 본다. 역시 named.conf가 없다면 에러 발생.
그럼 named.conf 샘플 파일을 찾아보자.(conf 파일은 거의 모든 패키지에서 샘플 파일 제공함)
# find / -name named.conf
/etc/dbus-1/system.d/named.conf
/usr/share/doc/bind-9.3.3/sample/etc/named.conf
/usr/share/logwatch/default.conf/services/named.conf
예제 파일들은 해당 디렉토리로 이동하자.
일반적으로 named.conf는 /etc 밑에 두는데, bind-chroot 패키지를 설치했다면.. /var/named/chroot/etc/밑에 두어야 한다.
해당 파일들을 복사하자.
# cp /usr/share/doc/bind-9.3.4/sample/etc/named.conf /var/named/chroot/etc/
# cp /usr/share/doc/bind-9.3.4/sample/etc/named.root.hints /var/named/chroot/etc/
# cp /usr/share/doc/bind-9.3.4/sample/etc/named.rfc1912.zones /var/named/chroot/etc/
# cp /usr/share/doc/bind-9.3.4/sample/etc/rndc.conf /var/named/chroot/etc/
# cd /var/named/chroot/etc/
# l
total 48
-rw-r--r-- 1 root root 380 Mar 19 06:12 localtime
-rw-r--r-- 1 root root 4384 Mar 19 15:55 named.conf
-rw-r--r-- 1 root root 1046 Mar 19 14:51 named.rfc1912.zones
-rw-r--r-- 1 root root 524 Mar 19 14:07 named.root.hints
-rw-r--r-- 1 root root 0 Mar 19 14:10 rndc.conf
그리고 기본 zone 파일과 root 파일들을 복사해 오자.
# ll /usr/share/doc/bind-9.3.3/sample/var/named/
total 104
drwxr-xr-x 4 root root 4096 Mar 19 02:54 .
drwxr-xr-x 3 root root 4096 Mar 19 02:54 ..
drwxr-xr-x 2 root root 4096 Nov 11 00:22 data
-rw-r--r-- 1 root root 198 Mar 7 2006 localdomain.zone
-rw-r--r-- 1 root root 195 Mar 7 2006 localhost.zone
-rw-r--r-- 1 root root 56 Nov 11 00:22 my.external.zone.db
-rw-r--r-- 1 root root 56 Nov 11 00:22 my.internal.zone.db
-rw-r--r-- 1 root root 427 Mar 7 2006 named.broadcast
-rw-r--r-- 1 root root 424 Mar 7 2006 named.ip6.local
-rw-r--r-- 1 root root 426 Mar 7 2006 named.local
-rw-r--r-- 1 root root 2518 Mar 7 2006 named.root
-rw-r--r-- 1 root root 427 Mar 7 2006 named.zero
drwxr-xr-x 2 root root 4096 Mar 19 02:54 slaves
# cp -R /usr/share/doc/bind-9.3.4/sample/var/named/* /var/named/chroot/var/named/
그리고 named의 소유권을 named에게 주자.
# chown -R named:named /var/named/chroot/var/named
# l
total 104
-rw-r--r-- 1 named named 210 Mar 19 15:48 9.rev
-rw-r--r-- 1 named named 251 Mar 19 13:59 cent.aaa.net.zone
drwxrwx--- 2 named named 4096 Mar 19 16:11 data
-rw-r--r-- 1 named named 198 Mar 19 14:23 localdomain.zone
-rw-r--r-- 1 named named 195 Mar 19 14:23 localhost.zone
-rw-r--r-- 1 named named 56 Mar 19 14:23 my.external.zone.db
-rw-r--r-- 1 named named 56 Mar 19 14:23 my.internal.zone.db
-rw-r--r-- 1 named named 427 Mar 19 14:23 named.broadcast
-rw-r--r-- 1 named named 424 Mar 19 14:23 named.ip6.local
-rw-r--r-- 1 named named 426 Mar 19 14:23 named.local
-rw-r--r-- 1 named named 2518 Mar 19 14:23 named.root
-rw-r--r-- 1 named named 427 Mar 19 14:23 named.zero
drwxrwx--- 2 named named 4096 Mar 19 14:37 slaves
한번에 하려면..(버전 확인을 꼭 하자)
# cp /usr/share/doc/bind-9.3.4/sample/etc/named.conf /var/named/chroot/etc/; cp /usr/share/doc/bind-9.3.4/sample/etc/named.root.hints /var/named/chroot/etc/; cp /usr/share/doc/bind-9.3.4/sample/etc/named.rfc1912.zones /var/named/chroot/etc/; cp /usr/share/doc/bind-9.3.4/sample/etc/rndc.conf /var/named/chroot/etc/; cp -R /usr/share/doc/bind-9.3.4/sample/var/named/* /var/named/chroot/var/named/; chown -R named:named /var/named/chroot/var/named;
그럼 이제 dns keygen을 생성하자.
# dns-keygen
DnneBbL71L4nOLrYtCOD1hmzKNrVdYLXNq2gVqlD9sgO87wHjnqYrNoAkG75
# vi named.conf
......................
key ddns_key
{
algorithm hmac-md5;
#secret "use /usr/sbin/dns-keygen to generate TSIG keys"; // 기존 라인 주석처리
secret "DnneBbL71L4nOLrYtCOD1hmzKNrVdYLXNq2gVqlD9sgO87wHjnqYrNoAkG75"; // 새로이 라인 생성
};
대충 설정이 끝냈다..
named를 실행해 보자..
# /etc/init.d/named start
Starting named: [ OK ]
이처럼 뜨지 않는다면..
# tail -f /var/log/messages
로 기록된 데이타를 기록해 보자.
이곳에 에러의 원인이 기록되어 있을 것이다.
그럼 이제 실제 도메인을 세팅해 보자.
# cd /var/named/chroot/etc
# vi named.conf 파일을 수정하자
view "localhost_resolver"
{
/* This view sets up named to be a localhost resolver ( caching only nameserver ).
* If all you want is a caching-only nameserver, then you need only define this view:
*/
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
# all views must contain the root hints zone:
include "/etc/named.root.hints";
/* these are zones that contain definitions for all the localhost
* names and addresses, as recommended in RFC1912 - these names should
* ONLY be served to localhost clients:
*/
include "/etc/named.rfc1912.zones";
include "/etc/named.rev.conf"; // reverse file <== 추가
include "/etc/named.zone.conf"; // zone file <== 추가
};
......................
view "external"
{
/* This view will contain zones you want to serve only to "external" clients
* that have addresses that are not on your directly attached LAN interface subnets:
*/
match-clients { any; };
match-destinations { any; };
recursion no;
// you'd probably want to deny recursion to external clients, so you don't
// end up providing free DNS service to all takers
// all views must contain the root hints zone:
include "/etc/named.root.hints";
// These are your "authoritative" external zones, and would probably
// contain entries for just your web and mail servers:
zone "my.external.zone" {
type master;
file "my.external.zone.db";
};
include "/etc/named.zone.conf"; // zone file <== 추가
};
......................
이처럼 사용해 주고,
named.rev.conf 에는 reverse 를 지정해 주고..
named.zone.conf 에는 named를 지정해 주자.
// 아이피가 12.34.56.78이면.. 맨 마지막 클래스를 제외하고, 역숙으로 arpa를 지정해야 한다.
// 56.34.12.in-addr.arpa가 되게 된다.
// 해당 리버스 파일명은 임의대로 주어도 되나, 편의상 마지막 클래스를 사용했다. 78.rev
// reverse file //////////////////////////////
zone "56.34.12.in-addr.arpa" in{
type master;
file "78.rev";
allow-update{none;};
};
// 존파일 설정.
// 존 파일명도 임의로 지정해도 되나, 일반적으로 도메인명.zone으로 많이 사용한다.
// zone of xxx.com ///////////////////////
zone "xxx.com" in{
type master;
file "xxx.com.zone";
allow-update{none;};
};
해당 파일들을 생성하자.
# cd /var/named/chroot/var/named/
# vi 78.rev
$TTL 86400
@ IN SOA ns.xxx.com. system.xxx.com. (
0803191120
10800
3600
3600000
43200 )
; Name Server
IN NS xxx.com.
IN MX 10 mail
78 IN PTR xxx.com.
78 IN PTR mail.xxx.com.
; 주의할 것은 78은 임의로 지정하는 것이 아니고, 아이피의 맨 마지막 클래스이다..
# vi xxx.com.zone
$TTL 86400
@ IN SOA ns.xxx.com. system.xxx.com. (
0803181357
10800
3600
3600000
43200 )
; Name Server
IN NS xxx.com.
IN A 12.34.56.78
IN MX 10 mail
; Host Name
ns IN A 12.34.56.78
www IN CNAME ns
mail IN A 12.34.56.78
이제 재실행해 보자..
# /etc/init.d/named start
Starting named: [ OK ]
# tail -f /var/log/messages
Mar 19 15:55:19 cent named[23302]: zone 255.in-addr.arpa/IN/localhost_resolver: loaded serial 42
Mar 19 15:55:19 cent named[23302]: zone 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN/localhost_resolver: loaded serial 1997022700
Mar 19 15:55:19 cent named[23302]: zone localdomain/IN/localhost_resolver: loaded serial 42
Mar 19 15:55:19 cent named[23302]: zone localhost/IN/localhost_resolver: loaded serial 42
Mar 19 15:55:19 cent named[23302]: zone cent.aaa.net/IN/localhost_resolver: loaded serial 803181158
Mar 19 15:55:19 cent named[23302]: running
Mar 19 15:55:19 cent named[23302]: zone 234.118.210.in-addr.arpa/IN/localhost_resolver: sending notifies (serial 803191120)
Mar 19 15:55:19 cent named[23302]: zone xxx.com/IN/localhost_resolver: sending notifies (serial 803181158)
Mar 19 15:55:19 cent named[23302]: client 12.34.56.78#32775: view localhost_resolver: received notify for zone '56.34.12.in-addr.arpa'
Mar 19 15:55:19 cent named[23302]: client 12.34.56.78#32775: view localhost_resolver: received notify for zone 'xxx.com'
로그기록도 정상적이다..
이제 nslookup으로 확인해 보자.
# nslookup
> server 127.0.0.1
Default server: 127.0.0.1
Address: 127.0.0.1#53
> xxx.com
Server: 127.0.0.1
Address: 127.0.0.1#53
Name: xxx.com
Address: 12.34.56.78
외부 dns를 이용해 테스트 해 보자.
> server 210.220.163.82
Default server: 210.220.163.82
Address: 210.220.163.82#53
> xxx.com
Server: 210.220.163.82
Address: 210.220.163.82#53
Non-authoritative answer:
Name: xxx.com
Address: 12.34.56.78
댓글 0
제목 | 글쓴이 | 날짜 |
---|---|---|
코어 수정 없이 스킨 수정만으로 게시판 목록에 유튜브,비메오 썸네일 출력 [2] | foret | 2014.02.23 |
스케치북5 모바일 댓글 작성시 엔터를 쳤을 때 <br /> 코드 뜨는 문제 해결 [7] | oryan | 2014.02.23 |
게시판 목록의 new 아이콘 바꾸기 [1] | foret | 2014.02.23 |
게시판 목록에서 새창 띄워서 다른 형태 나오게 하기 [3] | foret | 2014.02.23 |
위젯 게시판 선택시 다중선택하기 ! [2] | GomSang | 2014.02.21 |
XE 1.7.4 "이메일 주소로 계정 찾기" 오류 해결 방법 | 꿈돌리 | 2014.02.20 |
누리고 쇼핑몰 모바일버전에서 백지화현상 수정하는 팁 [5] | garnecia | 2014.02.19 |
IEXPLORER 버젼 호환성 강제 맞추기 | davidis | 2014.02.18 |
1.7.4 버전용 한글 lang.xml 파일 [5] | 투씨 | 2014.02.18 |
1.7.4 용 youtube, vimeo, ted 썸네일 적용 document.item.php 수정방법 [9] | 남자인간 | 2014.02.17 |
우분투 12.04 LTS Nginx 최신버전 설치하기 [1] | 도라미 | 2014.02.17 |
카카오스토리 링크 [14] | 맞장 | 2014.02.15 |
"이 페이지 나가기" 경고창이 뜨는 사이트의 경우 [23] | 투씨 | 2014.02.15 |
css 가운데정렬 완벽정리! | 돼지코구뇽 | 2014.02.14 |
GNB 메뉴를 쉽게 만드는 jQuery plugin [2] | 김개발 | 2014.02.14 |
css 배경이미지 정리 | devdevpia | 2014.02.13 |
이메일인증 Error 한방정리 참고해보세요. [4] | 애드바이러스 | 2014.02.12 |
2014년 2월 12일부터 갑자기 사이트(관리자 페이지)가 깨지는 경우. | 새하나모 | 2014.02.12 |
글쓰기를 클릭하면 띄워지는 테두리 없는 예쁜 팝업 띄우기 core. 1.7.4 [4] | 마음의빈자리 | 2014.02.11 |
마우스드래그금지 | 레치에스 | 2014.02.11 |