暴露从 netcat 打开的端口是否安全?

暴露从 netcat 打开的端口是否安全?

我计划使用以下命令从 LAN 内的设备打开到互联网的端口:

nc -kl 9999 > /dev/null

这个想法只是为了在我想检查时知道该特定设备是否已打开(由于我的家用路由器的限制,无法使用 ICMP 转发来做到这一点)。

但是我不确定 netcat 是否容易受到 DDoS 攻击或其他类型的漏洞。

答案1

大部分情况下是的,但可能并非全部。

默认情况下,netcat 根本不处理接收到的数据 - 它所做的就是将数据写入 stdout - 因此没有可以利用的漏洞。

(假设它正确地重用了缓冲区并且不会泄漏内存,但这很容易通过实验来验证;通过 netcat 传输几 GB,看看它的内存使用量是否增加。对于这样一个简单的工具,情况确实不应该如此。)

由于 netcat 是基于 TCP 的,因此它不能比任何其他 TCP 服务更成为 DDoS“反射器”。

Netcat(至少是你的版本)每次只能处理一个连接,因此当一个主机可能向您发送无限的数据流并浪费您的 CPU 资源,这仅限于一台主机,因此并不完全是“分布式” DoS。

另一方面,由于 netcat 每次只处理一个连接(并让操作系统预先接受并缓冲有限的连接数),如果您突然收到大量“机器人”连接,当“待处理”连接槽数耗尽时,您自己的远程检查可能会开始失败。考虑使用更高的端口号(从瞬时范围)以减少机器人找到它的机会。

相关内容