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