본문 바로가기
Linux/DNS server

DNS 서버의 최소 보안설정에 대해서...

by aegypius 2020. 1. 23.
728x90
반응형

  별다른 보안설정 없이 서버를 운영하다가 낭패를 보는 경우가 있다. 그러고 나서야 보안의 필요성을 실감한다. 네임서버에 대한 기본적인 방화벽이나 설정파일의 구문 오류는 제외하고 다음의 몇 가지 정도는 필수점검사항이 아닐까 생각한다.

1. 네임서버 프로그램의 버전정보 노출
   bind를 사용하고 있는 경우 프로그램의 버전까지 노출할 필요는 없다. 아래와 같이 option 구문에 한 줄 추가해서 노출을 막도록 하자.

 options {
            ...........
            version none;
            ...........

 

2. 네임서버의 Zone Transfer의 설정
  네임서버를 두 개 이상 운영하고 있는 경우 이들 서버간의 데이터를 동일하게 유지(동기화)하기 위한 개념이다. 즉, 1차 네임서버의 데이터(zone 파일)를 업데이트 하면 2차 네임서버는 자동으로 업데이트 되는 기능이다. 따라서 네임서버를 하나만 운영한다거나, 두 개 이상 운영하더라도 모든 네임서버를 수동으로 업데이트 한다거나, 혹은 zone transfer를 사용하더라도 마지막(slave)의 네임서버에서 조차 이를 허용해서 필요이상의 정보를 노출할 이유는 없을 것이다.

 option {
           ..........
           allow-transfer  { none; };
           ..........

  none 대신에 2차 네임서버의 ip주소를 넣을 수 있다.


3. Open DNS의 설정
  bind의 recursion 기본값은 any인데, 이는 모든 DNS 쿼리(recursive query)에 응답해주는 Open DNS이다. 이렇게 운영하면 자칫 나의 DNS서버가 다른 서버 등에 DDoS 공격을 가하는 해킹도구로 악용될 수 있다.(벌써 5년전의 경험이다 -_-.) 캐싱 네임서버(caching name server)로의 사용을 막고, 운영중인 도메인(서버가 갖고 있는 zone 파일)에 대한 응답만 허용하도록 recursion의 값을 no로 설정하자.

 option {
           ..........
           recursion no;
           ..........

 

728x90
반응형

댓글