为什么 fail2ban 不禁止?(ubuntu,ssh)

为什么 fail2ban 不禁止?(ubuntu,ssh)

我安装了一台全新的 Ubuntu 机器。然后我更改了 ssh 端口,不再是 22,而是 22111:

然后我安装了fail2ban:

apt-get install fail2ban -y
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
service fail2ban restart
iptables -L

然后我尝试从 ip 192.168.1.22 进行 SSH 登录。几次错误登录后,fail2ban 将以下行添加到 iptables。

-A fail2ban-ssh -s 192.168.1.22/32 -j REJECT --reject-with icmp-port-unreachable

之后,我尝试使用正确的凭据再次登录,并且可以毫无问题地从 IP 192.168.1.22 登录

iptables 规则仍然存在。

我需要额外的配置吗?

答案1

正如评论中提到的,您需要将文件port中的值更改jail.local为 ssh 正在监听的自定义端口号。

[ssh]

enabled  = true
port     = 22111 # custom port here
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 6

这是因为,该端口号用于创建 INPUT 链的 iptables 规则,如下所示,来自您的帖子:

-N fail2ban-ssh -A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh

查看的值--dports 22,这意味着将首先匹配那些发往端口 22 的数据包,因此,当您尝试登录另一个端口时,它不会匹配,因此不会采用针对该特定 IP 的以下规则:

-A fail2ban-ssh -s 192.168.1.22/32 -j REJECT --reject-with icmp-port-unreachable

更改端口并重新启动 fail2ban,然后再次检查 iptables 规则,您将看到它已更改,然后事情应该按预期工作。

相关内容