웹마스터 팁
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
제목 | 글쓴이 | 날짜 |
---|---|---|
xe module, sample 생성기 [9] | 천재ㅐ재 | 2014.07.24 |
네이버 SMTP로 인증메일 보내기 [12] | Neder | 2013.08.26 |
첨부파일 제한 등을 1M 이하인 K 단위로 제한할 수 있게 설정 [1] | sejin7940 | 2014.08.07 |
UX를 편리하게 하기 위한 7 CSS 팁 | gamgak2895 | 2014.08.07 |
코어 수정하지 않고 게시물 첨부 파일 사용제한 | Happyphp | 2014.08.07 |
XE 설치 시 안전한 폴더권한 설정하기 (chown 사용) | 컴토피아 | 2014.08.07 |
특정 도메인 가입 않되게 (인증메일 관련) | 컴박살 | 2014.08.06 |
비밀번호 변경시 비밀번호 재입력 생략하기 | Summer | 2014.08.06 |
자주 쓰지 않지만, 알아두면 좋은 명령어들.. | SIN | 2014.08.06 |
fedora core4 기준으로 iptables 최소한 이정도는 막아줘야 할듯,, [3] [1] | 인호씨 | 2005.11.19 |
게시글 주소 아주 짧게 줄이기 [11] | 웹 엔진 | 2011.08.07 |
Bind 설정하기 | 뚱녀파파 | 2014.07.30 |
잦은 등급변경으로, 회원 등급이 엉켰을 경우 해결방법. [1] | NZ448 | 2009.09.10 |
MySQL Replication 사용중 Binary Log 삭제 하기 | 박희망찬삶 | 2014.07.29 |
게시판 데이터 일괄 삽입 방법 [1] | Happyphp | 2014.07.26 |
짧은 주소를 가능 하게 하는 서버(아파치, httpd) 설정 [3] | 꿈섬 | 2014.07.27 |
인증메일 안가는 문제- 완전 간단 해결 | 꿈섬 | 2014.07.27 |
/XE/떼어 내기 방법... | 꿈섬 | 2014.07.27 |
CURL 등 리퀘스트가 느리다고 생각될때 [1] | 銀童 | 2014.07.25 |
[초보팁] .htaccess 파일을 이용하여 여러가지 주소 한 주소로 리다이렉트 하기 ( 주소 통합 ) [5] | 태풍_님 | 2014.07.23 |