본문 바로가기

OS-서버/리눅스-유닉스

[리눅스] DNS(네임서버) 구축

반응형

DNS 서버 구축 (실습위주) - https://jdh5202.tistory.com/604

 

 

리눅스 버전 * CentOS Linux release 7.3.1611 (Core) *

 

 

 

< dns 설치 >

 

# yum -y install bind

named -V (버전 확인) - [ Bind 9.9.4-RedHat ]

 

 

 

< DNS 기본 설정 파일 수정 >

 

# vi /etc/named.conf 

listen-on port 53 { any; };  -- ipv4 DNS포트 허용

allow-query     { any; };     -- 질의요청 모두 허용       

recursion no;                  -- 보안설정 - 일반적인 질의응답은 불가 , 서버의 zone 파일에 있는 내용만 응답  

 

 

zone “youdomain.com” IN {           -- " IN 앞에 도메인이름 입력."  

    type master;

    file “

youdomain

.com.zone”;        -- 1차 네임서버(master)에 대한 설정은 youdomain.com.zone 파일에 포함 

    allow-update {none;};         

 

};


 

type : master(1차 네임서버) , slave(2차 네임서버) , hint(루트도메인 지정)


 

DNS서버의 recursion query 서비스는 DDoS 공격에 악용될 수 있다.

따라서 서비스 대상을 특정 호스트로 제한시키거나 중지시킨다.

 

- Option 항목의 "allow-recursion" 지시어를 이용하여, 

 

recursive query 서비스를 특정 호스트로 제한시킨다.

 

DNS 시스템에 recursion query 서비스를 용할 IP 범위가 192.168.57.0/24 일 경우, 

/etc/named.conf 에 아래와 같이 추가한다.

 

options {

acl trust { 192.168.57.0/24; };

allow-recursion { trust; };

};

 

 

 

 

< zone 파일 생성 >

 

# cd /var/named                                         --  zone 파일 , 정방향 설정 파일들이 위치함 -

# cp named.empty youdomain.com.zone   --  비어있는 zone 파일 복사

 

 

 

< zone 파일 수정 >

 

 # vi youdomain.com.zone 

  

$TTL 3H

@       IN SOA  @ root. (

                                        0        ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W     ; expire

                                        3H )    ; minimum

        NS      @

        A       192.168.0.111      <-- ipv4 도메인이 찾아갈 IP 주소                         

        AAAA    ::1                   <-- ipv6 ""

        MX      10      mail.Mdomain.com.

 

mail    A       192.168.253.131         <-- 메일서버 IP

www     A       192.168.253.129       <-- 웹서버 IP

 

 

 


 

 

zone 파일의 설명 - 출처 : http://webdir.tistory.com/163 [WEBDIR]
 
  • ; (세미콜론) : 주석을 의미함
  • $TTL : Time To Live의 약자로 domain.com의 호스트 이름을 질의해 갔을 때, 질의해 간 다른 네임서버가 해당 IP주소를 캐시에 저장하는 기간
(3H - 3시간, 1D - 1일, 10M - 10분, 8600 - 24시간, 600 - 10분)
  • @ : /etc/named.conf 파일에 정의된 youdomain.com을 의미하며 , youdomain.com.으로 고쳐써도 됨
  • IN : 클래스 이름으로 internet을 의미함
 
  • SOA : Start Of Authority의 약자로 권한의 시작을 뜻함. 또한, 괄호 안의 숫자는 시간을 의미함.
serial(버전 정보 - 년월일시간 순서로 셋팅) ,
refresh(상위 네임 서버에게 업데이트된 정보를 요청하는 간격) , 
retry(상위 네임 서버에 문제 발생시 재접속 간격) , 
expire(상위 네임 서버에 접속 못할 경우 이전의 정보를 파기하는 간격) , 
minimum(이 시간 이후에 정보가 삭제됨) 
 
H는 Hour, D는 Day, W는 Week의 약자임
 
  • NS : Name Server의 약자로 설정된 도메인의 네임 서버 역할을 하는 컴퓨터를 지정함
  • MX : Mail Exchanger의 약자로 메일 서버 컴퓨터를 설정함
  • IN MX 10 mail.Mdomain.com. : 10은 메일주소의 우선순위를 위한 숫자
  • A : 호스트 이름의 IP주소를 지정함
  • CNAME : 호스트 이름에 대한 별칭을 부여할 때 사용함
 
 

 

 

 

DNS 설정 파일 & zone 파일 검사 >

 

# chgrp named youdomain.com.zone   -- youdomain.com.zone의 그룹 권한을 named로 변경함

 


named-checkconf  [ DNS 설정 파일 경로 ]    -- DNS 설정 파일 검사 

named-checkzone  [도메인명] [존파일 경로]  -- zone 파일 검사


 

# named-checkconf /etc/named.conf     

# named-checkzone  youdomain.com /var/named/youdomain.com 

 
 

DNS 실행  && 방화벽 포트 허용 >

 

# systemctl start named.service    -- DNS 실행

 

# netstat -ln | grep 53    -- 53번(DNS) 포트가 열려있는지 확인

 

# firewall-cmd --permanent --zone=public --add-port=53/tcp    

# firewall-cmd --permanent --zone=public --add-port=53/udp

# firewall-cmd --reload

 

 

  

DNS 서버 테스트 >

 

> nslookup                 -- 호스트 네임의 IP를 알려주는 명령어

> www.youdmain.com 

> mail.youdomain.com

 

 

 

 

- DNS와 관련된 기본 용어 -

 

NS server [Domaim Name System]

> 도메인 네임을 IP 주소로 , IP 주소를 도메인 주소로 바꾸어주는 역할을 한다.

 

FQDN [Fully Qualified Domain Name] 

> 호스트 네임과 도메인을 합쳐서 부르는 용어로 , 도메인 풀네임이라고도 한다.

 

ex] FQDN이 jkb1112.jks.co.kr 이면

호스트네임은 jkb1112 , 도메인 네임은 jks.co.kr이다 

 
정방향 조회영역 
> 도메인 네임주소를 IP주소로 바꾸어 주는 역할
 
역방향 조회영역
> IP주소를 도메인 네임주소로 바꾸어 주는 역할
 

 

반응형