我正在使用 Debian 6 - 64 位操作系统,我的服务器不时通过 udp 协议进行 ddosed/flooded。我基本上托管游戏服务器,我的防火墙设置为对允许端口上的数据包进行速率限制,但有时每个 IP 的速率很低,但 IP 的数量更多,所以我的服务器向攻击 IP 发送传出的 icmp 无法访问的回复,这没有受益,但更阻塞/饱和端口。
我正在研究如何禁用此功能。实际上,受到攻击的端口是允许通过防火墙的,我不能禁用它们,尽管它可以解决问题。我在某些端口范围上运行了许多服务器,因此我不能继续一个接一个地接受这些端口,并决定允许我可能需要的总端口范围。
我正在寻找一些内核能力来阻止这种情况?
为了防止发送 ICMP 不可达数据包,您可以使用 netfilter (iptables) 删除它们:
更好的是通过在 INPUT 流量上使用 DROP 目标而不是 REJECT 来防止它们首先生成(或者内核网络堆栈将创建无法访问的回复而不是 netfilter)
我认为这不会解决您的问题;您需要确定 DDoS 的影响;它是使网络饱和还是消耗系统资源(CPU/内存等)。如果是网络,则将回复静音可能会有所帮助,但您仍将在线接收传入的数据包。
iptables 目标
REJECT
导致发送 ICMP 不可达响应。将目标更改为DROP
将导致传入的数据包无声无息地成为黑洞。