Linux DNS


  1.  최신 소스 다운로드 받기 (2013.05.13 기준 9.9.2 P2)

다운로드 주소 : ftp://ftp.isc.org/isc/bind9/

 


[root@localhost src]# cd /usr/local/src/

[root@localhost src]# wget  ftp://ftp.isc.org/isc/bind9/9.9.2-P2/bind-9.9.2-P2.tar.gz

 

최신버전을 설치  것을 권장하며가급적 예전 버전의 경우 취약점이 있다고 알려진 것들은 받지 않는다.

  

 

  1. 기존 설정 백업 

 

[root@localhost src]# cp /etc/named.conf named.conf-20130513

[root@localhost src]# /usr/sbin/named -v

BIND 9.2.4

[root@localhost src]# cp /usr/sbin/named /usr/sbin/named-924

혹시 모르니.. 기존 zone 파일 위치 백업도 함께 하자.

[root@localhost src]# mkdir /home/bind_20130513

[root@localhost src]# cp -rp /var/named/chroot/var/named /home/bind_b201305013

 

 

  1. 컴파일하기 

 

[root@localhost src]# tar zxvf bind-9.9.2-P2.tar.gz

[root@localhost src]# cd bind-9.9.2-P2

[root@localhost bind-9.5.0rc1]# vi  bin/named/include/named/globals.h

 

EXTERN const char *             ns_g_defaultpidfile     INIT(NS_LOCALSTATEDIR

                                                             "/run/named.pid");

EXTERN const char *             lwresd_g_defaultpidfile INIT(NS_LOCALSTATEDIR

                                                            "/run/lwresd.pid");

이부분을 

  

EXTERN const char *             ns_g_defaultpidfile     INIT(NS_LOCALSTATEDIR

                                                             "/named.pid");

EXTERN const char *             lwresd_g_defaultpidfile INIT(NS_LOCALSTATEDIR

                                                            "/lwresd.pid");

 

로 수정

 

[root@localhost bind-9.9.2-P2]# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/run/named --enable-threads

[root@localhost bind-9.9.2-P2]# make && make install

 

 

컴파일후 바로 데몬을 확인하시길 바랍니다.

가끔 데몬이 죽는경우가 생기기 때문입니다.

 

[root@localhost bind-9.5.0rc1]# ps -ef | grep named

named    13608     1  0 May19 ?        00:00:00 /usr/sbin/named -u named

root     24320 23450  0 18:15 pts/1    00:00:00 grep named

 

재시작 하기전에 위에서 언급  보안설정을 적용한다.

[root@localhost bind-9.9.2-P2]# vi /etc/named.conf

 

  1. recursion 취약점 설정

아래 두가지 옵션 하나를 사용할 것을 권장.

(메일 서비스 사용하는 서버의 경우 2 방법 적용 것을 권장함)

  1. recursion 기능 비활성화
  • 주의사항
    • recursion 옵션 no 변경 일반 도메인에 대한 질의는 응답하지 않습니다.
    • 자기 자신이 가지고 있는 Zone 파일 내용들만 응답 하게 됩니다.
  • 일반질의가 되지 않을 문제가 되는 부분은 서버의 /etc/resolve.conf 자신의 아이피가 등록 되어 있다면 서버내에서 이름풀이가 되지 않는 문제 발생. 경우 외부 DNS 지정을 통해 해결. ) 168.126.63.1 / 168.126.63.2

     

    /etc/name.conf 혹은 /etc/named.caching-nameserver.conf

    options {

    ...

    ...

            version "UNKNOWN";  // bind 버전을 UNKNOWN으로 표시

            recursion no;  // Recursion 질의 기능 OFF

            allow-transfer { 127.0.0.1; }; // Slove 서버가 존재한다면 추가 기입

    ...

    ...

    };

     

    2. recursion 서비스를 신뢰된 호스트로 제한

    • loopback IP 211.239.151.211/32 서버 IP 대해 recursion 이용 가능 하도록 하는

      acl trust { 127.0.0.1/32; 211.239.151.211/32; };

      options {

      ...

      version "UNKNOWN";  // bind 버전을 UNKNOWN으로 표시

      allow-recursion { trust; };

      allow-transfer { 127.0.0.1; }; // Slove 서버가 존재한다면 추가 기입

      ...

      ... 

      };


      네임서버 재구동 ( 아래 방법 중 하나만 사용 하시면 됩니다.) 

      [root@localhost bind-9.9.2-P2]# service named restart    


      [root@localhost bind-9.9.2-P2]# /usr/sbin/named restart

       

      버전 확인 

      [root@localhost bind-9.9.2-P2]# /usr/sbin/named -v 

       BIND-9.9.2-P2