Fail2Ban需配置日志路径、匹配规则等联动机制才生效;安装后须编辑jail.local启用sshd、设logpath、port、ignoreip;调优maxretry、findtime、bantime;重启后用fail2ban-client验证状态。

Fail2Ban 不是“装上就完事”的工具,而是需要明确日志路径、匹配规则、封禁逻辑和白名单策略的一套联动机制。它真正起效的前提,是你清楚自己服务器的 SSH 日志在哪、攻击行为怎么被记录、以及哪些 IP 绝对不能被误封。
安装与服务启用
在主流发行版中,安装命令简洁统一:
- Ubuntu/Debian:sudo apt update && sudo apt install -y fail2ban
- CentOS/RHEL(需先启用 EPEL):sudo yum install -y epel-release fail2ban
安装后立即启用并启动服务:
- sudo systemctl enable --now fail2ban
- 验证运行状态:sudo systemctl status fail2ban(应显示 active (running))
配置核心防护:jail.local 是唯一该动的文件
切勿修改 /etc/fail2ban/jail.conf——升级时会被覆盖。正确做法是创建或编辑本地覆盖文件:
- sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- 用编辑器打开:sudo nano /etc/fail2ban/jail.local
在 [sshd] 段落中确保以下几项已设置:
- enabled = true
- logpath = /var/log/auth.log(Debian/Ubuntu)或 /var/log/secure(RHEL/CentOS)
- port = ssh(若改过 SSH 端口,如 2222,则写成 port = 2222)
- ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 203.0.113.5(填入你自己的办公网段或固定运维 IP)
关键参数调优:安全与可用性的平衡点
这些值不建议照搬,默认值常偏宽松。根据你服务器的实际访问模式调整:
- maxretry = 3–5:3 更激进(适合仅密钥登录+无脚本重试的环境),5 更宽容(允许偶尔输错密码)
- findtime = 10m:即 600 秒内累计失败次数。缩至 5m 可更快响应高频爆破
- bantime = 1h 或 24h:避免设为永久(-1),防止因配置失误导致自己被锁死
验证与日常维护
配置不是终点,验证才是关键:
- 重启服务生效:sudo systemctl restart fail2ban
- 检查 SSH 监控状态:sudo fail2ban-client status sshd(会显示当前封禁数及 IP 列表)
- 实时观察拦截动作:sudo tail -f /var/log/fail2ban.log(留意 “Ban” 和 “Unban” 行)
- 手动解封某 IP:sudo fail2ban-client set sshd unbanip 192.0.2.100
不复杂但容易忽略。

















