我知道我应该设置 fail2ban 但此刻我想拒绝来自一个 IP 地址的访问并尝试以下 ufw 命令:
sudo ufw insert 1 deny from xx.xx.xx.xx to any
以下是 ufw status 的输出(IP 已被阻止):
Status: active
To Action From
-- ------ ----
Anywhere DENY xx.xx.xx.xx
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
我看到规则已添加且防火墙已激活,但我仍然看到来自该 IP 的连接:
netstat -natp | grep xx.xx.xx.xx
返回:
tcp 0 92672 yy.yy.yy.yy:443 xx.xx.xx.xx:32988 ESTABLISHED -
我也尝试过重新启动服务器,但是没有成功。
我还可以检查/尝试什么?
答案1
如果您的防火墙/网络过滤子系统不能正常工作,Fail2ban 也不会帮助您(因为它也会通过禁止来使用它)。
回到问题 - 您应该检查您的 ufw 配置(也在低级过滤器中,因此是其后端 iptables/nftables)。请参阅https://github.com/fail2ban/fail2ban/issues/2545#issuecomment-543347684举个例子。
例如,如果您对已建立的连接有一些白名单规则(某些系统上是默认的!),则添加新的 ufw 规则可能不起作用,因此您需要:
- 或者另外拒绝/丢弃这些已建立的连接(例如使用
tcpkill
,ss -K
或cutter
) - 或者完全删除这个(可能是低级的)已建立连接的规则,或者将其优先级设置为低(将其移到规则/链之下)。
- 或者在 ufw 规则允许建立连接之前,使用链内的低级模块(iptables/nftables)“禁止”它。
另请注意类似问题的答案: