Fail2Ban SSH防护指南:自动拦截暴力破解与登录攻击
今天分享如何通过Fail2Ban防止SSH暴力破解。随着服务器直接暴露在公网,SSH暴力破解攻击变得越来越常见。攻击者会使用工具循环尝试不同用户名与密码组合,持续探测服务器登录入口。这类攻击不仅存在账号被入侵的安全隐患,大量频繁的登录请求,还会占用服务器资源,拖慢系统性能。
一、🚨 SSH暴力破解是什么
SSH是Linux服务器远程管理最常用的通道,公网服务器只要开放22端口,就会被扫描器持续探测。攻击者批量循环提交账号密码,一旦密码简单,就有可能被成功登录。就算没有破解成功,海量的失败登录日志,也会增加服务器负载。
Fail2Ban是一款开源防护工具,原理就是监控系统日志,识别短时间内多次登录失败的IP,自动通过防火墙封禁该IP一段时间,拦截持续爆破行为。
二、📦 安装Fail2Ban(主流Linux发行版)
Debian / Ubuntu:
apt update apt install fail2ban -y systemctl enable --now fail2ban
CentOS / Rocky / AlmaLinux:
dnf install fail2ban -y systemctl enable --now fail2ban
三、⚙️ 基础配置SSH防护规则
重点:不建议直接修改jail.conf主配置文件,系统软件升级时会覆盖该文件。推荐新建jail.local本地配置,自定义规则写在此文件。
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local nano /etc/fail2ban/jail.local
找到[sshd]区块,修改下面参数:
[sshd] enabled = true maxretry = 3 bantime = 3600 findtime = 600
- maxretry:允许失败次数,连续输错3次即触发封禁;
- findtime:检测时间窗口,10分钟内统计失败登录;
- bantime:封禁时长,单位秒,示例封禁1小时。
> ⚠️配置前建议添加自己本地IP到白名单,避免配置错误,直接把自己踢出服务器无法远程。
保存退出,重启服务加载配置
systemctl restart fail2ban
四、📋 常用查看命令
- 查看sshd监狱状态:
fail2ban-client status sshd - 手动解封IP:
fail2ban-client set sshd unbanip 目标IP - 手动封禁IP:
fail2ban-client set sshd banip 目标IP
五、🛡️ 额外安全建议
Fail2Ban属于辅助防护手段,不能完全替代基础安全策略。推荐搭配下面方案进一步加固SSH:
- 禁用root账号直接SSH登录;
- 关闭密码登录,改用SSH密钥登录;
- 修改默认22端口,降低被批量扫描概率;
- 设置白名单,固定可信IP才允许连接SSH。
六、✅ 小结
公网服务器几乎每时每刻都会遇到SSH扫描爆破,部署Fail2Ban可以自动拦截高频失败登录IP,减少爆破带来的压力与入侵风险。不过工具只是一层防护,密钥登录、最小权限、定期日志审计,多维度组合防护,服务器安全才更稳妥。
免责提示:本文为Fail2Ban工具科普教程,不同系统版本、防火墙环境会存在差异。上线前建议在测试机验证配置,避免误封自己IP,本文不承担配置操作带来的业务风险。

















![表情[baoquan]-服务器测评_云 VPS 推荐_运维技术教程与源码分享 - 环球云域数据平台 cloudidc.vip](https://cloudidc.vip/wp-content/themes/zibll/img/smilies/baoquan.gif)


暂无评论内容