Linux对DDOS进行低级别的阻止udp

我的服务器目前正在进行DDOS攻击,每秒接近500k个UDP数据包。

UDP在iptables中被阻塞,但处理器仍然过载。

任何方式来阻止UDP在较低的水平不通过所有的iptables链/模块的数据包,但甚至之前呢?

丢包的最早点是iptables的raw表,如https://unix.stackexchange.com/questions/243079/netfilter-iptables-why-not-using-the-rawtable所示

你可以把数据包放在PREROUTING链中,像这样:

 iptables -t raw -A PREROUTING -p udp -j DROP 

但是,使用这种方法,您还将删除由服务器发起的请求的DNS响应,因为在执行连接跟踪之前处理raw表。

你可以像这样添加允许的UDP主机:

 iptables -t raw -A PREROUTING -p udp -s !nnn.nnn.nnn.nnn -j DROP 

其中nnn.nnn.nnn.nnn是要用来接收UDP通信的主机的IP地址。

在连接跟踪之前禁用UDP通信时,也会有其他的后果,具体取决于服务器。