1.8. dnstap을 사용하여 DNS 쿼리 기록
네트워크 관리자는 DNS(Domain Name System) 세부 정보를 기록하여 DNS 트래픽 패턴을 분석하고 DNS 서버 성능을 모니터링하고 DNS 문제를 해결할 수 있습니다. 고급 방법으로 들어오는 이름 쿼리의 세부 정보를 모니터링하고 기록하려면 named
서비스에서 보낸 메시지를 기록하는 dnstap
인터페이스를 사용합니다. DNS 쿼리를 캡처하고 기록하여 웹사이트 또는 IP 주소에 대한 정보를 수집할 수 있습니다.
사전 요구 사항
-
bind-9.16.15-3
패키지 또는 이후 버전이 설치됩니다.
BIND
버전이 이미 설치되어 실행 중인 경우 새 버전의 BIND
를 추가하면 기존 버전이 덮어씁니다.
절차
options
블록에서/etc/named.conf
파일을 편집하여dnstap
및 대상 파일을 활성화합니다.options { # ... dnstap { all; }; # Configure filter dnstap-output file "/var/named/data/dnstap.bin"; versions 2; # ... }; # end of options
로깅할 DNS 트래픽 유형을 지정하려면
/etc/named.conf
파일의dnstap
블록에dnstap
필터를 추가합니다. 다음 필터를 사용할 수 있습니다.-
auth
- 권한 있는 영역 응답 또는 응답. -
클라이언트
- 내부 클라이언트 쿼리 또는 응답. -
Forwarder
- 쿼리 또는 응답에서 전달합니다. -
해결자
- 반복적 해결 쿼리 또는 응답. -
업데이트
- 동적 영역 업데이트 요청. -
All - 위 옵션 중
모두
입니다. -
쿼리
또는응답
-쿼리
또는응답
키워드를 지정하지 않으면dnstap
이 둘 다 기록합니다.
참고dnstap
필터에는 dnstap {} 블록의dnstap {}
블록의dnstap {(모든 | auth | client | forwardr | update ) [(쿼리 | 응답 ) ]
.;
… }; dnstap {} 블록으로 구분되는 정의가 포함되어 있습니다-
기록된 패킷에서
dnstap
유틸리티의 동작을 사용자 지정하려면 다음과 같이 추가 매개변수를 제공하여dnstap-output
옵션을 수정합니다.-
size
(제한되지 않음 | <size>) - 크기가 지정된 제한에 도달하면dnstap
파일을 자동으로 롤백할 수 있습니다. -
버전
(제한되지 않음 | <integer>) - 유지할 자동 롤오버된 파일 수를 지정합니다. 접미사
(increment | timestamp ) - 롤아웃된 파일의 이름 지정 규칙을 선택합니다. 기본적으로 증가는.0
으로 시작합니다. 또는 timestamp 값을 설정하여 UNIX타임스탬프
를 사용할 수 있습니다.다음 예제에서는 자동
응답
만 요청,클라이언트
쿼리, 동적업데이트
의 쿼리 및 응답 모두:Example: dnstap {auth response; client query; update;};
-
변경 사항을 적용하려면
named
서비스를 다시 시작하십시오.# systemctl restart named.service
활성 로그에 대한 주기적인 롤아웃 구성
다음 예에서
cron
스케줄러는 사용자가 편집한 스크립트의 콘텐츠를 하루에 한 번 실행합니다. 값이3
인roll
옵션은dnstap
에서 최대 3개의 백업 로그 파일을 생성할 수 있음을 지정합니다. value3
은dnstap-output
변수의version
매개 변수를 재정의하고 백업 로그 파일 수를 3으로 제한합니다. 또한 바이너리 로그 파일이 다른 디렉터리로 이동하여 이름이 변경되고 3개의 백업 로그 파일이 이미 존재하는 경우에도.2
접미사에 도달하지 않습니다. 크기 제한에 따라 바이너리 로그를 자동으로 롤링하는 경우 이 단계를 건너뛸 수 있습니다.Example: sudoedit /etc/cron.daily/dnstap #!/bin/sh rndc dnstap -roll 3 mv /var/named/data/dnstap.bin.1 /var/log/named/dnstap/dnstap-$(date -I).bin # use dnstap-read to analyze saved logs sudo chmod a+x /etc/cron.daily/dnstap
dnstap-read
유틸리티를 사용하여 사람이 읽을 수 있는 형식으로 로그를 처리하고 분석합니다.다음 예에서
dnstap-read
유틸리티는YAML
파일 형식으로 출력을 출력합니다.Example: dnstap-read -y [file-name]