我正在尝试过滤日志以查找可疑的外部网站出站流量。在 DNS 服务器上,我可以设置调试日志记录,但我看不到查看向服务器发出 DNS 请求的计算机的来源的方法。有没有办法捕获这些数据以了解到达我的服务器的 DNS 请求的源 IP 地址?
答案1
我会考虑使用Wireshark或微软的网络监视器使用足够精细的捕获过滤器将捕获限制在您要查找的 DNS 流量。一旦您捕获了数据,您就可以返回并执行分析。
我可能会使用tshark
Wireshark 中的命令行程序将流量捕获到相对较小的文件中,然后tshark
在另一台机器上再次使用它来转储文件并对其进行 grep。捕获命令行可能类似于:
tshark -i <inteface number here> -b filesize:32768 -w dns_capture udp and dst port 53 and dst host x.x.x.x
您可以使用 来获取机器的接口号tshark -D
。-b filesize:32768
参数指定在开始新的捕获文件之前捕获到 32,768KB (32MB) 的缓冲区中。-w dns_capture
指定基本输出文件名dns_capture
(每个文件填满时将添加增量计数和时间戳)。是udp and dst port 53 and dst host x.x.x.x
一个 tcpdump 捕获过滤器,它指定仅捕获目标端口为 53 且目标地址为(您应在其中替换 DNS 服务器的 IP 地址)的 udp 数据x.x.x.x
包。
获得文件后,您可以使用任意数量的 PCAP 文件分析工具。就我个人而言,我只会使用tshark
参数-r
来读取文件,然后使用参数将它们转储为人类可读的文本-T text
。然后我只需 grep 输出即可。(我这样做主要是因为我已准备好所有工具。还有很多其他方法可以做到这一点。)