其实可以设置证书登录,然后把ssh登录22端口关了
在linux上安装Fail2ban
sudo yum install fail2ban
sudo apt-get install fail2ban
为SSH服务器配置Fail2ban
sudo vi /etc/fail2ban/jail.local
[DEFAULT]
ignoreip = 127.0.0.1 172.31.0.0/24 10.10.0.0/24 192.168.0.0/24
bantime = 86400
maxretry = 5
findtime = 600
mta = sendmail
[ssh-iptables]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
sendmail-whois[name=SSH, dest=your@email.com, sender=fail2ban@email.com]
logpath = /var/log/auth.log
logpath = /var/log/secure
maxretry = 3
根据上述配置,fail2ban会自动禁止在最近10分钟内有超过3次访问尝试失败的任意IP地址。一旦被禁,这个IP地址将会在24小时内一直被禁止访问 SSH 服务
重启
sudo service fail2ban restart
在 Fedora 或 CentOS/RHEL 7:
sudo systemctl restart fail2ban
查看拦截列表
sudo iptables
Chain INPUT (policy ACCEPT)
target prot opt source destination
fail2ban-SSH tcp
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain fail2ban-SSH (1 references)
target prot opt source destination
DROP all
RETURN all
如果你想要从fail2ban中解锁某个IP地址,你可以使用iptables命令:
sudo iptables -D fail2ban-SSH -s 192.168.1.8 -j DROP
显示出被禁止IP地址列表
sudo fail2ban-client status ssh-iptables
解锁特定的IP地址:
sudo fail2ban-client set ssh-iptables unbanip 192.168.1.8
开机自启
在 CentOS/RHEL 6中:
sudo chkconfig fail2ban on
在 Fedora 或 CentOS/RHEL 7:
sudo systemctl enable fail2ban
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix