클라우드 기초/리눅스

DNS 서버 구축 실습

라라쇼퍼 2023. 6. 5. 15:51
반응형

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

 

이후 방화벽을 엽니다.

 

반응형