본문으로 바로가기

Day-33 DNS

category Linux 2017. 1. 26. 12:27

마스터와 슬레이브 네임 서버 구축

 

슬레이브 네임 서버는 마스터 네임서버가 제공하는 도메인에 대한 정보를 그대로 저장해 마스터 네임서버가어떤 이유로 인해
정보를 제공하지 못하는 경우 마스터 네임 서버를 대신해 서비스를 클라이언트에게 제공하는 네임서버를 의미한다.

 

Master 네임서버 (Primary, Main)
Slave 네임서버 (Secondary, Backup)

 

마스터 서버에서 도메인에 대한 설정 정보를 슬레이브 서버에게 전달 할 때 서로에 대한 인증이 필요하며,
이때 사용하는 방법은 2가지로 IP주소를 사용하는 방법과 TSIG(Transaction Signatures)를 사용하는 방법이 있다

 

 

서버구축

 

서버A                                    서버B
TELNET
SSH
VNC
DHCP서버
NTP
DNS(M)                                DNS(S)
WEB
FTP
NFS
SAMBA
PXE
KICKSTART


마스터 네임 서버 설정
Server-A & Server-B
#service iptables stop
#setenforce 0

 

Server-A


(1)#vim /etc/named.rfc1912.zones


 

 

/etc/named.rfc1912.zones 파일에서 정보를 전달할 존을 선택한 후 allow-transter옵션에 슬레이브 서버의 IP주소를
입력 해 해당 도메인에 대한 정보를 전달 받을 수 있도록 허용한다.

 

(2)#vim /var/named/taehoon.zone
  

 

 

도메인 taehoon.com에 대한 슬레이브 네임 서버 설정을 위해 데이터 베이스 파일을 열어 슬레이브 네임서버의 IP를 추가한다.

 

추가 도메인 linux.com의 존 파일에도 동일하게 추가하기

#vim /etc/named.rfc1912.zones

 


 


(3)service named restart
named 정지 중:                                             [  OK  ]
named 시작 중:                                             [  OK  ]

변경된 정보가 적용되도록 네임서버 데몬을 재시작

 

(4)cat /var/log/messages | tail -2
Jan 25 18:35:18 Server-A named[2562]: running
Jan 25 18:35:18 Server-A named[2562]: zone taehoon.com/IN: sending notifies (serial 20170124)

 

마스터 네임 서버가 taehoon.com에 대한 정보를 제공할 준비가 되어 있다는 것을 확인 할 수 있다.

 

슬레이브 네임 서버 설정

 

Server-B (Slave-NameServer)

 

(1) yum install bind bind-utils bind-libs bind-chroot
bind 패키지 설치

 

(2) vim /etc/named.conf


 

 

named.conf 기본 설정 변경

 

(3)vim /etc/named.rfc1912.zones


 

 


마스터와 동일하게 taehoon.com에 해당하는 존을 생성한다.

 

type slave;
type은 master가 아닌 slave로 해당 도메인에 대한 정보를 마스터 서버로부터 제공 받을 수 있도록 설정한다.

 

file "slaves/taehoon.zone";
마스터 서버로부터 해당 도메인에 대한 정보를 제공받는 경우 저장될 디렉토리와 파일명을 지정해야 한다.

 

master { 100.100.100.110; };
마스터 서버의 IP주소를 지정해 도메인 정보를 제공 받을 수 있도록 한다.

 

 


중간 설정 확인

 
Server-A                                                                                  Server-B
vim /etc/resolv.conf                                                                 vim /etc/resolv.conf
nameserver 100.100.100.110                                                      nameserver 100.100.100.110
nameserver 100.100.100.120                                                     nameserver 100.100.100.120

 

ifcfg-eth0                                                                                 ifcfg-eth0
DNS1=100.100.100.110                                                               DNS1=100.100.100.110
DNS2=100.100.100.120                                                              DNS2=100.100.100.120

 

setenforce 0                                                                              setenforce 0
service iptables stop                                                                  service iptables stop
service network restart                                                             service network restart
service named restart                                                                service named restart

 

 

슬레이브 네임 서버 설정

 

Server-B

 

(1) cd /var/named

 

(2) service named restart

 

(3) ls -l

 

(4) cd slaves

 

(5) ls -l


Sever-A(Master)


(1) tail -4 /var/log/messages

 

 

 

슬레이브 네임 서버 테스트

 

 

Server-B (Slave)

 

(1) vim /etc/resolv.conf
nameserver 100.100.100.110
nameserver 100.100.100.120

 

마스터 네임 서버의 IP주소를 추가해 슬레이브 서버의 리졸버가 마스터 서버와 슬레이브 서버에서 동작하도록 설정한다.

 

(2) dig @ns.taehoon.com taehoon.com ns

 

 

 

 

taehoon.com의 현재 동작하고 있는 네임서버가 무엇인지 확인


Server-A (Master)

 

(1)service named stop
슬레이브 네임 서버가 정보를 제공 하는지 테스트를 위해 마스터 네임 서버의 데몬을 중지시킨다.


Server-B (Slave)

 

(1) dig @ns2.taehoon.com www.taehoon.com

 

 

 

www.taehoon.com에 대한 정보를 제공하는 서버가 슬레이브 네임 서버의 IP주소임을 확인한다.

 

(2) nslookup
         >www.taehoon.com
         >web.taehoon.com
         >ftp.taehoon.com
         >ns2.taehoon.com

 

nslookup 명령어를 이용해 정방향 조회 시도 후 확인

 

DNS서버의 고급 기능
ACL( Access Control List)
ACL은 네임서버로의 접근을 제어하기 위해 사용하는 Bind 기능이다.

 

ACL을 사용해 클라이언트의 네임 서버로 접근을 허용할지, 아니면 거부 할지를 결정할 수 있다.

 

네트워크 대역이나 호스트들을 명칭으로 지정하여 사용하는 방법이다.

 

Server-A (Master)
(1)vim /etc/named.conf
ACL설정을 위해 named.conf 파일을 수정한다

 

(2)allow-query { trusted; }; // trusted를 optinos 위에 선언해야 한다.
acl "trusted" { localhost; 100.100.100.0/24; };
 키워드 acl를 사용해 이름 "trusted" 생성 후 네트워크 주소 혹은 IP주소를 추가하여 allow-query에
 "trusted"를 적용을 하면 해당 클라이언트의 요청만 허용하도록 설정할 수 있다.


ex) allow-transfer { slave; };
      acl "slave" { 100.100.100.120; };

 

슬레이브 네임 서버를 구축하는 경우 IP주소를 지정하고 acl slave를 만들어서
allow-transfer 와 함께 사용하면 각 도메인의 슬레이브 네임서버를 지정할 필요가 없으며, named.rfc1912.zones 파일의

allow-transfer에서 ip대신 acl이름 (slave)을 사용할 수 있다.
즉, acl slave에 지정된 서버에게만 도메인 정보가 담긴 파일 전송을 허용한다는 의미가 된다.

 

ACL 사용하기

 

(1) acl "blacklist" { 100.100.100.140; };

 

vim /etc/named.conf
네임 서버로의 불법적 접근을 시도하는 네트워크 주소나 IP주소를 로그에서
발견 했다면 이렇게 blacklist를 생성해 해당 정보를 지정하여 차단 할 수 있다.

 

(2) blackhole { blacklist; };
blacklist옵션과 함께 사용하면 해당 acl 목록에 지정된 클라이언트로부터 오는 모든 요청을 무시하게 된다.

 

 


Forwarding 네임 서버


Forwarders를 설정 하여 해당 네임 서버가 직접 도메인 정보를 찾는 것이 아니라 클라이언트의
모든 요청을 Forwarders에 지정된 서버로 전달 하여 해당 서버가 요청을 처리하게 설정한 네임 서버를 뜻한다.

 

주요 옵션
forward only
forward first

 

Forwarders 네임서버
1차 8.8.8.8
2차 8.8.4.4

 

Forward only
forwarders 서버들이 응답하지 않을 경우 다른 서버에게 요청을 보내지 않는다.

 

forward first
forwarders 서버들이 응답 하지 않을 경우 현재 네임 서버가 직접 정보를 찾는다는 의미이다.

 

구글 공개 DNS서버
1차 8.8.8.8
2차 8.8.4.4

 

(1) vim /etc/named.conf

 

추가하기


allow-query-cache { trusted; };
forwarders { 8.8.8.8; 8.8.4.4; };
forward only;

 

캐시된 데이터에 접근 가능한 네트워크 주소를 acl trusted로 지정이 가능

 

 

'Linux' 카테고리의 다른 글

Day-35 VSFTP (미완)  (0) 2017.01.30
Day-34 FTP  (0) 2017.01.27
Day-32 DNS  (0) 2017.01.25
Day-31 DNS  (0) 2017.01.24
Day-30 DHCP  (0) 2017.01.23