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

BIND 中根本没有规定使用该logging指令来记录查询的答案。

此外,除了隐私考虑之外,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";
};

相关内容