怎么利用 Fail2Ban 自动化分析系统日志并实时封禁暴力破解源指南

Fail2Ban需日志路径正确、防火墙命令可用、配置后执行reload三者协同才能封禁IP;Ubuntu日志为/var/log/auth.log,CentOS为/var/log/secure,须验证失败记录存在并确保nftables/iptables已安装且规则生效。

怎么利用 fail2ban 自动化分析系统日志并实时封禁暴力破解源指南

Fail2Ban 不是装上就自动封 IP 的“黑盒”,它靠精准的日志识别、匹配规则和防火墙联动三者协同工作。核心在于让工具真正“看懂”你的日志,并把封禁动作落到系统防火墙上。

确认日志路径与内容有效性

Fail2Ban 必须读到真实的 SSH 登录失败记录,否则一切配置都无效。不同系统默认日志位置不同:

  • Ubuntu/Debian:默认写入 /var/log/auth.log
  • CentOS/RHEL/Rocky/AlmaLinux:默认写入 /var/log/secure

先验证日志是否真有失败记录:

  • Ubuntu 执行:sudo tail -20 /var/log/auth.log | grep “Failed password”
  • CentOS 执行:sudo tail -20 /var/log/secure | grep “Failed”

若无输出,说明 SSH 失败未记日志,需检查 rsyslog 配置(如 authpriv.* /var/log/secure 是否启用),并重启 rsyslog 和 sshd 服务。

正确创建 jail.local 并启用 SSH 防护

不要直接修改 jail.conf,而是复制生成本地配置文件:

  • sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  • 编辑 /etc/fail2ban/jail.local,找到 [sshd] 区块

关键参数建议设置为:

  • enabled = true —— 必须开启
  • maxretry = 3 —— 同一 IP 在 findtime 窗口内失败 3 次即触发
  • findtime = 600 —— 时间窗口设为 10 分钟(单位:秒)
  • bantime = 3600 —— 封禁 1 小时(支持 s/m/h/d)
  • ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 —— 加入运维常用 IP 或内网段,防误封
  • logpath = /var/log/auth.log(或对应系统的实际路径)—— 明确指定,不可省略

确保防火墙后端可用且规则生效

Fail2Ban 只负责调用命令,不保证命令存在或生效。常见问题就是“日志显示已封,但攻击仍能连上”:

  • 新系统多用 nftables,需在 [DEFAULT] 段添加:backend = autobackend = systemd
  • 手动验证封禁命令是否可用:sudo fail2ban-client get sshd banactionnft
  • 检查规则是否真写入:sudo nft list chain inet fail2ban filter_input 2>/dev/null | grep sshd
  • 若提示命令不存在,需安装对应工具:sudo apt install nftables(Debian/Ubuntu)或 sudo dnf install iptables-nft(RHEL/CentOS 8+)

注意:AWS EC2、阿里云 ECS 等云主机若禁用本地防火墙,仅依赖安全组,则 Fail2Ban 默认封禁无效,需改用 API 调用 action 或放弃本地封禁策略。

验证与日常观察方法

配置保存后必须重启服务,并立即验证是否真正起效:

  • 重启:sudo systemctl restart fail2ban
  • 查状态:sudo fail2ban-client status sshd —— 应显示 “Number of jail: 1” 和已封 IP 数量
  • 盯日志:sudo tail -f /var/log/fail2ban.log —— 出现 “Ban xxx.xxx.xxx.xxx” 即表示成功触发
  • 手动解封:sudo fail2ban-client set sshd unbanip 203.0.113.50

滑动窗口逻辑要清楚:不是“输错 3 次立刻封”,而是“10 分钟内累计失败达 3 次才封”。可故意用错误密码测试,观察日志时间戳与封禁时机是否匹配。

文章来自机圈观察员网,发布者:,转载请注明出处:https://www.jqgcy.com/xinjizixun/126939.html

上一篇 2026-07-19 16:13
C++如何监听系统的USB存储设备拔插事件
下一篇 2026-07-19 17:00

相关推荐