메뉴 닫기

dnstop : DNS 트래픽 분석 도구 설치 및 사용

지금부터 설명해드릴 dnstop은 DNS 트래픽 분석 도구로써 네임서버를 구축해서 사용한다면 필수로 설치해야할 유틸리티 입니다.
본 유틸리티는 SSH 를 사용하여 서버에 접속해서 사용할 수 있으며 실시간으로 패킷을 분석하여 DNS관련 패킷을 우리가 알아보기
편리하게 통계를 내어 줍니다.

dnstop 사용시 옵션에 따라서 다음과 같은 내용을 확인할 수 있습니다.

# 소스 IP, 목적지 IP주소 통계
# 쿼리유형
# 응답코드
# Opcodes
# 최상위 도메인에서 2, 3, 4번째 수준의 도메인
# IPv4, IPv6 모두 지원
# DNS필터 제공
* unknown/invalid TLD(최상위 도메인)
* 쿼리이름으로 IP를 사용하는 경우
* RFC1918 주소공간에 대한 PTR 쿼리
* REUSED 응답
또한 dnstop은 tcpdump로 저장된 파일 또한 분석 할수 있습니다.

1. dnstop 설치
단순히 서버상에서 “yum install dnstop” 을 사용해서 설치할수도 있으나, 본 게시물은  dnstop 이라는 유틸리티 에 대해서
안내를 해드리려 하기에 소스 설치로 진행을 하겠습니다.

dnstop 배포사이트 URL 은 다음 주소와 같으며, 최신 버전의 기능 및 업데이트 정보를 알수 있습니다.

 

dnstop1

 

(사진 1. dnstop 공식 홈페이지 – http://dns.measurement-factory.com/tools/dnstop/ )

 

해당 사이트에서 최신버전 dnstop 파일을 다운로드 합니다 (최신파일이라고는 하지만 2014/09/04일 기준 20121017이 최신입니다..)
파일 다운로드 후 설치과정은 위에서 언급한 yum install dnstop 명령어와 비슷하게 간편한 과정을 거쳐서 서버에 설치하실수 있습니다.

1.2. 압축해제 및 일반적인 설치
설치 전 libpcap-devel 패키지를 반드시 yum install 로 설치 후 dnstop 을 설치 하셔야 하며
만약 해당 패키지가 미설치 된 상태에서 make 를 하게 되면 pcap.h 관련 오류가 납니다.
(dnstop 을 설치하다가 libpcap-devel 패키지 설치 후 make 를 하게되도 에러가 발생하며, 반드시 libpcap-devel 패키지가 먼저 설치 되있어야 합니다!)

#tar xvfp dnstop-20121017.tar.gz
#cd dnstop-20121017
#./configure
#make && make install

2. dnstop 사용
위와 같이 설치하였다면 터미널 창에서 다음과 같이 입력하면 여러 옵션을 확인 할 수 있습니다.
#dnstop

usage: dnstop [opts] netdevice|savefile
-4 Count IPv4 packets
-6 Count IPv6 packets
-Q Count queries
-R Count responses
-a Anonymize IP Addrs
-b expr BPF program code
-i addr Ignore this source IP address
-n name Count only messages in this domain
-p Don’t put interface in promiscuous mode
-P Print “progress” messages in non-interactive mode
-r Redraw interval, in seconds
-l N Enable domain stats up to N components
-X Don’t tabulate the “source + query name” stats
-f filter-name

Available filters:
unknown-tlds
A-for-A
rfc1918-ptr
refused
qtype-any

 

dnstop2

 

(사진2. – 옵션을 포함하지 않은 dnstop 명령어 입력시) 

 

위의 옵션들을 한글로 해석했을때 의미는 다음과 같습니다.

-4 : IPv4 패킷만 카운터 (2014년 지금까지 대부분 IPv4를 사용하니 이 옵션을 사용합니다.)
-6 : IPv6 패킷만 카운터(아직까지는 IPv6이 보편화 되어있지않기때문에 해당 옵션을 쓸일이 많이 없습니다.)
-Q : DNS 쿼리 메시지만 카운터 합니다.
-R : DNS 응답 메시지만 카운터 합니다.
-a : 주소를 익명으로 합니다.
-b expr : BPF 필터 표현식 (기본 : udp port 53)
-i addr : 명시한 IP addr는 제외하고 분석합니다.
-n name : 명시한 도메인만 카운터합니다.
-p : promiscuous mode 로 들어가지 않습니다. (서버의 패킷만 보며, 다른 서버의 패킷을 관찰하지 않습니다.)
-P : 비대화형 모드에서 진행상황 메시지를 보여줍니다.
-r : 새로 dnstop 을 그릴 시간을 지정합니다.(단위:초, 기본 1초)
-l N : 도메인을 보여줄 레벨을 설정합니다. 1은 TLD이고 보통 3을 설정합니다.)
-X : 소스IP와 쿼리를 같이 보여주는 모드를 off 합니다. (메모리 절약을 위해)
-f : 입력 필터 이름

* 사용가능한 필터는 다음과 같습니다.

unknown-tlds : unknown/invalid TLD(최상위 도메인)
A-for-A : 쿼리이름으로 IP를 사용하는 경우
rfc1918-ptr : RFC1918 주소공간에 대한 PTR 쿼리
refused : REUSED 응답
qtype-any : 쿼리 타입이 ANY인 경우

 

 

이상으로 dnstop에 대한 소개를 마치겠습니다. 이런 간편하고도 유용한 툴을 통해, 구동중인 네임서버 의 보안에 각별히 신경을 써야 할 것입니다.

[polldaddy rating=”7739789″] 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x