DNS 서버 구축 실습
cent os 7 기준
1번 가상 머신에 dns 서버를 구축해봅시다.
<DNS 구축 전 세팅>
저의 경우 1 번 가상 머신의 ip 주소가 10.0.0.1이므로
vi /etc/dhcp/dhcpd.conf
dhcp 설정 파일에서 아래와 같이 dns 서버 주소 설정합니다.
저장 후
dns 서버 확인할 win10, win11 가상머신에서
ipconfig /release
ipconfig /renew
한번씩 해줍니다.
<DNS 서버 설치 및 설정 >
1. 설정 파일 들어갑니다.
/etc/name.conf
13번 21 번의 중괄호에 any 로 변경후 저장합니다.
- listen-on port 53{127.0.0.1; };
DNS port 53 에 어떤 IP 가 접근할 수 있는지 설정하는 것을 의미합니다.
불특정 다수의 유저에게 서비스할 땐 listen-on port 53 { any; };로 설정합니다.
사설 DNS 서버로 사용할 땐 서비스할 사설 IP 대역만을 고정시켜주어 설정해줘야 보안이 상승합니다.
- directory "/var/named";
실제로 서비스할 dns 의 zone 파일 디렉토리 경로 설정합니다.
- dump-file "/var/named/data/cache_dump.db";
DNS cache dump 파일 생성 경로
- allow-query {localhost; };
재귀 질의가 올 때 응답할지에 대한 설정 입니다. 보안상의 문제가 있을 경우 재귀쿼리를 받을 IP 대역만을 허용하며, 일반적으로 allow-query { any; }; 를 사용합니다.
2. 두번째 설정 파일 열기
/etc/named.rfc1912.zones
:19,23co$
설정파일의 19번째에서 23번째 사이 글 복사해서 끝에 붙여넣겠습니다.
[43-47번째 줄 해석]
ksm.monster 도메인명으로 요청이 들어오면 1 파일을 참조해서 질의 응답
MASTER / SLAVE 설정
master(1차 네임서버), slave(2차 네임서버)
zone 파일 설정 (정방향)
zone 파일 갱신 허용 (any or none)
[48-52번째 줄 해석]
10.0.0 대역으로 요청이 들어오면 2 파일을 참조해서 질의 응답
MASTER / SLAVE 설정
zone 파일 설정 (역방향)
zone 파일 갱신 허용 (any or none)
named.localhost 파일을 ksm.kr 파일에 복사합니다.
-> named.localhost을 샘플로 이용해서 ksm.kr 파일 생성
cp /var/named {named.localhost, ksm.kr}
로 쳐도 동일합니다.
정방향 조회는 named.localhost 복사하고
역방향 조회는 named.loopback 복사해서 붙여넣습니다.
$TTL 1D
-> Time To Live, 데이터의 수명 (1일)
다른 네임서버에서 자신의 정보를 가져갔을 때, 그 서버의 캐시에 정보가 얼마나 오랫동안 남아있을지를 결정하는 설정 (초 단위)
-> 도메인 IP을 변경했을 경우 다른 네임서버들은 적용되려면 1하루가 걸립니다.
@ IN SOA localhost. root.localhost. (
-> localhost. 네임 서버 주소 지정, root.localhost. 관리자 메일 주소
; Serial
-> 데이터 버전정보나 년월일시간으로 시리얼 값 설정
; Refresh
-> 2차 네임서버가 1차 네임서버를 재조회 하는 시간
; Retry
-> Refresh가 안될 경우 다시 재조회 하는 시간
; Expire
-> Retry이나 1차 네임서버에 데이터가 수정 및 삭제 되었을 경우 해당 정보 삭제하는 시간
; Minimum
-> TTL 값
IN NS ns1.ksm.monster. : 네임 서버 지정 끝에 꼭 '.' 붙입니다!!
IN MX 10 mx.ksm.monster. : 메일을 보낼 도메인 또는 주소
IN A 10.0.0.1 : ksm.monster 도메인을 찾아갈 IP 주소 (10.0.0.1 으로 찾음)
ns1 IN A 10.0.0.1 : ns1.ksm.monster 도메인을 찾아갈 IP주소 (10.0.0.1 으로 찾음)
www IN A 10.0.0.1 : www.ksm.monster 도메인을 찾아갈 IP주소 (10.0.0.1 으로 찾음)
ftp IN CNAME www. : ftp.ksm.monster는 www.ksm.monster 도메인으로 취급해달라는 뜻
wwww IN A 10.0.0.1 : wwww.ksm.monster 도메인을 찾아갈 IP주소 (10.0.0.1 으로 찾음)
ns2 IN A 10.0.0.1 : ns2.ksm.monster 도메인을 찾아갈 IP 주소 (10.0.0.1 으로 찾음)
mx. IN A 10.0.0.1 : mx.ksm.monster 도메인을 찾아갈 IP 주소 (10.0.0.1 으로 찾음)
# 특이사항 : 도메인 끝에다가는 항상 '.' 찍어서 마지막을 나타내야한다.
.을 안찍으면 ksm.monster.ksm.monster 로 인식함.
역방향 조회 파일 추가
- vi /etc/named/2
Serial
IN NS ksm.monster. :
1 IN PTR ns1.ksm.monster. : 10.0.0.1 주소에 대해서 ksm.monster 도메인과 매칭
참조: https://vilinux.tistory.com/m/entry/namedconf-%EC%84%A4%EC%A0%95
그 후 반드시 읽기권한 추가해줍니다.
chmod o+r /var/named/{1,2}
systemctl start named
이후 방화벽을 엽니다.