Bind9를 사용하여 CC TLD를 구성했습니다. 또한 쿼리 로깅을 성공적으로 구성했습니다. 하지만 쿼리 응답을 기록할 수 없습니다.
쿼리 로깅을 위해 구성한 내용을 확인하세요.
logging {
channel queries_file {
file "/var/named/chroot/var/log/named/queries.log" versions 10 size 10G;
severity dynamic;
print-category yes;
print-severity yes;
print-time yes;
};
category queries { queries_file; };
};
스크립트는 외부의 쿼리만 기록합니다.
이러한 요청에 대한 서버 응답을 어떻게 기록할 수 있습니까?
답변1
logging
BIND에는 쿼리에 대한 응답을 기록하기 위해 이 지시어를 사용하는 규정이 전혀 없습니다 .
또한 개인 정보 보호 고려 사항은 제쳐두고 DNS 서비스가 파일에 기록하는 것보다 원격으로 기록하는 것이 더 효율적일 수 있습니다.
사람들이 뛰어다니는 경우가 많다도메인 이름 확인 프로토콜보안 분석을 위해 DNS 쿼리를 캡처/스니핑합니다.
dnscap은 DNS 트래픽용으로 특별히 설계된 네트워크 캡처 유틸리티입니다. pcap(3) 형식으로 바이너리 데이터를 생성합니다. 이 유틸리티는 tcpdump(1)와 유사하지만 DNS 트랜잭션 및 프로토콜 옵션에 맞게 사용자 정의된 많은 기능이 있습니다.
라는 캡처/녹화 기능도 있습니다.도메인 이름 서버, 그러나 이는 BIND의 특정 버전에만 존재하며 BIND의 마지막 버전(현재 9.11) 이후에는 항상 공식적으로 포함되는 것으로 보입니다. 이는 아직 여러 배포판에 채택되지 않았을 수 있으므로 BIND 컴파일이 필요합니다.
BIND와 통합되고 dnscap
.
dnstap은 프로토콜 버퍼(구조화된 데이터를 직렬화하는 메커니즘)와 함께 DNS 서버에 유연한 바이너리 로그 형식을 도입하는 솔루션입니다. Robert Edmonds는 dnstap의 아이디어를 내놓고 두 가지 특정 사용 사례를 기반으로 첫 번째 구현을 만들었습니다.
- 동기식 I/O 병목 현상과 메시지 형식을 제거하여 쿼리 로깅을 가속화합니다.
- 수동 DNS 패킷 대신 전체 메시지를 캡처하여 복잡한 상태 재구성을 방지합니다.
options {
dnstap { all; };
// dnstap { auth; resolver query; resolver response; };
/* where to capture to: file or unix (socket) */
// dnstap-output file "/tmp/named.tap";
dnstap-output unix "/var/run/dnstap.sock";
dnstap-identity "tiggr";
dnstap-version "bind-9.11.2";
};