서버 구축

[DNS] centos 서버 구축 하기

jinkwon.kim 2016. 12. 27. 22:17
728x90
반응형

DNS 서버 구축 하기

  • DNS 란?
    • DNS는 도메인네임서버를 일컫는다
  • DNS 역활
    • 도메인 주소를 IP를 변경해서 알려준다.(정방향)
    • IP주소를 도메인 주소로 변경해서 알려준다(역방향)
    • 리눅스에서는 bind란 프로세스가 DNS 프로세스 이다.
  • 설치 권한 
    • root
  • 설치 방법 
    • yum 으로 설치
      • 공부용으로는 yum 으로설치 
      • 상업용으로는 source로 설치 (경험 상 버전 관리문제를 해결 하기위해)
    • # yum install bind*
    • 버전 정보
      • bind.x86_64 32:9.9.4.-29.el7.24
< 설치 완료 >
  • DNS 설정
    • 설정 파일
      • /etc/named.conf
      • /etc/named.rfc1912.zones
    • /etc/named.conf
      • DNS 서버에 대한 설정 값을 담는 파일 
    • /etc/named.rfc1912.zones
      • DNS 서버에 대한 정방향, 역방향 선언에 대한 값을 담는 파일
  • /etc/named.conf 설정
    • 보는 방법 : 설정 그 다음줄에 설명
    • 참조 사이트 
      • http://www.qnx.com/developers/docs/6.3.2/neutrino/utilities/n/named.conf.html
      • http://ftp.isc.org/isc/bind/9.8.0-P1/doc/arm/Bv9ARM.ch06.html
    • 설정 검사 방법
      • named-checkconf /etc/named.conf 

10 options {

11     listen-on port 53 { any; };

=> Service Port및 IPv4 정보 => any 로 변경

12     listen-on-v6 port 53 { any };

=> Service Port및 IPv6 정보  => any 로 변경

13     directory   "/var/named";

=> BIND server가 사용할 zone 파일은 찾을 위치   

14     dump-file   "/var/named/data/cache_dump.db";

=> SIGINT 를 받으면 서버를 cache_dump.dbb에 덤프 한다.

15     statistics-file "/var/named/data/named_stats.txt";

=> 서버의 통계 정보를 저장

16     memstatistics-file "/var/named/data/named_mem_stats.txt";

=> 서버의 메모리 사용 통게 정보를 저장

17     allow-query     { any; };

=> 쿼리를 받을 호스트를 정한다. 사용 안할시 default를 모든 호스트의 쿼리르 받는다.=> any 로 변경

18 

29     recursion yes;

=> 재귀쿼리 요청 설정(yes)/미설정(no)

30 

31     dnssec-enable yes

=> 기존의 DNS에 공개키 암호화 방식의 보안기능을 추가 부여하여 DNS의 보안성을 대폭 강화하는 역할을 합니다.[yes/no] - 캐시 DNS 서버의 dnssec 서명 검증 기능 설정

32     dnssec-validation yes;

=> dnssec 검증 설정 [yes/no]

33 

34     /* Path to ISC DLV key */

35     bindkeys-file "/etc/named.iscdlv.key";

=> dnssec을 사용하기위해 root key를 저장하는 파일

36 

37     managed-keys-directory "/var/named/dynamic";

=> dnssec관련 옵션 잘모르겠다.

38 

39     pid-file "/run/named/named.pid";

=> 프로세스 ID가 적히는 파일

40     session-keyfile "/run/named/session.key";

=> TSIG session key 가 저장되는 파일 

41 };

42 

43 logging {

=> Debug Logging을 남기는 옵션을 설정한다.

44         channel default_debug {

45                 file "data/named.run";

=> Debug 파일 설정

46                 severity dynamic;

=> Debug 레벨 설정

 

47         };

48 };

49 

50 zone "." IN {

=> Root 도메인 설정 하기

51     type hint;

=> Root domain이란 의미  - hint : root도메인을 지정 - master : 1차 네임 서버 - slave : 2차 네임 서버

52     file "named.ca";

=> Hints 파일로서 named의 캐시초기화에 필요한 정보를 저장하고 있는 파일이다. => 주기 적으로 ftp://ftp.rs.internic.net/domain에서 named.root를 가져와서 주기적으로 업그레이드 필요

53 };

54 

55 include "/etc/named.rfc1912.zones";

=> 각종 존 파일 설정

56 include "/etc/named.root.key";

57 

  • /etc/named.rfc1912.zones 설정

12 

13 zone "localhost.localdomain" IN {

14     type master;

15     file "named.localhost";

16     allow-update { none; };

=> dns 업데이트할 host를 설정, none 아무도 못하게함 

17 };

18 

19 zone "localhost" IN {

20     type master;

21     file "named.localhost";

22     allow-update { none; };

23 };

24 

25 zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

26     type master;

27     file "named.loopback";

28     allow-update { none; };

29 };

30 

31 zone "1.0.0.127.in-addr.arpa" IN {

=> Loop back에 대한 zone 파일

32     type master;

33     file "named.loopback";

34     allow-update { none; };

35 };

36 

37 zone "0.in-addr.arpa" IN {

38     type master;

39     file "named.empty";

40     allow-update { none; };

41 };

==================================// 내가 추가한 도메인

42 zone "nightflower.co.kr" IN {
=> nightflower.co.kr에 대한 도메인에 대한 zone파일을 설정한다. 
43     type master;
44     file "nightflower.co.kr.zone";
=> zone 파일 이름
45     allow-update { none; };

46 };

  • zone 파일 설정 
    • 하나의 도메인에 대해서는 하나의 zone파일을 만들어주느것이 일반적이다.
    • 파일 위치 : /var/named/nightflower.co.kr.zone
    • 설정 결과 체크
      • named-checkzone domain "zone파일 절대 경로"
      • named-checkzone nightflower.co.kr /var/named/nightflower.co.kr.zone
      • 결과
< zone 파일 검사 완료 >
  • zone 파일 설정 설명
    • 설정 화면
< zone 파일 설정 완료 >

 

  • 설정 화면

  1 $TTL 1D

=> 다른 네임서버가 이 존파일 정보를 가져간다면 얼마나 보관 할 것인가. (1D= 하루)

  2 @   IN SOA  localhost root.localhost (

=> @ 설명
   -origin 도메인을 의미하는 것으로써 /etc/named.conf 파일에 설정되어 있는 도메인명(여기서는nightflower.co.kr)을 위미한다. 
   -@ 기호대신 nightflower.co.kr. 이라는 도메인을 지정해도되지만 도메인 끝부분에 "." 를 꼭 넣어야 한다. "."마침표는  루트 도메인을 뜻하는 것이다
=> IN
class: 레코드에 대한 클래스를 지정하는 부분으로 일반적으로 Internet 클래스인 IN을 사용 합니다.
=> SOA
   - Start Of Authority 의 약어로써 해당 도메인(nightflower.co.kr)에 대하여 여기서 설정한 네임 서버가 모든 정보를 가지고 있음을 선언하는 것으로 nightflower.co.kr 도메인에 대한 네임서비스의 모든 권한이 여기 있다라는 것을 의미한다. 
=> localhost
  - nightflower.co.kr 도메인에 대하여 네임서버(localhost)가 모든 정보를 가지고 있음을 선언한다.
=> root.localhost
  - 관리자 email 정보 root@localhost -> root.localhost 로 변환하여 입력한다.

  3                     2016120800  ; serial

  4                     3D  ; refresh

  5                     15M ; retry

  6                     1W  ; expire

  7                     3H )    ; minimum

=> serial ~ minimum 까지는 secondary 네임서버와 primary 네이버서와의 연동을 어떻게 할것인가 에 대한 설정이다.  즉 secondary 네임서버가 primary 네임서버의 정보를 어떻게 얼마나 자주 갱신 할것인가 대한 설명이다. 

 - serial : zone파일이 변견되었음을 알리는 버전 정보 이다. zone 파일 변경시 1씩 올려주면된다.

 - refresh : primary 네임 서버를 확인하는 주기  - Retry : primary 접근 실패시 얼마나의 주기를 두고 재 저근할것인가를 설정 - expire: Retry 만료 시간. Retry 가 만료 되면,  해당 도메인을 삭제한다.  - minimun : 해당 도메인의 정보를 다른 네임서버가 가져갔을때 가져간 도메인을 얼마나 보관 하고 있을까에 대한 설정(초단위)

  8            IN   NS  ns.nightflower.co.kr    ;

=> 1차 네임 서버 설정

  9            IN   MX  10 mail.nightflower.co.kr   ;

 10           IN   MX  20 main2.nightflower.co.kr  ;

=> 메일 서버 설정 10, 20 은 우선 순위 , 숫자가 작을 수록 우선 순위가 높다

 11           IN   A    192.168.207.1   ;

=> 해당 도메인(nightflower.co.kr)의 IP주고가 192.168.207.1 이라는 것을 나타낸다.

 12 mail     IN   A    192.168.207.1   ;

=> 메인 서버 도메인 주소 

 13 www    IN   A    192.168.22.132  ;

=> 웹 서버 도메인 주소

 

 14 *         IN   A    192.168.207.1   ;

=> 상기 이외의 모든 nightflower.co.kr의 서브 도메인을 192.168.207.1 로 하겠다는의미

 

이외에도 레코드(MX,A)외에도 CNAME, TXT, PTR  종류가 더있다. 이보다 더 많을수됬음

 

  • dns가 동작 하지 않을때 
    • /var/log/message를 본다 
      • 권한 문제가 발생 했다.

 

< 권하 문제 정보 >

 

    • zone파일의 권한을 다음과 같이 변경 

 

< 권한 문제 해결 >

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형

'서버 구축' 카테고리의 다른 글

[DNS] ubuntu 22.04에 DNS서버 구축 하기  (0) 2023.07.15
메일 서버 구축  (0) 2017.06.01
구축 구성도  (0) 2016.12.27