4.10. dnstap을 사용하여 DNS 쿼리 기록
네트워크 관리자는 DNS(Domain Name System) 세부 정보를 기록하여 DNS 트래픽 패턴을 분석하고 DNS 서버 성능을 모니터링하고 DNS 문제를 해결할 수 있습니다. 고급 방법으로 들어오는 이름 쿼리의 세부 정보를 모니터링하고 기록하려면 named 서비스에서 보낸 메시지를 기록하는 dnstap 인터페이스를 사용합니다. DNS 쿼리를 캡처하고 기록하여 웹사이트 또는 IP 주소에 대한 정보를 수집할 수 있습니다.
사전 요구 사항
-
bind-9.11.26-2패키지 또는 이후 버전이 설치되어 있습니다.
BIND 버전이 이미 설치되어 실행 중인 경우 새 버전의 BIND 를 추가하면 기존 버전이 덮어씁니다.
프로세스
options블록에서/etc/named.conf파일을 편집하여dnstap및 대상 파일을 활성화합니다.options { # ... dnstap { all; }; # Configure filter dnstap-output file "/var/named/data/dnstap.bin"; # ... }; # end of options로깅할 DNS 트래픽 유형을 지정하려면
/etc/named.conf파일의dnstap블록에dnstap필터를 추가합니다. 다음 필터를 사용할 수 있습니다.-
auth- 권한 있는 영역 응답 또는 응답. -
클라이언트- 내부 클라이언트 쿼리 또는 응답. -
Forwarder- 쿼리 또는 응답에서 전달합니다. -
해결자- 반복적 해결 쿼리 또는 응답. -
업데이트- 동적 영역 업데이트 요청. -
All - 위 옵션 중
모두입니다. 쿼리또는응답-쿼리또는응답키워드를 지정하지 않으면dnstap이 둘 다 기록합니다.참고dnstap필터는 로 구분된 여러 정의가 포함되어 있습니다.dnstap {}블록의 구문은dnstap {(모든 | auth | client | forwardr | update ) [( query | response ) ];… };
-
변경 사항을 적용하려면
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/dnstapdnstap-read유틸리티를 사용하여 사람이 읽을 수 있는 형식으로 로그를 처리하고 분석합니다.다음 예에서
dnstap-read유틸리티는YAML파일 형식으로 출력을 출력합니다.Example: dnstap-read -p /var/named/data/dnstap.bin