![在 iptables 中使用不同于默认 1/秒的速率](https://linux22.com/image/745068/%E5%9C%A8%20iptables%20%E4%B8%AD%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E4%BA%8E%E9%BB%98%E8%AE%A4%201%2F%E7%A7%92%E7%9A%84%E9%80%9F%E7%8E%87.png)
这段代码完美地完成了限制 syn 连接的任务,但第 4 行需要将其改为 1/5 秒,而不是 1/si,这是我正在进行的一项作业,需要防止 syn-flood 攻击
iptables -N syn_flood
iptables -A INPUT -p tcp --syn -j syn_flood
iptables -A syn_flood -m limit --limit 1/s --limit-burst 3 -j RETURN
iptables -A syn_flood -j DROP
答案1
如果您真的认为每秒 1 个 syn 是“太多”的……那么您的服务器就存在一些严重的问题。话虽如此,最低限制limit
是 1 秒。如果不重写该模块,您将无法实现每秒少于 1 个数据包。
老实说,如果您想每 1/5 秒获取 1 个数据包...为什么不简单地指定 5/s?(每秒 5 个数据包)这几乎是一回事。
如果您只是想限制每个主机的连接,请尝试使用connlimit
而不是limit
...或者hitcount
限制每个 IP 的连接。