互联网上有大量 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)