fail2ban 是一款用 Python 编写的开源入侵防御工具,通过实时监控 SSH、网站等服务的日志,自动用防火墙封禁反复尝试登录失败的 IP,是 Linux 服务器抵御暴力破解最常用的防护软件之一。

| 类型 | 入侵防御 / 安全工具 |
| 开发语言 | Python |
| 发起者 | Cyril Jaquier 及开源社区 |
| 推出时间 | 2004 年 |
| 许可协议 | 开源(GPL) |
| 官网 | fail2ban.org |
fail2ban 是一款开源的入侵防御框架,用 Python 语言编写,通过扫描服务器日志发现恶意行为并自动封禁来源 IP,主要用于抵御暴力破解攻击。
任何暴露在公网上的服务器,每天都会遭到大量自动化脚本的扫描和撞库:攻击者不断尝试各种用户名密码组合,试图登入 SSH、FTP、邮件或网站后台。fail2ban 的思路很直接——这些攻击必然会在日志里留下连续的失败记录,只要盯住日志,就能揪出攻击者。
它由开发者 Cyril Jaquier 于 2004 年发起,可运行在装有防火墙或包过滤组件的各类 POSIX 系统(如 Linux、BSD)上。工作流程是:后台守护进程持续读取指定日志文件,用正则表达式(failregex)匹配「认证失败」等特征行;当同一 IP 在设定时间窗口内失败次数超过阈值,就调用 iptables、nftables、firewalld 或 TCP Wrapper 等把该 IP 封禁一段时间,到期自动解封。
主流 Linux 发行版可直接用包管理器安装。配置时建议不要直接改 jail.conf,而是新建 jail.local 覆盖默认值,升级时不会被冲掉。最常见的做法是开启 sshd jail 保护 SSH 登录;用 fail2ban-client status 命令可查看当前被封禁的 IP 列表,也可手动解封。
问:fail2ban 能防住所有攻击吗?答:不能。它只针对「反复尝试」类攻击有效,对利用漏洞的单次入侵或分布式的大规模攻击作用有限,应与密钥登录、改端口、防火墙规则等手段配合使用。
问:把自己封了怎么办?答:可通过服务器商的 VNC/控制台登录,用 fail2ban-client 解封自己的 IP,并把常用 IP 加入 ignoreip 白名单预防。
问:改用密钥登录 SSH 后还需要它吗?答:密钥登录已能杜绝密码爆破,但 fail2ban 仍可减少日志噪音、节省资源,并保护网站后台等其他服务,一般建议保留。

| 类型 | 入侵防御 / 安全工具 |
| 开发语言 | Python |
| 发起者 | Cyril Jaquier 及开源社区 |
| 推出时间 | 2004 年 |
| 许可协议 | 开源(GPL) |
| 官网 | fail2ban.org |
登录 后参与讨论
暂无讨论,来发表第一条评论吧