Fail2Ban 的配置文件(通常位于 /etc/fail2ban/jail.conf 或推荐使用的 /etc/fail2ban/jail.local)中包含多个关键参数,用于控制其行为。以下是 常用配置项及其含义 的详细说明:
📌 全局默认配置(在 [DEFAULT] 段中)
| 配置项 | 默认值示例 | 含义 |
|---|---|---|
ignoreip | 127.0.0.1/8 ::1 | 忽略这些 IP 地址(永不封禁),可添加你的管理 IP,如 192.168.1.0/24 203.0.113.5 |
bantime | 600(秒) | 封禁时长(秒)。-1 表示永久封禁;支持 1h、1d 等(Fail2Ban ≥ 0.9) |
findtime | 600 | 在此时间窗口内(秒),若失败次数达到 maxretry,则触发封禁 |
maxretry | 5 | 在 findtime 内允许的最大失败次数 |
backend | auto | 日志监控方式:auto、pyinotify(高效)、gamin、polling |
usedns | warn | 是否反向解析 IP:yes(慢)、no(快)、warn(默认,仅记录警告) |
loglevel | INFO | 日志级别:DEBUG, INFO, WARNING, ERROR, CRITICAL |
logtarget | /var/log/fail2ban.log | Fail2Ban 自身日志输出位置 |
🛡️ Jail(监牢)特定配置(如 [sshd], [nginx-http-auth])
每个 jail 可继承或覆盖 [DEFAULT] 中的设置。
| 配置项 | 示例 | 含义 |
|---|---|---|
enabled | true / false | 是否启用该 jail |
port | ssh 或 22,80,443 | 要封禁的端口(可写服务名或端口号) |
filter | sshd | 对应 /etc/fail2ban/filter.d/sshd.conf 中的规则名称 |
logpath | /var/log/auth.log | 要监控的日志文件路径(可多行) |
action | %(action_)s | 触发封禁时执行的动作(如 iptables、firewalld、邮件通知等) |
maxretry / bantime / findtime | (同上) | 可针对特定服务单独设置 |
💡
action常见值:
%(action_)s→ 默认动作(通常是 iptables 封 IP)%(action_mw)s→ 封禁 + 发邮件给管理员%(action_mwl)s→ 封禁 + 邮件 + 附带日志片段
🔧 动作(Action)相关(在 action.d/ 目录中定义)
虽然不直接写在 jail.local 主体中,但可通过 action 引用:
action = %(action_mwl)s
sendmail-whois[name=SSH, dest=admin@example.com, sender=fail2ban@example.com]
📁 配置文件结构简要说明
/etc/fail2ban/fail2ban.conf:主程序配置(日志、socket 等,一般无需改)/etc/fail2ban/jail.conf:官方默认 jail 配置(不要直接修改)/etc/fail2ban/jail.local:用户自定义配置文件(优先级更高,推荐使用)/etc/fail2ban/filter.d/*.conf:日志匹配规则(正则表达式)/etc/fail2ban/action.d/*.conf:封禁/通知动作脚本
✅ 最佳实践建议
- 始终使用
jail.local覆盖配置:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local - 将你的 IP 加入
ignoreip,避免自己被锁。 - 合理设置
bantime:太短无效,太长影响误触用户。 - 测试 filter 规则:
sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf
📝 示例:一个典型的 SSH jail 配置
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 1h
findtime = 10m
ignoreip = 127.0.0.1/8 192.168.1.0/24 203.0.113.10
action = %(action_mwl)s
上述表示:10 分钟内失败 3 次,封禁 1 小时,并邮件通知管理员。
通过理解这些常用配置项,你可以灵活、安全地定制 Fail2Ban 的防护策略。


请登录后查看回复内容