DNS 서버 취약점 보안 조치


ㅁ 공격 유형
   DNS(UDP 53 Port) 서버 대상 도메인 무한 질의(query) 네트워크 공격

ㅁ 피해 범위
   질의에 대한 응답 트래픽으로 추가 요금 발생

ㅁ 조치 방법
   - 직접 조치 요령
     1. DNS 서버로 운영하지 않는 경우
        네임서버 데몬 중지
        [리눅스]
        # /etc/init.d/named stop
        # chkconfig --level 12345 named off

        [윈도우즈]
        [시작] - [관리도구] - [서비스] 에서 'DNS Server' 우클릭 > 속성 > 서비스 상태를 '중지' 시킨 뒤,
        시작 유형을 '사용 안함'으로 변경 > 확인

     2. DNS 서버로 운영하는 경우
        PC나 특정 서버의 네임서버로 사용되지 않을 때 recusion 설정 중지
        [리눅스]
        /etc/named.conf 파일의 options 에 recursion no; 설정후, 아래 명령으로 named 재시작
        # /etc/init.d/named restart

        [윈도우즈]
        [시작] - [관리도구] - [DNS] 에서
        좌측 트리구조 'DNS서버' 우클릭 > 속성 > [고급]탭에서 '재귀를 사용 안함' 체크 > 확인
        



1.
내 도메인 설정을 위한 DNS와 내부에서 사용할 caching name server가 따로 존재할 경우 외부에서의 query를 허가하고, recursion을 off 시킵니다. /var/named/etc/named.confoptions block에서 다음의 설정을 변경 또는 추가 하십시오. 별도로 있는 caching name server는 3번째 case를 참조 하십시오.
options {
...
recursion no;
allow-query { any; };
...
};
2.
caching name server가 따로 존재하지 않을 경우 외부에서의 query를 허가하고, recursion을 할 수 있는 대역을 allow-recursion 옵션을 이용하여 설정 합니다.
먼저 allow-recursion에 사용할 RecursionAllow ACL group을 /var/named/etc/named.acl.conf에 생성 합니다.
acl LocalAllow {
127.0.0.1;
localhost;
};
acl RecursionAllow {
192.168.0.0/16;
111.112.113.128/25;
};
다음, named.confoptions block에서 다음의 설정을 변경 또는 추가 합니다.
options {
...
recursion yes;
allow-query { any; };
allow-recursion { LocalAllow; RecursionAllow; };
...
};
3.
내부 전용 caching name server로 사용할 경우 내부에서의 query만 허가하고, recursion을 public 하게 설정 합니다.
먼저 /var/named/etc/named.acl.confLocalAllow acl group에 query를 할 내부 대역을 추가해 줍니다.
acl LocalAllow {
127.0.0.1;
localhost;
192.168.0.0/16;
};
다음, named.confoptions block에서 다음의 설정을 변경 또는 추가 합니다.
options {
...
recursion yes;
allow-query { LocalAllow; };
...
};
4.
public caching name server로 사용할 경우
외부에서의 queryrecursion을 모두 허가합니다. 이 경우에는 DNS 공격을 위하여 RPZ(Response Policy Zone)과 같이 공격을 방어하기 위한 기법들이 필요 합니다. 여기서는 따로 public caching name server 구성에 대해서는 따로 다루지는 않겠습니다.
named.confoptions block에서 다음의 설정을 변경 또는 추가 합니다.
options {
...
recursion yes;
allow-query { any; };
...
};
recursion 정책 설정이 완료가 되면, 이제 bind는 기본적으로 정책에 따라 응답을 할 수 있는 상황이 됩니다.
0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

기타

번호 제목 글쓴이 날짜 조회수
14 [solana] 개발환경 구성하기 관리자 07-22 235
13 DNS 서버 취약점 보안 조치 관리자 10-13 663
12 백엔드 서비스인 포켓베이스 관리자 04-22 1,147
11 공휴일 API 관리자 08-26 934
10 유사도별로 이미지를 구성 관리자 05-23 749
9 vscode +1 관리자 04-26 1,178
8 VSCode 확장 SFTP Error: Handshake failed: 관리자 01-07 1,168
7 요약 관리자 01-04 789
6 마크다운 사용법 관리자 12-22 708
5 깃허브 요약 2 관리자 12-22 807
4 깃허브 요약 1 관리자 12-22 605
3 mysterydata 관리자 10-22 808
2 자바그룹웨어 +1 관리자 10-22 1,256
1 오픈소스 그룹웨어 관리자 10-21 1,461