DNS 쿼리 응답 기록

DNS 쿼리 응답 기록

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

loggingBIND에는 쿼리에 대한 응답을 기록하기 위해 이 지시어를 사용하는 규정이 전혀 없습니다 .

또한 개인 정보 보호 고려 사항은 제쳐두고 DNS 서비스가 파일에 기록하는 것보다 원격으로 기록하는 것이 더 효율적일 수 있습니다.

사람들이 뛰어다니는 경우가 많다도메인 이름 확인 프로토콜보안 분석을 위해 DNS 쿼리를 캡처/스니핑합니다.

dnscap은 DNS 트래픽용으로 특별히 설계된 네트워크 캡처 유틸리티입니다. pcap(3) 형식으로 바이너리 데이터를 생성합니다. 이 유틸리티는 tcpdump(1)와 유사하지만 DNS 트랜잭션 및 프로토콜 옵션에 맞게 사용자 정의된 많은 기능이 있습니다.

라는 캡처/녹화 기능도 있습니다.도메인 이름 서버, 그러나 이는 BIND의 특정 버전에만 존재하며 BIND의 마지막 버전(현재 9.11) 이후에는 항상 공식적으로 포함되는 것으로 보입니다. 이는 아직 여러 배포판에 채택되지 않았을 수 있으므로 BIND 컴파일이 필요합니다.

BIND와 통합되고 dnscap.

dnstap은 프로토콜 버퍼(구조화된 데이터를 직렬화하는 메커니즘)와 함께 DNS 서버에 유연한 바이너리 로그 형식을 도입하는 솔루션입니다. Robert Edmonds는 dnstap의 아이디어를 내놓고 두 가지 특정 사용 사례를 기반으로 첫 번째 구현을 만들었습니다.

  • 동기식 I/O 병목 현상과 메시지 형식을 제거하여 쿼리 로깅을 가속화합니다.
  • 수동 DNS 패킷 대신 전체 메시지를 캡처하여 복잡한 상태 재구성을 방지합니다.

~에서dnstap을 사용하여 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";
};

관련 정보