티스토리 뷰

1. DNS 이해 - http://titanic1997.tistory.com/12?category=793107

2. CentOS에 DNS server 구축해보기

3. 다중 DNS Server 구축해보기 - http://titanic1997.tistory.com/17

4. Master-slave DNS server 구축 - DNS server 구축시 일어나는 오류들 정리

5. DNS 서버의 위협 요인

 

 

 

앞서 DNS의 역할과 필요성, 구조, 동작원리와 DNS를 위협하는 요인들을 살펴봤습니다.

 

CentOS에 DNS server 구축해보기

 

DNS 서버를 설치하기 위한 과정을 짧게 요약하겠습니다.

 

1. DNS 서버 설치

2. 환경 설정

3. /etc/named.conf 파일 생성

4. zone 파일 및 cache 파일 생성

5. /var/named에 저장된 파일의 소유자를 named로 변경하기.

6. named 서버 동작

 

 

1. DNS 서버 설치

DNS 서버 구축을 위해서는 bind 패키지가 설치되어 있어야 합니다.

명령어를 위해 해당하는 패키지가 설치되어 있는지 확인해보겠습니다.

이를 확인하기 위한 명령어로는 두 가지가 있습니다.

 

$yum list bind

$rpm -qa | grep bind

 

 

확인해보면 bind 패키지가 설치되어 있지 않음을 알 수 있습니다.

설치합니다.

 

$ yum install -y bind

이 때 사용되는 -y라는 옵션은 설치 과정에서 진행되는 응답에 모두 "예"라고 대답한다는 뜻입니다.

윈도우에서 특정 프로그램을 설치해보면 중간에 예/아니오로 묻는 과정이 있습니다. 이와 같은 내용입니다.

 

 

설치 후 yum list bind 명령어로 확인해봤습니다.

 

2. 환경설정

 

2-1. /etc/resolv.conf

/etc/resolv.conf는 DNS 서버에 대한 환경설정을 하는 파일입니다.

해당하는 파일에 DNS 서버를 로컬 DNS 서버의 IP로 변경해야 합니다.

저는 지금 실행 중인 리눅스 자체를 DNS 서버로 만들 것이므로 리눅스의 IP로 설정하겠습니다.

nameserver [로컬 DNS 서버의 IP]

형식으로 변경해주면 됩니다.

 

 

3. /etc/named.conf 파일 생성

/etc/named 밑에 위치하는 named.conf 파일은 named 서비스가 시작될 때 가장 먼저 읽히는 마스터 파일입니다.

 

zone 파일에 대한 호출 정보를 가집니다.

구성은 다음과 같습니다.

zone - 질의를 구체적인 파일과 연결해주며, DNS 서비스의 근간

options - zone파일의 경로나 덤프 파일의 이름을 지정

key - 마스터서버와 슬레이브 서버간의 정보를 암호화

 

zone 영역의 설정은 다음과 같이 합니다.

zond "서비스 대상 도메인" IN {

type {master | slaver | hint};

file "zone파일명";

allow-update { none | 2차 DNS 서버 IP };

masters  {master DNS 서버 IP};

};

 

저는 지금 자기 자신을 로컬 DNS 서버로 하는 DNS 서버를 구축하고 있습니다. 따라서 필수로 설정해야 하는 항목은 루트 존과 제가 설정하고자 하는 도메인입니다.

 

임의로 도메인은 ast015.org로 하겠습니다.

 

제가 임의로 정한 도메인을 예시로 zone 파일을 작성해보면 다음과 같습니다.

 

zone "." {

type hint;

file "named.ca";

};

 

zone "ast015.org" {

type master;

file "ast015.zone";

allow-update {none;};

};

 

로컬 DNS 서버에 정보가 없으면 루트 서버가 필요하므로 루트 존은 반드시 설정해야 하는 항목인 것입니다.

부가적으로 로컬 존도 설정할 수 있지만 설정하지 않아도 서버를 구축하는데 문제가 없으므로 생략하겠습니다.

 

이제 실제 zone 파일을 작성해보겠습니다.

zone파일의 구성은 zone, options, key였습니다.

지금 master-slave 서버를 구축하고자 하는 것이 아니므로 key를 제외하고

options을 사용해 zone파일이 들어있는 파일의 경로를 지정해주고

zone 영역을 작성해야 합니다.

 

options {

directory "/var/named";

};

 

zone "." {

type hint;

file "named.ca";

};

 

zone "ast015.org" {

type master;

file "ast015.zone";

allow-update {none;};

};

 

options에 zone파일의 경로를 /var/named로 설정해주었으므로 해당 경로로 이동하여 zone파일을 작성해야 합니다.

 

 

4. zone 파일 및 cache 파일 생성

zone파일의 위치는 두 가지가 있습니다.

chroot의 유무로 나뉩니다.

chroot가 없을 경우,

/var/named에 저장하며

있을 경우

/var/named/chroot/var/named에 저장합니다.

 

앞서 /etc/named.conf 파일에 ast015.org 도메인의 zone파일의 이름을 ast015.zone으로 설정하였으므로 ast015.zone을 파일명으로 해야합니다.

 

 

경로를 이동해 chroot가 설치되어 있는지 확인해보니, 설치되어 있지 않아 /var/named 밑에 zone파일을 생성하겠습니다.

 

zone파일을 작성하기에 앞서, zone 작성시 사용되는 DNS 레코드의 종류를 정리해보겠습니다.

 

 종류

내용 

 A(address)

호스트 이름 하나에 IP 주소가 여러 개 있을 수도, IP 주소 하나에 호스트 이름이 여러 개 있을 수도 있다. 이를 정의하는 레코드 유형 

PTR(pointer)

A 레코드와 상반된 개념으로, A코드는 도메인에 대해 IP주소를 부여한다. PTR 레코드는 IP 주소에 대해 도메인명을 매칭한다. 

NS(name server)

DNS 서버를 가리키며, 각 도메인에 적어도 한 개 있어야 함 

MX(mail exchanger)

도메인 이름으로 보낸 메일을 받는 호스트 목록으로 지정 

CNAME(Canonical name)

호스트의 다른 이름을 정의하는 데 사용 

SOA(start of authority)

도메인에 대한 권한이 있는 서버 

HINFO(hardware info)

해당 호스트의 하드웨어 사양을 표시 

ANY(all)

DNS 레코드를 모두 표시함 

 

저는 zone 파일 작성 시,

우선 SOA 레코드로 도메인에 대한 권한이 있는 서버를 표시하고

반드시 지정해야 하는 NS로 DNS 서버를 지정하고

A로 호스트 주소를 지정해준 뒤

CNAME으로 호스트의 다른 이름을 정의하겠습니다.

다른 레코드는 사용하지 않을 것입니다.

 

 


이 때 작성된 zone 파일을 수정할 경우 Serial 번호를 증가시켜줘야 합니다. 그렇지 않으면 갱신된 정보가 전달되지 않으므로 각별히 유의해야 합니다.

 

zone파일 작성 후 service named restart라는 명령어로 변경된 내용이 적용되도록 하겠습니다.

 

정상적으로 잘 적용된 것을 확인할 수 있습니다.

 

그런데 zone 파일이나 /etc/named.conf 설정을 실수하면

다음과 같이 named 서비스가 start 되지 않을 수도 있습니다.

오타가 있지는 않은지, 빼먹은 부분이 있지는 않은지 꼼꼼하게 확인해야 합니다. 저같은 경우에는 빼먹은 부분이 있어 오류가 났었고, 수정했습니다.

 

5. /var/named에 저장된 파일의 소유자를 named로 변경하기. - 생략

 

6. named 서버 동작

네임 서버를 구축하는 과정이 전부 끝났습니다.

host 명령어를 사용해 지정한 도메인의 IP 주소가 정확하게 뜨는지 확인하는 것으로 구축하는 과정을 마칩니다.

 

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함