domain-name-system – 我可以在Bind 9上记录特定的查询吗?

我想知道哪些主机进行特定的DNS查询,以及在什么时间.有没有办法在Bind 9上获取这个特定的日志?

例如,我可能想记录xyzzy.net的所有A查询.

解决方法

将正确类型的通道节放在named.conf中的logging {}块中.
channel "client" {
            file "/var/log/client_named.log";
            severity info;
            print-time yes;
        };

可能会做的伎俩.这应该会得到这样的数据:

22-Apr-2011 12:06:53.294 client xxx.xxx.xxx.xxx#56202: view external-in: query: st.in.multi.surbl.org IN A +

编辑:警告 – 启用此类日志记录将非常快速生成非常大的日志文件,并且可以轻松填充磁盘而无需进行某种日志轮换/压缩,并且可能最适合于简短的数据收集会话,而不是永久配置.

如果(以及后处理生成的日志文件)太多,您可以使用tcpdump之类的工具执行此操作.

tcpdump -i eth0 dst port 53 | egrep 'A' | egrep 'xyyzyy.com'

甚至更好,编写一个过滤器,只匹配你要过滤的DNS数据包的正确位(在这种情况下为A?类型)

但是,可能更容易使用像dnstop这样的工具. dnstop webpage将为您执行所有协议解码,IIRC您可以使用-n过滤它的输出,以限制它捕获到单个域的内容.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些