Sam*_*rat 5 linux logs dns bind
我已经用 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; };
};
Run Code Online (Sandbox Code Playgroud)
此脚本仅记录来自外部的查询。
如何记录这些请求的服务器响应。
BIND 中没有规定用logging指令记录查询的答案。
此外,除了隐私方面的考虑之外,DNS 服务远程记录它们而不是记录在文件中会更有效。
人们经常运行dnscap来捕获/嗅探 DNS 查询以进行安全分析。
dnscap 是专为 DNS 流量设计的网络捕获实用程序。它以 pcap(3) 格式生成二进制数据。此实用程序类似于 tcpdump(1),但具有许多针对 DNS 事务和协议选项量身定制的功能。
还有一个名为dnstap的捕获/日志记录功能,但它只存在于某些版本的 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";
};
Run Code Online (Sandbox Code Playgroud)