我去别处问了,得到了这样的答复:
使用 DROP 可将任何类型的 DDoS 攻击转变为 SYN 洪水攻击,因为您的服务器期望收到它永远无法收到的 ACK 响应。即使您可以微调 TCP 超时选项,某些设置也会硬编码到内核中。REJECT 非常快,占用的带宽很小。有关更多信息,请 Google“drop vs rejection”。
我研究了一下他所说的话,他似乎是对的,但我只是想确定一下。
答案1
使用 DROP 会让他等待超时(数据包在到达您的应用程序之前被丢弃)。您不会发回任何内容。
使用 REJECT 发送一个 RST 数据包,表示端口已关闭。
对于 DoS 保护,使用 DROP 更好,因为您不会发送任何内容。使用 REJECT 则“更好”,因为误连接到您的人会立即知道端口已关闭,而不必等待超时。
Syn 泛洪是指有人发送大量 syn 数据包来启动大量连接(无论是否虚假),而您为每个连接预留资源,但没有真正的用户使用它们。由于您用尽了所有资源,合法用户无法使用您的服务。