当前位置:首页 >  IDC >  安全 >  正文

看日志全是爆破IP?fail2ban 自动封禁,还你一个清净的 auth.log

 2026-08-28 15:29  来源: 互联网   我来投稿 撤稿纠错

  一键部署OpenClaw

SSH 换了密钥登录确实安全了,但日志里成千上万条爆破记录看着还是烦,而且这些扫描流量本身也占资源。对付暴力破解还有更主动的武器:fail2ban,盯着日志看谁在反复试错,超过阈值自动封 IP。字典攻击对它毫无办法。

# 安装
yum install -y epel-release && yum install -y fail2ban
# 或 Debian/Ubuntu:apt install -y fail2ban

规则用 jail 描述,先看默认自带的 sshd 规则,建议别直接改官方文件,自己建 local 文件覆盖,升级不冲突:

# /etc/fail2ban/jail.local
[sshd]
enabled = true
maxretry = 5 # 5次失败就动手
findtime = 600 # 10分钟内统计
bantime = 86400 # 封1天,惯犯可加长
banaction = firewallcmd-rich-rules # 用防火墙封,比hosts.deny干净

fail2ban 的精髓在 filter——正则匹配日志里的失败记录。内置了几十个服务的规则,Nginx 站点还可以自定义 jail,比如有人狂扫后台登录页:

# /etc/fail2ban/filter.d/admin-login.conf
[Definition]
failregex = ^<HOST> .* "POST /admin/login\.php" (401|403)

# jail.local 里引用
[admin-login]
enabled = true
filter = admin-login
logpath = /var/log/nginx/access.log
maxretry = 10
findtime = 300
bantime = 3600

日常管理四条命令:

fail2ban-client status # 看启用了哪些jail
fail2ban-client status sshd # 看当前封了多少IP
fail2ban-client set sshd unbanip 1.2.3.4 # 误封解禁
fail2ban-client set sshd banip 5.6.7.8 # 手动封一个

有个务必留心的坑:自己的 CDN 或负载均衡会把真实 IP 转发过来,日志里记的若全是代理 IP,fail2ban 一封就是封了代理,全站跟着遭殃。接了 CDN 的站点要先在 Nginx 配 real_ip 模块还原真实来源,再让 fail2ban 去封,否则宁可只对 SSH 开 jail。

数据来源:fail2ban项目官方文档

申请创业报道,分享创业好点子。点击此处,共同探讨创业新机遇!

相关文章

热门排行

信息推荐