如何监控端口 53 的流量 (DNS)

如何监控端口 53 的流量 (DNS)

互联网上有大量 tcpdump 教程,这让我有点困惑。我在虚拟化服务器上​​运行着一些虚拟机。我正在调试一个问题。端口 53 有问题。我有一个桥接设置,其中有问题的机器上的 4 个 LAN 卡中有一张处于活动状态,它是 xen-br0。我想检查服务器上的端口 53 上是否有来自相关 LAN 上其他机器的请求。我还想看看 LAN 上的客户操作系统或任何其他机器是否在端口 53 上发送流量。由于通过 tcpdump 生成了大量消息,我发现很难在所需端口上 grep 输出。

那么如果有人能给出一个有用的例子,我该如何使用它呢?提前谢谢了。

答案1

您可以使用此命令:( tcpdump -n -s 1500 -i eth0 udp port 53 将“eth0”替换为您的以太网接口名称,例如“fxp0”)这将显示进出您机器的 UDP 端口 53(DNS)的所有数据包来源:DNS 练习 1

答案2

如果你只想查看端口 udp/tcp 53 上谁在和谁对话没有需要有此类对话的详细负载,最好的选择是使用 netflow。

我猜你正在使用 Linux。如果是这样,你可以使用ulogd从接收的流量中生成 netflow 信息,然后使用转储(如果你是命令行导向的)和/或恩夫森(如果您更喜欢视觉类型)(nfdump/nfsen 是同一开源项目的一部分)。

举例来说,ulogd 仅启用了一条 iptables 规则:

-A INPUT -j ULOG --ulog-cprange 48 --ulog-qthreshold 50

并让 fprobe-ulog 运行,这样 ulogd 生成的每一条流都会进入 netflow 收集器(在本例中为 nfdump),监听您配置 nfdump 监听的端口(在本例中为端口 9995):

29040 ?        Ssl   65:55 /usr/sbin/fprobe-ulog -Xeth0:100 localhost:9995

因此,如果您想知道谁尝试通过端口 udp/tcp 53 与您的服务器通信,您可以使用 nfdump 查询您的流量:

root@my_machine:/usr/local/nfdump/bin/nfdump -R 2011 'dst port 53 && dst ip  XXX.XXX.212.184' | more
Date flow start          Duration Proto      Src IP Addr:Port          Dst IP Addr:Port   Packets    Bytes Flows
2011-01-07 06:23:28.031     0.000 UDP      200.80.42.244:54    ->  XXX.XXX.212.184:53           1       63     1
2011-01-07 20:34:07.287     0.000 UDP        38.229.1.72:42196 ->  XXX.XXX.212.184:53           1      119     1
2011-01-08 04:29:53.287     0.000 UDP     194.199.24.101:45274 ->  XXX.XXX.212.184:53           1       57     1
2011-01-28 08:47:45.171     0.000 UDP        38.229.1.72:42914 ->  XXX.XXX.212.184:53           1      119     1
2011-02-18 04:56:48.359    22.335 UDP    200.186.243.203:60808 ->  XXX.XXX.212.184:53           3      211     1
2011-02-18 04:57:07.363     9.026 TCP    200.186.243.203:60970 ->  XXX.XXX.212.184:53           3      144     1
2011-02-18 04:58:48.845     2.389 UDP    200.186.243.203:60808 ->  XXX.XXX.212.184:53           2      116     1
2011-02-18 04:58:48.844     8.385 TCP    200.186.243.203:61051 ->  XXX.XXX.212.184:53           3      144     1
2011-02-18 04:59:00.829    32.490 UDP    200.146.126.135:39171 ->  XXX.XXX.212.184:53           5      339     1
2011-02-18 04:59:22.738     9.132 TCP    200.146.126.135:57213 ->  XXX.XXX.212.184:53           3      152     1
...
...
...
Summary: total flows: 310, total bytes: 47456, total packets: 839, avg bps: 0, avg pps: 0, avg bpp: 56
Time window: 2011-01-07 06:23:28 - 2011-03-03 05:57:55
Total flows processed: 3087449, Blocks skipped: 0, Bytes read: 161058180
Sys: 0.966s flows/second: 3193300.5  Wall: 0.854s flows/second: 3611887.9

对于您描述的这个特定问题,安装 ulogd 和 nfdump/nfsen 可能听起来有些小题大做,但经验告诉我,启用基础设施 netflow 将极大地帮助您在未来可能需要进行的任何类型的流量/安全故障排除,因此非常值得付出努力。

答案3

嘿,我知道这不是一个完整的解决方案,但它很快,可能会派上用场

lsof -i:53

这应该能让你了解端口的用途。(PS:我从来没有将它用于 DNS)

相关内容