用iptables丢弃第一个数据包

我们的服务器正在进行UDP-flood欺骗IP攻击。 我想,我们可以用iptables解决这个问题,我想用iptables做一个规则。

当一个ip试图发送一个udp数据包时,iptables将会阻塞这个。 在第一个包之后,持续10秒。 其他数据包将被接受。

我怎样才能使这与iptables?

尝试

iptables -A INPUT -p udp [--dport 12345] -m recent --name attack --set iptables -A INPUT -p udp [--dport 12345] -m recent --name attack --rcheck --seconds 10 --hitcount 2 -j ACCEPT iptables -A INPUT -p udp [--dport 12345] -j DROP 

这应该允许来自任何给定地址的第二个和随后的数据包在十秒钟的滚动窗口中; 其他将被删除。 像往常一样,让他们在你现有的规则集合适的地方是非常重要的,你的问题。 如果您不是通过端口来限制这个,请确保您不要lockingDNS响应(以及其他基于udp的响应)。