记录查询时有没有什么方法可以过滤 IP?(BIND 9.3)

记录查询时有没有什么方法可以过滤 IP?(BIND 9.3)

我想记录对我的 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

相关内容