[Linux-note] DNS (Domain Name Server) + BIND 9.7 셋팅방법
포스트 작성자 : sTricky
포스팅 날 : 2013.3.28
운영체제 : RHEL4 in VMware
인용자료 : 이경호님 (DNS Build for RHEL4, PDF file)
http://estenpark.tistory.com/
검사 : 서진수 선생님
※ 이번주 과제 내용 ※
1. DNS 서버 셋팅
2. FTP 서버 셋팅
3. Mail 서버 셋팅
4. APM 셋팅
그 첫번째 시간으로 DNS (Domain Name Server) + BIND 9.7 셋팅방법을 알아보도록 하겠습니다. 첨으로 접하는 내용이라서 인터넷을 뒤져서 참고자료를 찾아서 셋팅을 시작했습니다. 감사합니다.
1. DNS서버의 종류와 역활
- DNS 서버는 크게 Primary 서버, Secondary서버, Caching Only서버로 나뉩니다.
2 종류와 역할
- Primary Name Server : 도메인 네임서버에 꼭 구축 하는 서버입니다.
- Secondary Name Server : 주로 주 도메인 서버 백업을 담당합니다.(반드시 구축할 필요 없음)
- Cashing Only Server : 서버에 기록된 정보가 요청이 올 경우 응답해주는 서버입니다.
2. 네임서버 구축
개요
- Redhat 리눅스는 BIND(Berkeley Internet Name Domain) 이라는 DNS 서버용 소프트웨어(데몬) 제공
2 Bind관련 파일 및 디렉토리
- named.conf(파일) : named 데몬이 작동할 때 처음으로 참조하는 파일로 환경설정과 밀접한 관련이 있습니다.
- named(데몬) : 네임서버를 작동시키고 중단시킬 때 사용하는 데몬 입니다.
- /var/named(디렉토리) : 루트 도메인 서버에 대한 정보가 담긴 named.ca(named.root), named.local 파일과 메인 도메인 설정을 위한 zone파일이 위치하는 디렉토리입니다.
3. BIND9.7
다운로드
[2010-11-22
15:21:53]-[root@localhost:/usr/local/src]
# wget
http://ftp.isc.org/isc/bind9/9.7.2-P2/bind-9.7.2-P2.tar.gz
--15:21:57-- http://ftp.isc.org/isc/bind9/9.7.2-P2/bind-9.7.2-P2.tar.gz
=> `bind-9.7.2-P2.tar.gz'
Resolving ftp.isc.org... 204.152.184.110, 2001:4f8:0:2::18
Connecting to ftp.isc.org|204.152.184.110|:80...
connected.
HTTP request sent, awaiting response... 200 OK
Length:
7,573,857 (7.2M) [application/x-gzip]
82% [=============================> ] 6,240,549 174.23K/s ETA 00:11
[2010-11-22
15:23:15]-[root@localhost:/usr/local/src]
# tar zxf
bind-9.7.2-P2.tar.gz
[2010-11-22
15:23:46]-[root@localhost:/usr/local/src/bind-9.7.2-P2]
#
cd bind-9.7.2-P-2
[2010-11-22
15:23:46]-[root@localhost:/usr/local/src/bind-9.7.2-P2]
#
./configure
--prefix=/usr/local/dns
...
...
생략
...
...
WARNING
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
WARNING
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
WARNING
WARNING
WARNING
WARNING
WARNING Your OpenSSL crypto library may be vulnerable
to WARNING
WARNING one or more of the the following known
security WARNING
WARNING
flaws:
WARNING
WARNING
WARNING
WARNING CAN-2002-0659, CAN-2006-4339, CVE-2006-2937
and WARNING
WARNING
CVE-2006-2940.
WARNING
WARNING
WARNING
WARNING It is recommended that you upgrade to
OpenSSL WARNING
WARNING version 0.9.8d/0.9.7l (or greater).
WARNING
WARNING
WARNING
WARNING You can disable this warning by
specifying:
WARNING
WARNING
WARNING
WARNING
--disable-openssl-version-check
WARNING
WARNING
WARNING
WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
WARNING WARNING
WARNING WARNING WARNING WARNING WARNING WARNING WARNING
WARNING WARNING WARNING
[2013-3-28
15:25:02]-[root@localhost:/usr/local/src/bind-9.7.2-P2]
#
make; make install
4. 초기 상태
확인
[2013-3-28 20:25:53]-[root@localhost:~]
# cat /etc/resolv.conf
nameserver 168.126.63.1
[2013-3-28 23:43:12]-[root@localhost:/usr/local/dns/etc]
# nslookup
> calmmass.pe.kr
;; connection timed out; no servers could be reached
5. named.conf 파일의
환경설정
[2013-3-28
20:40:18]-[root@localhost:/usr/local/dns/etc]
# cat named.conf
[설명]
BIND9버전은 위와 같이 설치 한다면 /usr/local/dns/etc 안에 blnd,keys 파일을 밖에 없을 겁니다. 그래서 vi 편집기로
named.conf 파일을 생성 후 아래와 같은 내용을 적어 주시기 바랍니다.
[2013-3-28
20:43:24]-[root@localhost:/usr/local/dns/etc]
# cat
named.conf
/*
[설명]
directory : 네임서버에서
데이터베이스 역활을 하는 존(zone)파일의 위치를 설정
dump-file : named는 정보가 갱신될 때 dump파일로 저장하는데
그 덤프파일이 생성될 위치아 파일명을 지정
statistics-file : 네임서버의 통계를 낼 경우에 사용하는 옵션으로 메모리 통계
파일을 생성할 위치와 파일명 지정
allow-transfer : zone 파일의 내용을 복사할 대상에 제한을 걸 때
지정
*/
options {
directory "/var/named";
dump-file "/var/tmp/named_dmp.db";
statistics-file "/var/tmp/named.stats";
pid-file
"/var/run/named.pid";
allow-transfer { 172.16.71.XXX; };
};
logging {
category lame-servers { null; };
category notify { null;
};
};
/*
[설명]
도메인을 찾을때는 가장 상위 도메인서버에서 차례대로
트리구조형태로 찾습니다. 또한 참조하는 파일인 named.ca(named.root)는 일종의 캐시파일로서 인터닉(Internic)에서 제공하는
배포파일이므로 절대 변경해서는 안됩니다.
*/
zone "." IN {
type hint;
file "named.root";
};
/*
[설명]
로컬호스트에서는 Reverse파일에 관한 부분으로 이 부분
역시 설정 해야 합니다. type는 master인 것은 위에서 설명한 주 메인 도메인 서버를 의미 합니다.
/*
zone
"0.0.127.in-addr.arpa" IN {
type master;
file
"zone-0.0.127.in-addr.arpa";
notify no;
};
/*
[설명]
로컬호스트 파일에 관한 부분으로 이 부분 역시 설정 해야
합니다. type는 master인 것은 위에서 설명한 주 메인 도메인 서버를 의미 합니다.
*/
zone "localhost"
IN {
type master;
file "zone-localhost";
notify
no;
};
/*
[설명]
도메인 : calmmmass.pe.kr
IP :
172.16.71.xxx
위와 같은 정보라고 가정한다면 부여받은 IP중 마지막 자리를 뺀 나머지를 역으로 선언합니다. 물론 이선언은
안해도 무방하나, nslookup명령어나 기타 여러가지를 사용하려면 꼭 선언해야 합니다. type는 master인 것은 위에서 설명한 주 메인
도메인 서버를 의미 합니다.
*/
zone "71.16.172.in-addr.arpa" IN {
type
master;
file "zone-71.16.172.in-addr.arpa";
};
/*
[설명]
도메인 : calmmmass.pe.kr
IP :
172.16.71.xxx
위와 같은 정보라고 가정한다면 부여받은 도메인을 도메인이름으로 지정하고 존파일은 임의로 지정하셔도 되지만
알아보기 편하도록 앞이나 뒤에 zone를 붙여 주시는게 좋습니다. type는 master인 것은 위에서 설명한 주 메인 도메인 서버를 의미
합니다.
*/
zone "calmmass.pe.kr" IN {
type
master;
file "zone-calmmass.pe.kr";
};
[ Tip 한번에
문자 모두 변경 하는 방법 ]
:1,$ s/211.43.134.102/172.16.71.200/g
[ dns 존파일 구성하는 파일 확인 ]
[2010-11-23
20:48:30]-[root@localhost:/usr/local/dns/etc]
# grep file
named.conf
dump-file "/var/tmp/named_dmp.db";
statistics-file "/var/tmp/named.stats";
pid-file
"/var/run/named.pid";
file "named.root";
file
"zone-0.0.127.in-addr.arpa";
file
"zone-71.16.172.in-addr.arpa";
file
"zone-calmmass.pe.kr";
6. 존파일의 구성
7. /var/named에 위치하는 zone파일의
설정
[설명] ftp://ftp.internic.org/domain/named.root 파일의 내용을 복사해서 아래와 같이 named.root
파일로 생성합니다. 캐시파일로서 사용하기 위한 설정 방법이며 파일의 내용은 절대 변경 하지 마시길 바랍니다.
[2013-3-28 16:49:29]-[root@localhost:/var/named]
# cat
named.root
; This file holds the information on root name servers
needed to
; initialize cache of Internet domain name servers
;
(e.g. reference this file in the "cache . <file>"
;
configuration file of BIND domain name servers).
;
; This file is
made available by InterNIC
; under anonymous FTP as
;
file /domain/named.cache
; on server
FTP.INTERNIC.NET
;
-OR- RS.INTERNIC.NET
;
; last update: Jun 17,
2010
; related version of root zone: 2010061700
;
; formerly
NS.INTERNIC.NET
;
. 3600000 IN NS
A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A
198.41.0.4
A.ROOT-SERVERS.NET. 3600000 AAAA
2001:503:BA3E::2:30
;
; FORMERLY
NS1.ISI.EDU
;
. 3600000 NS
B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A
192.228.79.201
;
; FORMERLY C.PSI.NET
;
.
3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000
A 192.33.4.12
;
; FORMERLY
TERP.UMD.EDU
;
. 3600000 NS
D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A
128.8.10.90
;
; FORMERLY NS.NASA.GOV
;
.
3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000
A 192.203.230.10
;
; FORMERLY
NS.ISC.ORG
;
. 3600000 NS
F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A
192.5.5.241
F.ROOT-SERVERS.NET. 3600000 AAAA
2001:500:2F::F
;
; FORMERLY
NS.NIC.DDN.MIL
;
. 3600000 NS
G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A
192.112.36.4
;
; FORMERLY
AOS.ARL.ARMY.MIL
;
. 3600000 NS
H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A
128.63.2.53
H.ROOT-SERVERS.NET. 3600000 AAAA
2001:500:1::803F:235
;
; FORMERLY
NIC.NORDU.NET
;
. 3600000 NS
I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A
192.36.148.17
I.ROOT-SERVERS.NET. 3600000 AAAA
2001:7FE::53
;
; OPERATED BY VERISIGN,
INC.
;
. 3600000 NS
J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A
192.58.128.30
J.ROOT-SERVERS.NET. 3600000 AAAA
2001:503:C27::2:30
;
; OPERATED BY RIPE
NCC
;
. 3600000 NS
K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A
193.0.14.129
K.ROOT-SERVERS.NET. 3600000 AAAA
2001:7FD::1
;
; OPERATED BY ICANN
;
.
3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000
A 199.7.83.42
L.ROOT-SERVERS.NET. 3600000 AAAA
2001:500:3::42
;
; OPERATED BY WIDE
;
.
3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000
A 202.12.27.33
M.ROOT-SERVERS.NET. 3600000 AAAA
2001:DC3::35
; End of File
[설명] 로컬호스트에서의 Reverse 파일 입니다. ns.calmmmass.pe.kr은 name server을 지정해주기 위한
것이고, PTR(Domain Name Pointer) 이것은 IP 주소를 도메인으로 변환 해줍니다.
예) nslookup
127.0.0.1 하면 localhost가 나옵니다.
[2013-3-28
20:49:29]-[root@localhost:/var/named]
# cat zone-0.0.127.in-addr.arpa
$TTL 86400
@ IN SOA localhost. root.localhost.
(
1997022700 ;
Serial
28800 ;
Refresh
14400 ;
Retry
3600000 ;
Expire
86400 ) ; Minimum
IN
NS localhost.
1 IN
PTR localhost.
[설명] 로컬호스트 파일 입니다. ns.calmmmass.pe.kr은 name server을 지정해주기 위한
것이고, A는 localhost(도메인) 주소를 IP로 변환 해줍니다.
예) nslookup localhost 하면 127.0.0.1이
나옵니다.
# cat zone-localhost
$TTL 86400
@ IN SOA @
root (
42 ; serial (d. adams)
3H ;
refresh
15M ; retry
1W ; expiry
1D
) ; minimum
IN
NS @
IN A
127.0.0.1
[설명] IP중 마지막
자리를 뺀 나머지를 역으로 선언하는 Reverse 파일 입니다. ns.calmmmass.pe.kr은 name server을 지정해주기 위한
것이고, PTR(Domain Name Pointer) 이것은 IP 주소를 도메인으로 변환 해줍니다.
[2013-3-28 20:49:29]-[root@localhost:/var/named]
# cat
zone-71.16.172.in-addr.arpa
$TTL 3600
@ IN
SOA ns.calmmmass.pe.kr. root.calmmmass.pe.kr.
(
2001070600
;Serial
21600 ;Refresh ( 6
hours )
1800 ;Retry ( 30
minutes )
1209600 ;Expire (
14 days )
86400 ) ;Minimum ( 1
day )
IN NS ns.calmmmass.pe.kr.
xxx IN PTR ns.calmmmass.pe.kr.
[설명] 존 파일 입니다. 실제로 2차도메인 및 서비스별 도메인을 정의 할 수 있는 아주 중요한 파일입니다.
ns.calmmmass.pe.kr은 name server을 지정해주기 위한 것이고, MX는 Mail Excahanger의 약어로
Fowarding개념 입니다. A는 Address 즉 특정 호스트명에 대한 IP주소를 입력 해줍니다.
[2013-3-28
20:59:28]-[root@localhost:/var/named]
# cat
zone-calmmass.pe.kr
$TTL 3600
@ IN SOA
ns.calmmmass.pe.kr. root.calmmmass.pe.kr. (
2001041100 ;Serial
84600
;Refresh
1800
;Retry
1209600
;Expire
84600 ) ;Minimum
IN NS
ns.calmmmass.pe.kr.
IN NS
ns2.calmmmass.pe.kr.
IN A 172.16.71.200
IN MX 10 mail
mail IN A 172.16.71.200
ns
IN A 172.16.71.200
ns2 IN A
172.16.71.200
ftp IN A 172.16.71.200
www
IN A 74.125.224.19
[2013-3-28 21:01:21]-[root@localhost:/usr/local/dns/sbin]
# ./named-checkzone calmmass.pe.kr /var/named/zone-calmmass.pe.kr
zone calmmass.pe.kr/IN: loaded serial 2001041100
OK
8. 설정 확인 및
테스트
[설명] DNS 데몬
확인
[2013-3-28 21:02:58]-[root@localhost:/usr/local/dns/sbin]
# ls |perl -ne 'print if
/named$/'
named
[설명] DNS 데몬 가동 및 프로세스
확인
[2013-3-28
21:06:09]-[root@localhost:/usr/local/dns/sbin]
#
./named
[2013-3-28
21:06:31]-[root@localhost:/usr/local/dns/sbin]
# ps -ef
|grep -v grep |grep named
root
16530 1 6 21:06 ? 00:00:00 ./named
[설명] 내 시스템 DNS 서버 변경
[2013-3-28
21:07:57]-[root@localhost:/var/named]
# cat
/etc/resolv.conf
nameserver 172.16.71.xxx
[설명] 네트워크 서비스 재시작(반드시 재시작
하지 않아도 됩니다. 원인은 왜 그런지 모르겠네요.^^ 정적으로 할당되는 것으로 알고 있었는데 테스트 결과 동적으로 변경이
됐습니다.)
[2013-3-28
21:08:17]-[root@localhost:/var/named]
# service network
restart
[설명] DNS
서버 변경 확인
[2013-3-28 16:06:45]-[root@localhost:/usr/local/dns/sbin]
# nslookup
> 127.0.0.1
Server:
172.16.4.102
Address: 172.16.4.102#53
1.0.0.127.in-addr.arpa name = localhost.
> 172.16.4.102
Server:
172.16.4.102
Address: 172.16.4.102#53
102.4.16.172.in-addr.arpa name =
ns.calmmmass.pe.kr.
> www.calmmass.pe.kr
Server:
172.16.4.102
Address: 172.16.4.102#53
Name: www.calmmass.pe.kr
Address:
74.125.224.19
> calmmass.pe.kr
Server:
172.16.4.102
Address: 172.16.4.102#53
Name: calmmass.pe.kr
Address:
172.16.71.200
[설명] www.calmmass.pe.kr을 구굴 도메인 서버로 변경 한다면 어떻게
될까요? DNS를 이해 했다면 아래와 같은 그림을 이해하고 변경이 가능 할 거라고 생각 됩니다. zone-calmmass.pe.kr 파일을 확인
해보면" www IN A 74.125.224.19" 설정 부분이 보이실 겁니다. www.[구성한 존파일의 도메인 네임] 하면 테스트가
가능 합니다.
8. rndc DNS 유틸리티
사용방법
관련 파일 : [설치파일]/etc/rndc.conf( 주 환경설정 파일), rndc-confgen(주 환경설정파일을 만들어주는 명령어)
[설명] [설치파일]/etc/rndc.conf 기본 설정
[2013-3-28 01:44:17]-[root@localhost:/usr/local/dns/etc]
# cat rndc.conf
options{
default-server localhost;
default-key "rndckey";
};
server localhost {
key "rndckey";
};
include "usr/local/dns/etc/rndc.key";
[설명] rndc-confgen 명령어를 이용하여 파일 생성(rndc.conf)
[2013-3-28 01:42:20]-[root@localhost:/usr/local/dns/sbin]
# ./rndc-confgen -a
wrote key file "/usr/local/dns/etc/rndc.key"
[2010-11-24 01:45:37]-[root@localhost:/usr/local/dns/etc]
[2010-11-24 01:45:54]-[root@localhost:/usr/local/dns/etc]
# chmod 640 rndc.key
[2010-11-24 01:46:14]-[root@localhost:/usr/local/dns/etc]
# ls -al
합계 24
drwxr-xr-x 2 root root 4096 11월 24 01:44 .
drwxr-xr-x 9 root root 4096 11월 23 20:37 ..
-rw-r--r-- 1 root root 665 11월 23 20:26 bind.keys
-rw-r--r-- 1 root root 689 11월 23 20:37 named.conf
-rw-r--r-- 1 root root 162 11월 24 01:44 rndc.conf
-rw-r----- 1 root root 77 11월 24 01:42 rndc.key
DNS (Domain Name Service) 를 RHEL4 + BIND 9.7 버전을 이용하여 셋팅하는 방법을 보여드렸습니다. 비록, 처음이라 인터넷을 뒤져서 찾고 따라한 수준에 불과했지만 그래도 한글자 한글자 꼼꼼하게 읽으면서 최대한 내것으로 만들기 위해 노력했습니다. 재미있으면서도 뭔가 해냈다는 뿌듯함이 느껴지는 작업 이였습니다.
By. sTricky
'LINUX' 카테고리의 다른 글
[Linux]FTP Server 구축하기 vsftpd이용 (0) | 2013.03.31 |
---|---|
DNS(Domain Name Server) + BIND 9.7 Setting, bind-9.7.2-P2.tar (0) | 2013.03.28 |
OEL5 설치하기 #02 (0) | 2013.03.28 |
OEL5 설치하기 #01 (0) | 2013.03.28 |
Solaris 설치하기 in VMware #02 (0) | 2013.03.27 |