在Ubuntu系统中,限制SSH登录尝试可以通过配置PAM(Pluggable Authentication Modules)来实现。以下是具体步骤:

方法一:使用pam_tally2模块
-
安装
pam_tally2模块:sudo apt-get update sudo apt-get install libpam-tally2 -
编辑PAM配置文件: 打开
/etc/pam.d/sshd文件:sudo nano /etc/pam.d/sshd在文件的顶部添加以下行:
auth required pam_tally2.so onerr=fail deny=5 unlock_time=600这里的参数解释如下:
deny=5:允许的最大失败登录尝试次数。unlock_time=600:锁定时间(秒),超过这个时间后账户会自动解锁。
-
重启SSH服务:
sudo systemctl restart sshd
方法二:使用fail2ban模块
fail2ban是一个更强大的工具,可以监控日志文件并自动封禁恶意IP地址。
-
安装
fail2ban:sudo apt-get update sudo apt-get install fail2ban -
配置
fail2ban: 编辑/etc/fail2ban/jail.local文件:sudo nano /etc/fail2ban/jail.local添加以下内容:
[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5 bantime = 600这里的参数解释如下:
maxretry:允许的最大失败登录尝试次数。bantime:封禁时间(秒)。
-
启动并启用
fail2ban服务:sudo systemctl start fail2ban sudo systemctl enable fail2ban
验证配置
-
使用
pam_tally2: 可以通过以下命令查看账户的锁定状态:sudo pam_tally2 --user=username -
使用
fail2ban: 可以通过以下命令查看封禁的IP地址:sudo fail2ban-client status sshd
通过以上方法,你可以有效地限制SSH登录尝试,提高系统的安全性。