运行 tcpdump 启动 ssh flood

awa*_*tan -1 ssh tcp tcpdump flooding embedded-linux

我在 PLC 中运行运行时 Linux。我的开发机器运行的是 Ubuntu 14.04。PLC和开发机通过一个五口交换机连接。我从我的开发机器 ssh 到 PLC,以传输我在我的开发机器上开发的网络应用程序的可执行文件。

我在 PLC 上运行 tcpdump 来调试我的网络应用程序正在接收的数据包类型,但是一旦我启动 tcpdump,就会开始大量的 ssh 同步和 acks 从我的 ubuntu 机器到 PLC 来回发送。PLC 的以太网控制器的 LED 灯以及开关上的 LED 灯开始快速闪烁。洪水淹没了 PLC,它几乎消失了,而所有其他数据包都被丢弃了。每当我运行 tcpdump 时,感觉就像是一次 DOS 攻击,但是一旦我停止 tcpdump,一切都会平静下来并恢复正常。

我想知道解决这个问题的方法以及它为什么会发生?

任何帮助,将不胜感激。

Zor*_*che 7

我的命令只是 > tcpdump -i eth0。但我不明白为什么运行 tcpdump 会突然升级到大量流量。

试着对着镜子对着镜子,你会明白的。如果没有,请尝试面对镜子和镜子,并防止镜子看到自己。

因为您的 SSH 流量也是通过 SSH 会话捕获和报告的捕获的一部分。当然,因为它是加密的,这意味着您看不到 SSH 数据包中的任何内容,但是当 tcpdump 将数据包的标头打印到您的终端时,对您终端的这些更改正在通过网络传输。但是这些通过网络传输的更改将导致通过网络捕获/显示/等更多数据。

无论如何,解决方案从您的捕获或客户端计算机或两者中过滤掉 ssh。还设置-n选项以防止 tcpdump 执行 DNS 查找,并使用与实际活动无关的 DNS 请求/回复污染您的捕获。

tcpdump -ni eth0 not port 22
tcpdump -ni eth0 not host ip.of.the.sshclient
tcpdump -ni eth0 not host ip.of.the.sshclient and not port 22
Run Code Online (Sandbox Code Playgroud)