我的服务器目前正在进行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通信时,也会有其他的后果,具体取决于服务器。