![iptables 使用 DENY 而不是 ACCEPT 来限制速率](https://linux22.com/image/1555704/iptables%20%E4%BD%BF%E7%94%A8%20DENY%20%E8%80%8C%E4%B8%8D%E6%98%AF%20ACCEPT%20%E6%9D%A5%E9%99%90%E5%88%B6%E9%80%9F%E7%8E%87.png)
我知道这是一个奇怪的问题,但我找不到任何解决方案。我有一个问题,通过这些规则(来自iptables-save
):
-A INPUT -p tcp -m tcp --tcp-flags RST RST -m limit --limit 2/sec --limit-burst 2 -j ACCEPT
-A INPUT -p tcp -m conntrack --ctstate NEW -m limit --limit 60/sec --limit-burst 20 -j ACCEPT
只要符合速率限制规则,所有端口都是开放的。那么,我如何才能让这些规则拒绝所有超过速率限制的连接,而不是允许所有低于速率限制的连接?
答案1
建议:您应该遵循此规则来防止阻止正在进行的连接:
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags RST RST -m limit --limit 2/sec --limit-burst 2 -j ACCEPT
-A INPUT -p tcp -m conntrack --ctstate NEW -m limit --limit 60/sec --limit-burst 20 -j ACCEPT
-A INPUT -p tcp -m tcp --tcp-flags RST RST -j DROP
-A INPUT -p tcp -m conntrack --ctstate NEW -j DROP
现在,所有不被第一条规则接受的匹配流量都将被丢弃。