CentOS7 DNS 서버 구축 2편 - DNS Master 서버 구축
개념, 원리에 대해 알고싶으신 분은 아래 URL로 들어가서 보고 와주시면 됩니다.
리눅스 DNS 서버 구축 #1 -DNS 서버 개념, 원리
[ 서버 구축 환경 ]
Master 서버 IP : 192.168.5.3
Slave 서버 IP : 192.168.5.4
[ Master DNS 구축 순서 ]
workstation 가상사설망이므로 Reverse Zone 설정은 하지 않았습니다.
1. Bind, Bind-utils 설치
2. Name Server 설정 파일
/etc/named
/etc/named.rfc1912.zones
/var/named/ Zone 관련 파일
3. 설정 파일 문법 오류 체크
4. DNS Firewall Port Open
5. named 대몬 재실행, 활성화
[ Bind 설치 ]
[root@localhost ~]# yum -y install bind bind-utils
[root@localhost ~]# rpm -qa | grep bind
bind-9.11.4-9.P2.el7.x86_64
bind-pkcs11-utils-9.11.4-9.P2.el7.x86_64
bind-export-devel-9.11.4-9.P2.el7.x86_64
bind-devel-9.11.4-9.P2.el7.x86_64
bind-export-libs-9.11.4-9.P2.el7.x86_64
bind-utils-9.11.4-9.P2.el7.x86_64
bind-license-9.11.4-9.P2.el7.noarch
bind-libs-lite-9.11.4-9.P2.el7.x86_64
bind-pkcs11-libs-9.11.4-9.P2.el7.x86_64
bind-lite-devel-9.11.4-9.P2.el7.x86_64
bind-sdb-9.11.4-9.P2.el7.x86_64
bind-dyndb-ldap-11.1-6.el7.x86_64
bind-pkcs11-devel-9.11.4-9.P2.el7.x86_64
bind-chroot-9.11.4-9.P2.el7.x86_64
bind-libs-9.11.4-9.P2.el7.x86_64
bind-pkcs11-9.11.4-9.P2.el7.x86_64
bind-sdb-chroot-9.11.4-9.P2.el7.x86_64
[root@localhost ~]# systemctl restart named
[root@localhost ~]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[ 설정 파일 편집 ]
1. /etc/named.conf
[root@localhost ~]# vi /etc/named.conf
아래 빨간 네모 부분을 아래와 같이 수정해주자.
바꾼 부분만 설명드리겠습니다.
listen-on port 53 { 127.0.0.1; };
DNS Port인 53번으로 어떤 IP가 접근할 수 있는지에 대한 설정이다.
127.0.0.1은 자기 자신이므로 any;로 변경해주어 누구든지 해당 포트로 접근할 수 있도록 설정
listen-on-v6 port 53 { ::1; };
위와 동일. IPv6 사용 안하므로 none이라고 해버림
allow-query { localhost; };
Query Request가 들어올 시 Allow(허용)할지 안하지를 설정하는 곳.
any로 변경해주자.
allow-transfer { localhost; 192.168.5.4; };
원래 없는데 Slave 서버를 운용할 예정이라면 추가해주자.
192.168.5.4; 를 추가해줬음
recursion yes:
Recursion이 '반복'이란 뜻이므로 Query에 대한 요청을 할지 안할지 설정.
사설 DNS 서버인 경우 no를 하며, 그 외에 경우는 yes를 설정해줘야함.
이번 실습은 단지 'Domain Name -> IP Address'로 변경시켜주는 Name Server 구축이 목적이지
Local Name Server 구축의 목적이 아니므로 no를 하자.
추후 yes로 바꾸면 어떤식으로 변하는지도 설명하겠음
2. /etc/named.rfc1912.zones 설정
[root@localhost ~]# vi /etc/named.rfc1912.zones
파일 맨 아래에 내용 추가
zone "testdns.com" IN { //
type master; // master 서버
file "inverse.testdns.com.zone"; // 'testdns.com.zone'을 /var/named/에 만들어줘야 함
allow-update { none; }; // 업데이트 ㄴㄴ
allow-transfer { 192.168.5.4; }; // transfer slave에게 허용
};
캡쳐본임
[ /var/named/ 내에서 Zone 파일 생성 후 설정 ]
1. 디렉터리 이동
named.empty나 named.localhost에서 Zone 파일 설정 예시를 볼 수 있다.
/var/named/디렉터리 내에 /etc/named.rfc1912.zones파일 설정할 당시 파일이름 선언해준 것을 이곳에 생성 후 설정한다.
[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
chroot data dyndb-ldap named.empty named.loopback
chroot_sdb dynamic named.ca named.localhost slaves
[root@localhost named]#
Zone 파일 설정 내용이다.
출처 : 후티 블로그
2. Zone File 설정
[root@localhost named]# touch testdns.com.zone
[root@localhost named]# vi testdns.com.zone
[ 설정 파일 문법 오류 체크 ]
1. /etc/named.conf
아무런 말이 없으면 정상임
[root@localhost named]# named-checkconf /etc/named.conf
[root@localhost named]#
2. Zone 파일
뭔가 오류가 있음. mail.testdns.com에 address 레코드가 없다..
[root@localhost named]# named-checkzone testdns.com /var/named/testdns.com.zone
zone testdns.com/IN: testdns.com/MX 'mail.testdns.com' has no address records (A or AAAA)
zone testdns.com/IN: loaded serial 20200407
OK
수정 전
수정 후
정상으로 바뀜
[root@localhost named]# named-checkzone testdns.com /var/named/testdns.com.zone
zone testdns.com/IN: loaded serial 20200407
OK
[ Firewall 설정 ]
DNS는 보통 udp로 작동하지만 tcp 포트도 추가해주었다.
[root@localhost named]# firewall-cmd --permanent --zone=public --add-port=53/udp
success
[root@localhost named]# firewall-cmd --permanent --zone=public --add-port=53/tcp
success
[root@localhost named]# firewall-cmd --reload
success
[root@localhost named]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: dhcpv6-client ssh
ports: 22/tcp 53/tcp 53/udp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[ 대몬 재실행 및 활성화 ]
[root@localhost named]# systemctl restart named
[root@localhost named]# systemctl enable named
이로써 일단 Master Server 구축은 완료했다.
다음편에는 Slave Server 구축과 nslookup을 통해 dns 서버가 잘 작동되고 있는지 확인해보겠다.
'OS,Network,Container' 카테고리의 다른 글
CentOS7 Zabbix 4.0 모니터링 툴 설치, 구성하기 #1 (0) | 2020.04.24 |
---|---|
CentOS7 DNS 서버 구축 #3 - DNS Slave 서버 구축 (2) | 2020.04.21 |
CentOS7 DNS 서버 구축 #1 - Name Server 개념, 원리 (0) | 2020.04.21 |
CentOS7 APM 서버 구축 (Apache, PHP7.3 , MySQL ) (4) | 2020.04.18 |
CentOS7 swap 파티션 추가, LABEL 작업 (4) | 2020.04.18 |