我安装了一台新的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规则,您将看到,它被更改,然后事情应按预期工作。