본문 바로가기
카테고리 없음

[Linux] CentOS 7 DNS 서버 구축 & 도메인 설정

by 떵해이 2020. 10. 23.
300x250

DNS 서버 구축 (CentOS 7)

일단 bind 패키지가 다운되어 있는지 확인 후 설치하도록 합시다.

 

# rpm -qa | grep bind 확인 후 

# yum -y install bind 설치 (깔려있어도 또 설치하면 업데이트 됩니다.)

 

 

# rpm -qa | grep bind 설치 확인

(더 깔려있으실수도 있습니다.)

 


DNS는 잘알려진 포트 번호가 53번입니다. 프로토콜은 tcp, udp 둘다 사용합니다.

먼저 방화벽에서 열어주도록 하겠습니다.

# firewall-cmd --permanent --add-port=53/tcp    // 53번 포트 tcp로 추가

# firewall-cmd --permanent --add-port=53/udp    // 53번 포트 udp로 추가

# firewall-cmd --permanent --add-service=dns    // dns서비스 추가


설치가 끝나고 방화벽 설정이 완료되었으면 # vi /etc/named.conf 파일을 열어줍니다.

 

 

# :set nu 명령어로 번호를 붙여서 설명하겠습니다.

13번째 줄은 DNS 서비스 제공 받을 IP를 말합니다. 괄호 안에 IP를 any로 변경해줍니다.

14번째 줄은 none으로 변경해줍니다. (ipv6 는 사용하지 않기 때문)

21번째 줄은 쿼리를 주고 받을 수 있는 IP를 말합니다. 이것도 any로 변경해줍니다.

 

 

13번째 줄 // 53번 port로 오는 어떠한 것이든 듣는다.

14번째 줄 // ipv6 사용 안하겠다.

21번째 줄 // 어떠한 곳에서 요청하는 쿼리든 허용하겠다.

# :wq 저장하시고 나가주시면 됩니다.


이제 도메인 생성을 해봅시다.

 

# vi /etc/named.rfc1912.zones 에 들어가줍니다.

 

 

# shift + g 를 눌러 맨 아래행으로 이동해서 도메인을 추가합니다. 

zone "study.com" IN {    // 추가하고 싶은 도메인 (zone이름 기억하세요)                                (정방향)

           type master;    // 타입은 master(주서버) 와 slave(보조서버) 두 가지이다. 번외로 캐시서버도 존재한다.

           file "study.com.zone";    // 파일 이름 ( /var/named 안에 파일을 꼭 만들어줘야 합니다. )

           allow-update { none; };    // 업데이트 허가 요청

           allow-transfer { none; };    // 파일 변경 허가 요청

};

zone "10.10.10.in-addr.arpa" IN {    // 본인 IP를 거꾸로 한 것  (zone이름 기억하세요)         (역방향)

           type master;                   // 필자가 IP를 10.10.10.10으로 맞춰놔서 그렇다.

           file "ipname.zone";       // 예를 들면 192.168.10.3이면 10.168.192만 입력하면 된다.

           allow-update { none; };

           allow-transfer { none; };

};

# :wq 저장하고 나갑니다.

정방향: Domain -> IP

역방향: IP -> Domian

 

 

이제 설정이 잘되었는지 확인을 해봅니다.

# named-checkconf /etc/named.conf 명령어로 

# named-checkconf [검사할 파일]   // DNS설정 시 /etc/named 안에 파일을 점검해주는 명령어

# named-checkzone [1912.zones 파일에 설정된 zone 이름] [zone 파일 경로]    // zone파일을 검사해주는 명령어


이제 위에 설정한 것처럼 zone 파일을 만들어봅시다.

 

# cd /var/named    // 경로 이동

# ls -al    // 안에 파일 보기

안에 있는 저 2개의 파일을 이용해보겠습니다.

 

 

위에서 zone 파일 (정방향, 역방향) 2개만들었으니까 zone 파일도 2개 만들어야 합니다.

# cp named.localhost study.com.zone    // 위에 정방향 파일 이름으로 복사 

# cp named.loopback ipname.zone   // 위에 역방향 파일 이름으로 복사

 


**수정할 때 꼭 도메인명 끝에 . 찍는거 잊으면 안됩니다. (최상위 root표시 해야합니다.)**

 

정방향 파일 수정

# vi study.com.zone 복사로 만든 파일을 들어가서 수정모드로 전환합니다. 

 

 

처음 들어가면 아래와 같은 화면이 나옵니다.

 

 

아래의 그림과 같이 수정해준다. 물론 본인이 위에서 설정한 도메인 이름으로 설정한다.

IP도 본인 IP로 설정하면 된다.

 

위의 그림을 설명하겠습니다.

▷ TTL (Time To Live) : 데이터가 유지될 수 있는 시간(1일)

▷ 첫째줄 @ , study.com. : 이 도메인을 기본 도메인으로 사용하겠다는 선언

▷ IN : 인터넷

▷ SOA (Start Of Authority) : 인증 시작

▷ root : 관리자 메일주소

▷ serial : 데이터 버전 수정 횟수

▷ refresh : 2차 nameserver가 1차 nameserver 재조회하는 시간 (새로고침)

▷ retry : refresh가 안될 경우 다시 재조회하는 시간 (재시도)

▷ expire : retry나 1차 nameserver에 데이터가 수정 및 삭제 되었을 경우 해당 정보 삭제하는 시간 (만료기간)

▷ minimum : 최소 유지 기간

▷ NS : nameserver

▷ A : 호스트 레코드(도메인을 IP로 연결, 쉽게 IP주소를 말함)

▷ AAAA : IPv6용

▷ PTR : A의 역방향 레코드(A레코드 하나당 똑같이 하나씩 존재해야함)

 

           IN NS www.study.com. [본인 도메인]    // nameserver 자체 설정

           IN A   10.10.10.10 [본인 IP]                // nameserver 자체 설정

www     IN A   10.10.10.10                           // nameserver가 관리하는 각종 서버들의 아이피를 관리해준다.

abc     IN  A   10.10.10.11   해석: abc.study.com 도메인을 찾을 경우 IP 주소 10.10.10.11으로 찾겠다 라는 뜻입니다.

 

 

역방향 파일 수정

# vi ipname.zone 명령어로 들어가서 수정모드로 전환합니다.

 

 

아래와 같이 수정을 해봅시다.

 

위에 설명을 했던 걸 몇 가지만 짚고 넘어가겠습니다.

10     IN PTR    study.com. 해석: 10.10.10.10 주소에 대해서 study.com 도메인과 매칭

10     IN PTR    www.study.com. 해석: 10.10.10.10 주소에 대해서 www.study.com  도메인과 매칭

11     IN PTR    abc.study.com. 해석: 10.10.10.11 주소에 대해서 abc.study.com 도메인과 매칭

 

위에서 A코드가 3개이므로 PTR코드도 3개여야 한다.

 

 

수정이 끝났으면 zone파일에 소유권을 줍니다. (권한 공부할때 자세히 다루도록 하겠습니다.)

# chown root:named study.com.zone

# chown root:named ipname.zone

 

 

# named-checkconf /etc/named.conf 명령어로 수정이 잘되었는지 검사를 해줍니다.

 

 

마지막으로 zone 검사만 확인하면 됩니다.

# named-checkzone study.com /var/named/study.com.zone

# named-checkzone 10.10.10.in-addr.arpa /var/named/ipname.zone

# named-checkzone [zone에 입력한 이름] [zone경로] 

OK가 나오시면 서비스가 준비 완료가 됩니다.

 

 

# systemctl restart named 명령어로 재시작해줍니다.

 

 

마지막으로 # vi /etc/resolv.conf 들어가셔서

# nameserver 10.10.10.10    // 호스트IP로 DNS서버를 구축

# nameserver 168.126.63.1    // 1번 DNS 가 안될때 슈퍼 DNS서버(KT DNS)를 사용

설정을 해줘야 다른 네트워크에 있는 IP에 해당하는 도메인을 찾아 매칭시켜 줄 수 있습니다.

 

 

설정 한 후에는 습관적으로 # systemctl restart network 하시면 됩니다. (재부팅 후 resolv.conf 확인)

혹시나 resolv.conf 파일이 초기화현상이 된다면 it-serial.tistory.com/9 여기를 참조하시면 됩니다.

 

 

# nslookup 명령어를 사용해 주소를 물어봅니다. 실행을 하면 아래와 같이 나옵니다.

혹시 명령어가 안되시는 분은 # yum -y install bind-utils 명령어로 설치해주시면 됩니다.

 

 

# www.study.com  도메인을 검색하여 IP 주소를 찾아내기도 하고,

# 10.10.10.10 IP 주소를 검색하여 도메인을 찾아내기도 하는 것을 확인 할 수 있습니다.

 

다음 글에서는 DNS 구축을 해놓은 상태니 Apache와 연동해서 활용을 해보도록 하겠습니다.

반응형

댓글