如何限制SSH登录尝试次数
如何限制SSH登录尝试次数,有效防御暴力破解? 在服务器安全领域,限制SSH登录尝试次数是一项基础但至关重要的防御措施。它就像给系统大门加装了一个智能门禁,能有效拦截那些反复尝试密码的“不速之客”,从而显著降低暴力破解攻击的成功率。下面,我们就来聊聊几种主流的实现方法,你可以根据自身的技术栈和偏好灵
如何限制SSH登录尝试次数,有效防御暴力破解?
在服务器安全领域,限制SSH登录尝试次数是一项基础但至关重要的防御措施。它就像给系统大门加装了一个智能门禁,能有效拦截那些反复尝试密码的“不速之客”,从而显著降低暴力破解攻击的成功率。下面,我们就来聊聊几种主流的实现方法,你可以根据自身的技术栈和偏好灵活选择。

方法一:使用PAM(可插拔认证模块)
PAM是Linux系统中一个非常灵活的认证框架,用它来限制登录尝试次数,可以说是“原生”且高效。具体操作起来,只需要几步。
编辑PAM配置文件:打开
/etc/pam.d/sshd这个文件,在里面添加下面这行配置:auth required pam_tally2.so onerr=fail deny=5 unlock_time=600这行配置是什么意思呢?我们来拆解一下:
onerr=fail:一旦认证失败,立刻返回失败状态。deny=5:这是关键数字,意味着最多允许5次失败的登录尝试。unlock_time=600:如果触发了锁定,用户将被禁止登录600秒(10分钟)。
重启SSH服务:配置完成后,别忘了让改动生效:
sudo systemctl restart sshd
方法二:使用Fail2Ban
如果说PAM是守门员,那么Fail2Ban更像是一个主动的巡逻哨兵。它能实时监控日志,自动识别恶意行为并封禁IP,功能更为强大。
安装Fail2Ban:首先,确保它已经安装在你的系统上:
sudo apt-get install fail2ban配置Fail2Ban:接下来,需要针对SSH服务进行配置。编辑
/etc/fail2ban/jail.local文件,加入以下段落:[sshd] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 5 bantime = 600这里每个参数都扮演着不同角色:
enabled = true:启用针对SSH的监控。port = ssh:指定监控的端口是SSH默认端口。filter = sshd:使用内置的sshd规则集来分析日志。logpath = /var/log/auth.log:告诉Fail2Ban去哪里查看认证日志。maxretry = 5:同样,设定最大重试次数为5次。bantime = 600:违规IP将被禁止访问600秒。
重启Fail2Ban服务:配置保存后,重启服务使其开始工作:
sudo systemctl restart fail2ban
方法三:使用iptables
对于喜欢在网络层解决问题的管理员,直接用iptables防火墙规则来实现限制,是另一种直接了当的思路。这种方法不依赖额外服务,规则生效快。
创建iptables规则:在终端中执行以下两条命令:
sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set sudo iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 5 -j DROP这两条规则配合起来,形成了一个动态的防御机制:
- 第一条规则:当有新的SSH连接请求(端口22)时,将其源IP记录到一个“近期列表”中。
- 第二条规则:同样是针对新的SSH连接,它会检查这个IP是否在“近期列表”里,并且是否在60秒内已经尝试连接了5次。如果条件满足,则直接丢弃(DROP)该连接请求。
保存iptables规则:内存中的规则重启会消失,所以需要保存到文件:
sudo iptables-sa ve > /etc/iptables/rules.v4设置iptables规则开机自启动:为了确保服务器重启后规则依然有效,可以创建一个启动脚本。编辑
/etc/network/if-pre-up.d/iptables文件,内容如下:#!/bin/sh iptables-restore < /etc/iptables/rules.v4然后,给这个脚本加上执行权限:
sudo chmod +x /etc/network/if-pre-up.d/iptables
几点重要的注意事项
- 操作前请务必谨慎:在实施任何上述限制措施之前,确保你有其他可用的访问途径(如控制台),并充分理解更改的影响,避免把自己锁在门外。
- 安全策略需要持续维护:没有一劳永逸的安全。定期检查日志、更新系统和安全规则,才能应对不断变化的威胁态势。
- 善用云平台工具:如果你使用的是AWS、阿里云等云服务,他们提供的安全组或网络ACL功能,通常也能非常方便地设置连接频率限制,可以作为补充或替代方案。
总的来说,无论是通过系统底层的PAM、功能强大的Fail2Ban,还是网络层的iptables,都能有效地为你的SSH服务筑起一道防线,大幅提升系统的整体安全性。选择最适合你运维习惯的那一种,马上行动起来吧。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















