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

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

然后我安装了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 SSHlogin。 经过一些错误的login,fail2ban添加后续行到iptables。

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

之后,我尝试再次login正确的凭据,我可以login没有问题,从IP 192.168.1.22

iptables规则仍然存在。

我需要额外的configuration吗?

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

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

这是因为这个端口号是用来为你的文章创buildINPUT链的iptables规则,如下所示:

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

看到--dports 22的值,这意味着这些数据包将首先匹配到端口22,因此,当您尝试login到另一个端口时,它不匹配,因此该特定IP的下一条规则是没有就业:

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

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