我想记录对我的 DNS 的查询来自特定 IP。 这可能吗?
现在我有这个:
channel query_log {
file "/var/named/data/queries.log" versions 2 size 1G;
severity debug 3;
print-category yes;
print-severity yes;
print-time yes;
};
category queries { query_log;};
您可能可以想象,在我们繁忙的网络上,“queries.log”文件的增长速度极快。我只想记录来自特定 IP 的查询。有没有办法使用任何渠道选项来做到这一点?我考虑过创建一个单独的视图(以匹配我想要记录的主机),但您只能在 named.conf 中有一个“日志记录”选项(不在视图内):(
谢谢。
答案1
我认为没有任何方法可以配置绑定来执行您想要的过滤。
我可以想到两种方法可以实现我认为你想要的结果。
设置绑定查询日志,仅保留 1 个版本,并减少保留的日志的大小。
保持下面的命令运行,以不断监视查询日志的变化,并将要保存的信息存储到单独的文件中。
tail --follow --retry /var/named/data/queries.log \
| grep 'ip.ad.dd.res' > /var/named/data/queries_ip.ad.dd.res.log
第二种方法是使用 tcpdump 捕获来自该主机的所有传入请求。您可以使用如下命令。
tcpdump -n dst port 53 and src host ip.ad.dd.res > /var/log/dns_ip.ad.dd.res.log