首页/安全/取证与溯源速查/fail2ban 封禁记录与时间线
Linux 取证135 条

fail2ban 封禁记录与时间线

fail2ban 日志记录封禁与解封动作,可与 sshd 失败日志一起构成爆破时间线,并说明哪些来源曾被自动阻断。

取证与溯源速查安全更新于 2026-10-13

封禁记录构成第二时间线

fail2ban 监视日志中的失败记录,达到阈值后自动下发防火墙封禁并在自身日志中记下封禁与解封动作。这条记录独立于 sshd 的失败日志,把两者对齐就能得到一条更完整的爆破时间线:哪些来源被自动阻断、在什么时刻阻断、又是什么时候自动解封。

封禁不等于攻击结束

封禁时长由 jail 的设定决定,默认通常只有十分钟左右,解封后来源可以继续尝试;同时它也只处理当前配置覆盖的日志与协议。因此看到「已被封禁」不能推断攻击停止,要看后续是否仍有失败记录,以及来源地址是否发生变化。

基本信息

适用平台Linux(fail2ban,通常与 iptables/nftables、firewalld 联动)
日志位置/var/log/fail2ban.log
状态查询fail2ban-client status sshd
关键设定maxretry、findtime、bantime 与 ignoreip 白名单
作用范围只覆盖配置中启用的 jail 与对应日志

典型使用场景

  • 爆破时间线:把封禁与解封动作与 sshd 失败日志对齐
  • 确认防护效果:统计被封禁来源的数量与频次变化
  • 排查误封:白名单未覆盖的运维或监控来源被阻断
  • 评估攻击持续性:解封后是否立即恢复尝试
  • 为报告取证:说明该主机部署了自动阻断机制及其配置

查看封禁记录

查看封禁记录
# 当前 jail 状态:已封禁地址与统计
fail2ban-client status sshd 2>/dev/null | head -20

# 封禁与解封动作的时间线
grep -E 'Ban|Unban' /var/log/fail2ban.log | tail -20

# 统计被封禁地址的频次(结合原始日志说明攻击强度)
grep ' Ban ' /var/log/fail2ban.log | awk '{print $(NF-1)}' | sort | uniq -c | sort -rn | head

# 核对关键参数与白名单
grep -E 'maxretry|findtime|bantime|ignoreip' /etc/fail2ban/jail.local /etc/fail2ban/jail.conf 2>/dev/null | head

日志动作类型

动作含义分析用法
Ban来源被加入封禁列表记录阻断时刻与对象
Unban封禁到期或被移除判断防护窗口长度
Found匹配到触发规则说明阈值被达到
Jail started规则加载与重启、配置变更对照
Restore重启后恢复已有封禁解释日志中的成批动作
只配置 IPv4 规则的环境里,IPv6 来源不会出现在封禁列表中;排查时先确认 jail 是否同时覆盖两类地址。
解封动作有时来自管理员手动操作或白名单调整,看到解封记录先核对当次运维记录,不要直接判定为攻击者绕过。

易错点

  • 把封禁当攻击终止:默认封禁时长有限,解封后攻击常立即恢复
  • 忽略 IPv6:只覆盖 IPv4 时,来自 IPv6 的尝试完全不进封禁列表
  • 不核对白名单:自己的运维与监控来源被误封,反而造成故障
  • 只看 fail2ban 日志不看原始日志:看不到被封禁之外的尝试
  • 把解封记录都归因于攻击:管理员操作与配置变更同样会产生解封

数据来源与参考

  • fail2ban 官方文档(日志与 client 命令)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌