如何使用 ufw 拒绝 IP 范围?

如何使用 ufw 拒绝 IP 范围?

我不断收到来自此 IP 地址 45.135.232.165 的登录尝试,这显然是俄罗斯已知的滥用主机。我想阻止来自整个子网 45.135.232.* 的所有端口上的所有流量,所以我这样做了

ufw deny from 45.135.232.0/24

ufw status 显示规则为

To                         Action      From
--                         ------      ----
Anywhere                   DENY        45.135.232.0/24

但是 lastb 仍然会报告来自上述地址的每日登录尝试。我遗漏了什么?

答案1

在正常情况下,上述命令应该可以完美运行。但是,如果它没有按预期工作,那么您需要查看 iptable 中是否存在允许同一 IP 访问您的机器的现有规则。如果是这种情况,那么您的系统将优先考虑它而不是拒绝规则,因为它首先出现在 iptable 规则集中。

要解决此问题,您需要将 ufw 拒绝规则优先于系统上为同一 IP/子网设置的其他规则。运行以下命令:

              ufw insert 1 deny from 45.135.232.0/24

插入 1上述命令中的部分将规则置于 iptables 规则集中的第一位。因此,对于同一 IP,其优先级高于任何其他规则集。

对于不同的场景,你可以检查这里这可能会对你有帮助。

答案2

如果您使用 ipv6 地址,它们将无法使用insert 1。使用可以prepend正确处理 ipv4 和 ipv6 的更安全。如果您使用 docker 或 kubernetes 之类的东西,流量将被路由到它们的子网。所以输入规则将不起作用。它们仅适用于您的主主机访问。您需要 ufw route。正如所说,一些应用程序可以在 ufw 规则之前直接将规则添加到 iptables 中。在这种情况下,您的规则可能不起作用,因为其他规则先起作用。

ufw prepend deny from 45.135.232.0/24
ufw route prepend deny from 45.135.232.0/24

相关内容