자체 네임서버를 구축해서 이용하지만 보안 설정을 하지 않아서, 필요 없는 질의에 의해 트래픽이 소모되는 경우가 있습니다. (기본 “recursion” 설정은 “Any”이며 누구나 응답합니다.)
이럴 때 적용할만한 보안 설정이 있습니다. 크게는 두 가지로 나뉠 수 있습니다.
작업 환경
CentOS release 6.6 (Final) 64bit
bind-9.8.2-0.37
1) 캐싱 네임서버로 사용 못하도록 설정 (권한 네임서버로만 이용 가능)
# vi /etc/named.conf
options {
~
allow-query { any; };
recursion no;
}
위의 설정은 캐싱 네임서버로는 사용할 수 없고, 이 서버의 존파일에 있는 내용만 답변합니다.
2) 허용하는 대역의 아이피만 캐싱 네임서버를 이용할 수 있도록 설정
# vi /etc/named.conf
acl trust { 127.0.0.1/32; 00.00.00.00/32; [허용할 IP]; };
options {
~
allow-query { any; };
recursion no;
allow-recursion { trust; };
}
위의 설정으로 적용 시, acl에 등록한 IP에 대하여서만 캐싱 네임서버로 이용할 수 있도록 합니다. (“acl”로 지정한 “trust”는 임의로 지정한 값 입니다.)
*참고
각 상황에 맞춰서 충분히 고려하여 BIND의 보안 설정을 하시기 바랍니다.
위의 설정은 글쓴이 개인적인 견해입니다.
******************************************************************************************
예시)
query 값이 any여서 있는 도메인에 대하여서는 질의 응답을 하고 있지만, 없는 도메인에 대해서는 acl에 등록해 준 IP에서만 응답합니다.
네임서버 named.conf 설정
1
2
3
4
5
6
7
acl trust { 192.168.9.20; }; // 허용할 아이피 입력
options {
~
allow-query { any; };
allow-recursion { trust; }; // 옵션 항목 위에 설정한 acl 입력
};
Colored by Color Scripter
cs
acl 그룹 설정으로 허용한 PC에서 질의
1
2
3
4
5
6
$ nslookup [도메인] 192.168.9.58
Server: 192.168.9.58
Address: 192.168.9.58#53
Non-authoritative answer:
*** Can’t find [도메인]: No answer
cs
허용 설정을 하지않은 PC에서 질의
1
2
3
4
5
# nslookup [도메인] 192.168.9.58
Server: 192.168.9.58
Address: 192.168.9.58#53
** server can’t find [도메인]: REFUSED
cs
네임서버 messages 로그 확인
Nov 30 11:29:07 localhost named-sdb[18288]: client 192.168.9.40#12870: query (cache) ‘[도메인]/A/IN’ denied
위와 같은 로그를 남기며, 없는 도메인에 대해서 응답을 하지않습니다.