Fail2Ban SSH防护指南:自动拦截暴力破解与登录攻击

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,本文不承担配置操作带来的业务风险。

文章广告横幅
网络违法犯罪举报平台 广告
© 版权声明
THE END
喜欢就支持一下吧
点赞90 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容