Server/Cent OS

Linux Server - DNS(설치 & 설정)

heyoon2j 2019. 7. 8. 16:01

■ DNS

- Domain Name System

- UDP 53, TCP 53: 데이터 전송량이 512byte 이상, Zone Transfer일 때 TCP 사용

- DNS Zone Transfer: 여러 대의 DNS Server 간에 DNS 데이터베이스를 복제하는 데 사용되는 방법

 

 

○ DNS 통신 흐름

 1) Cache 확인(이전에 접속했다면 Cache에 저장해둔다)

 2) /etc/hosts, 해당 Directory에 Domain 정보가 있는지 확인

 3) 설정한 DNS Server에서 정보 확인

  - 4, 5번: 설정한 DNS Server에서 확인이 되지 않으면, Root DNS를 확인 -> 관련 있는 정보(com, org 등)를 보내준다.

  - 6, 7번: com에서 정보 확인 -> babo.com 주소의 Name Server 위치 정보를 알려준다.

  - 8, 9번: babo.com Name Server에서 www.babo.com의 IP 주소를 확인한다.

  - 10, 11번: DNS Server가 www.babo.com의 정보를 PC에 보내주고, PC는 해당 주소로 신호를 보낸다.

 

 

○ 설치 및 설정

 

- 보안 설정을 아직 알지 못하기 때문에 설정 파일에서 disabled로 설정

- setenforce 0를 이용하는 경우, reboot시 설정이 저장되지 않는다.

 

- 설정을 적용시키기 위해서는 reboot가 필요하기 때문에, 여기서는 setenforce 0를 이용하여 disabled 적용

 

- 3개를 설치해야 한다.

=> bind, bind-utils, bind-libs

 

- /etc/named.conf: DNS Server의 기본 설정을 한다.

 

- listen-on port 53 : 외부에서 네임 서버에 접속해야 하므로, 127.0.0.1 -> any로 변경 / 53번은 유지 (네임서버의 포트 번호와 접근할 수 있는 IP를 설정)

- allow-query : any로 변경, 해당 네임 서버에 질의할 수 있는 호스트를 지정

 => 네임 서버는 하나의 네임 서버만 있는 것이 아니고 하나의 DNS 서버에는 여러 개의 네임서버를 가져올 수 있다. 즉, 추가되는 네임서버 확인에 대한 허용 여부

- recursion : 순환한다는 의미로, Yes로 설정하면 네임 서버에 설정되지 않은 도메인에 대한 질의가 있을 시 캐싱 네임서버의 역할을 하여 DNS(외부) 질의 과정을 거치게 된다. 주 네임 서버는 캐싱 네임서버 역할이 필요하지 않으므로 여기서는 No로 설정.

 

- /etc/named.rfc1912.zeones : 존을 추가하거나 삭제할 수 있는 파일

- type : master/slave (주 영역/보조 영역)

- file : zone 파일 명

- allow-update : 업데이트(전송) 허용

 

- 보조 영역 존 파일 설정

- masters : master(주 영역) 위치 표시

 

- zone을 만들기 위해서 /var/named 있는 다른 zone파일을 복사한다.

 => 기본 파일로 named.localhost 파일을 사용하면 된다.

 

- $TTL 1D : 다른 서버가 가주가고 얼마 동안 보관할 건지(캐시)-

- @ IN SOA  ns1.dodo.com. : 주 도메인 설정, 여기서 설정한 네임서버가 모든 정보를 가지고 있음을 선언.

- root. : 관리자 메일 주소를 정의

- NS  ns1.dodo.com. : 네임서버

- MX 10 mail.dodo.com. : 메일 교환기

- ns1 A 1.0.0.3 : ns1.babo.com 호스트는 1.0.0.3이라는 의미(A가 Host를 의미)

 

* Windows 

 

 

- 방화벽에 53번 포트 추가

- 방화벽 서비스 재 시작

 

- #service named start : DNS Server 시작

 

- 권한을 수정하지 않으면, 에러가 발생한다.

- zone 파일이 있는 /var/named/ Directory에 읽기, 실행 권한을 줘야 다른 PC에서 zone파일을 확인할 수 있다.

- dns zone파일을 named라는 데몬이 읽는데, 그 폴더 소유가 루트 꺼라 권한이 없다. named라는 프로세스(백그라운드 프로그램)가 접근해서 읽을 수 있게 권한을 열어 줘야 한다.

=> Slave(보조 영역)가 있는 경우에는 주 영역으로부터 가주고 와서 써야 되기 때문에 쓰기 권한도 있어야 된다(chmod -R 777 /var/named)

 

- 서비스 재 시작

- nslookup으로 확인