[DNS점검] 8. 네임서버 버전정보보안

요약

네임서버 버전은 외부에 노출되지 않도록 보안설정을 해주어야 한다.

1

버전정보가 외부에 보여질 경우, 해당 취약점을 이용하여 네임서버를 해킹하거나 응답변조, 네임서버 다운 시켜 장애를 발생시킬 수 있다.

2

취약점 조치법

 


1)  네임서버  버전숨기는 설정하기

DNS기본설정시에는 네임서버 버전 숨기는 설정이 되어 있지 않으므로, 별도의 설정을 해주어야한다.

# vi  named.conf
// named.conf for Red Hat caching-nameserver
options {
        directory "/var/named";
        dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
       version " No !!";             
};


2)   설정후 보안설정 동작 확인

외부에서 버전정보 확인 # dig @네임서버IP     txt    chaos   version.bind.

; <<>> DiG 9.2.4 <<>> @127.0.1 txt chaos version.bind.
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32021
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;version.bind.                  CH      TXT

;; ANSWER SECTION:
version.bind.           0       CH      TXT    
" No !!"

 

3

최신버전으로 업그레이드하기

 

BIND를 사용하는경우, Bind 8.x는 반드시 Bind 9.x로 업그레이드를 권장하며, Bind 9.x버전중 낮은버전은 항상 최신버전으로 패치를 권장한다.

Bind8은 현재 개발이 중지된상태이며, 취약점에 대해 더 이상 패치가 되지 않는다.

버전 숨기는 설정을 통해 버전을 숨길수 있으나, fpdns등 유틸을 이용하면 대략의 버전을  확인할수있으므로, 최신버전으로 패치가 가장 좋은 솔루션이다.

 

CentOS 4.4 에서 named 최신버전으로 업그레이드

필독1. DNS BIND는 취약점이 계속 발견되고 있기때문에, 가능하다면 1년에 1번씩은 업그레이드 하기를 권고한다.

필독2. 업그레이드후 RFC규약변화, Zone파일문법검사, 디폴트값 변경으로 서비스가 안될수 있으니 반드시 백업후 진행해야한다.

1> 소스 다운받기


1) # ftp ftp.isc.org
Name (ftp.isc.org:root): ftp

ftp> cd isc
ftp> cd bind9

ftp> ha
Hash mark printing on (1024 bytes/hash mark).
ftp> bi
200 Switching to Binary mode.

ftp> get bind-9.x.x.tar.gz         <- 최근버전으로 받기바랍니다. 간혹 새버전으로 업데이트 되니 ^^

 

2> 기존설정 백업하기

// named.conf , named데몬  백업받기

// 패치후 특이증상이나  서비스가 안되는 현상이 발생될수 있으니 주의 바랍니다.

1) # cp   /etc/named.conf    named.conf-20070422
2) # /usr/sbin/named -v
BIND 9.2.4

3) # cp    /usr/sbin/named     /usr/sbin/named-backup924

4)  tmp #tar  zxvf  bind-9.x.x.tar.gz

 

3> 컴파일하기

1) # ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/run/named --enable-threads

2) # make

3) # make install

# ps -ef |grep named
named     8147     1  0 05:02 ?        00:00:00 /usr/sbin/named -u named -t /var/named/chroot
root     20195  4102  0 05:27 pts/2    00:00:00 grep named

// 컴파일후 바로 ps -ef |grep named  확인해야 한다.  OS에 따라 데몬이 죽는경우가 발생한다.

//데몬이 떠있는경우도, 데몬을 한번 내리고 다시시작해 이상없는지 검증해야한다.

# kill -9 8147    &&   /usr/sbin/named -u named -t /var/named/chroot    

 

//데몬이 죽어있는경우 빨리 띠워주기

# /usr/sbin/named -u named -t /var/named/chroot

 

4> 데몬 확인

# ps -ef |grep named
named    20197     1 23 05:27 ?        00:00:00 /usr/sbin/named -u named -t /var/named/chroot
root     20202  4102  0 05:27 pts/2    00:00:00 grep named

 

5> 업그레이드 된 버전확인

# /usr/sbin/named -v
BIND 9.x.x

 

6> 최신버전 백업하기
# cp    /usr/sbin/named   /usr/sbin/named-9xx

 

# Windows 2000, 2003 서버의 경우 매월 보안취약점이 나오므로, DNS이슈발생시 패치하도록 한다.

 

감사합니다.