我不断收到来自此 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