마스터와 슬레이브 네임 서버 구축
슬레이브 네임 서버는 마스터 네임서버가 제공하는 도메인에 대한 정보를 그대로 저장해 마스터 네임서버가어떤 이유로 인해
정보를 제공하지 못하는 경우 마스터 네임 서버를 대신해 서비스를 클라이언트에게 제공하는 네임서버를 의미한다.
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
/etc/named.rfc1912.zones 파일에서 정보를 전달할 존을 선택한 후 allow-transter옵션에 슬레이브 서버의 IP주소를 (2)#vim /var/named/taehoon.zone
도메인 taehoon.com에 대한 슬레이브 네임 서버 설정을 위해 데이터 베이스 파일을 열어 슬레이브 네임서버의 IP를 추가한다. 추가 도메인 linux.com의 존 파일에도 동일하게 추가하기 #vim /etc/named.rfc1912.zones
변경된 정보가 적용되도록 네임서버 데몬을 재시작 (4)cat /var/log/messages | tail -2 마스터 네임 서버가 taehoon.com에 대한 정보를 제공할 준비가 되어 있다는 것을 확인 할 수 있다. 슬레이브 네임 서버 설정 Server-B (Slave-NameServer) (1) yum install bind bind-utils bind-libs bind-chroot (2) vim /etc/named.conf
named.conf 기본 설정 변경 (3)vim /etc/named.rfc1912.zones
type slave; file "slaves/taehoon.zone"; master { 100.100.100.110; }; ifcfg-eth0 ifcfg-eth0 setenforce 0 setenforce 0
슬레이브 네임 서버 설정 Server-B (1) cd /var/named (2) service named restart (3) ls -l (4) cd slaves (5) ls -l
슬레이브 네임 서버 테스트 Server-B (Slave) (1) vim /etc/resolv.conf 마스터 네임 서버의 IP주소를 추가해 슬레이브 서버의 리졸버가 마스터 서버와 슬레이브 서버에서 동작하도록 설정한다. (2) dig @ns.taehoon.com taehoon.com ns
taehoon.com의 현재 동작하고 있는 네임서버가 무엇인지 확인 (1)service named stop (1) dig @ns2.taehoon.com www.taehoon.com
www.taehoon.com에 대한 정보를 제공하는 서버가 슬레이브 네임 서버의 IP주소임을 확인한다. (2) nslookup
nslookup 명령어를 이용해 정방향 조회 시도 후 확인 DNS서버의 고급 기능 ACL을 사용해 클라이언트의 네임 서버로 접근을 허용할지, 아니면 거부 할지를 결정할 수 있다. 네트워크 대역이나 호스트들을 명칭으로 지정하여 사용하는 방법이다. Server-A (Master) (2)allow-query { trusted; }; // trusted를 optinos 위에 선언해야 한다. 슬레이브 네임 서버를 구축하는 경우 IP주소를 지정하고 acl slave를 만들어서 allow-transfer에서 ip대신 acl이름 (slave)을 사용할 수 있다. ACL 사용하기 (1) acl "blacklist" { 100.100.100.140; }; vim /etc/named.conf (2) blackhole { blacklist; };
주요 옵션 Forwarders 네임서버 Forward only forward first 구글 공개 DNS서버 (1) vim /etc/named.conf 추가하기 캐시된 데이터에 접근 가능한 네트워크 주소를 acl trusted로 지정이 가능
(1)#vim /etc/named.rfc1912.zones
입력 해 해당 도메인에 대한 정보를 전달 받을 수 있도록 허용한다.
(3)service named restart
named 정지 중: [ OK ]
named 시작 중: [ OK ]
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)
bind 패키지 설치
마스터와 동일하게 taehoon.com에 해당하는 존을 생성한다.
type은 master가 아닌 slave로 해당 도메인에 대한 정보를 마스터 서버로부터 제공 받을 수 있도록 설정한다.
마스터 서버로부터 해당 도메인에 대한 정보를 제공받는 경우 저장될 디렉토리와 파일명을 지정해야 한다.
마스터 서버의 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
DNS1=100.100.100.110 DNS1=100.100.100.110
DNS2=100.100.100.120 DNS2=100.100.100.120
service iptables stop service iptables stop
service network restart service network restart
service named restart service named restart
Sever-A(Master)
(1) tail -4 /var/log/messages
nameserver 100.100.100.110
nameserver 100.100.100.120
Server-A (Master)
슬레이브 네임 서버가 정보를 제공 하는지 테스트를 위해 마스터 네임 서버의 데몬을 중지시킨다.
Server-B (Slave)
>www.taehoon.com
>web.taehoon.com
>ftp.taehoon.com
>ns2.taehoon.com
ACL( Access Control List)
ACL은 네임서버로의 접근을 제어하기 위해 사용하는 Bind 기능이다.
(1)vim /etc/named.conf
ACL설정을 위해 named.conf 파일을 수정한다
acl "trusted" { localhost; 100.100.100.0/24; };
키워드 acl를 사용해 이름 "trusted" 생성 후 네트워크 주소 혹은 IP주소를 추가하여 allow-query에
"trusted"를 적용을 하면 해당 클라이언트의 요청만 허용하도록 설정할 수 있다.
ex) allow-transfer { slave; };
acl "slave" { 100.100.100.120; };
allow-transfer 와 함께 사용하면 각 도메인의 슬레이브 네임서버를 지정할 필요가 없으며, named.rfc1912.zones 파일의
즉, acl slave에 지정된 서버에게만 도메인 정보가 담긴 파일 전송을 허용한다는 의미가 된다.
네임 서버로의 불법적 접근을 시도하는 네트워크 주소나 IP주소를 로그에서
발견 했다면 이렇게 blacklist를 생성해 해당 정보를 지정하여 차단 할 수 있다.
blacklist옵션과 함께 사용하면 해당 acl 목록에 지정된 클라이언트로부터 오는 모든 요청을 무시하게 된다.
Forwarding 네임 서버
Forwarders를 설정 하여 해당 네임 서버가 직접 도메인 정보를 찾는 것이 아니라 클라이언트의
모든 요청을 Forwarders에 지정된 서버로 전달 하여 해당 서버가 요청을 처리하게 설정한 네임 서버를 뜻한다.
forward only
forward first
1차 8.8.8.8
2차 8.8.4.4
forwarders 서버들이 응답하지 않을 경우 다른 서버에게 요청을 보내지 않는다.
forwarders 서버들이 응답 하지 않을 경우 현재 네임 서버가 직접 정보를 찾는다는 의미이다.
1차 8.8.8.8
2차 8.8.4.4
allow-query-cache { trusted; };
forwarders { 8.8.8.8; 8.8.4.4; };
forward only;
'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 |