iptables 使用 DENY 而不是 ACCEPT 来限制速率

iptables 使用 DENY 而不是 ACCEPT 来限制速率

我知道这是一个奇怪的问题,但我找不到任何解决方案。我有一个问题,通过这些规则(来自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

现在,所有不被第一条规则接受的匹配流量都将被丢弃。

相关内容