Fail2ban 防爆破速记:安装、监狱配置与封禁管理

举报
yd_241044277 发表于 2026/11/04 16:10:00 2026/11/04
【摘要】 只要服务器开着 SSH,登录日志里迟早会出现成片的失败记录——有人在拿字典挨个试密码。Fail2ban 干的事很朴素:盯着日志,发现某个 IP 短时间内失败太多次,就调用防火墙把它封一段时间。本文把安装、配置和日常管理整理成速记。 安装与启动Debian/Ubuntu 上一条命令:apt install fail2ban -ysystemctl enable --now fail2bansy...

只要服务器开着 SSH,登录日志里迟早会出现成片的失败记录——有人在拿字典挨个试密码。Fail2ban 干的事很朴素:盯着日志,发现某个 IP 短时间内失败太多次,就调用防火墙把它封一段时间。本文把安装、配置和日常管理整理成速记。

安装与启动

Debian/Ubuntu 上一条命令:

apt install fail2ban -y
systemctl enable --now fail2ban
systemctl status fail2ban

装好默认就对 SSH 生效,其它发行版包名相同。先确认服务在跑,再谈调参数。

配置别改原文件

主配置是 /etc/fail2ban/jail.conf,但升级会被覆盖,正确做法是新建 /etc/fail2ban/jail.local,在里面写自己的覆盖项。最常改的就这几个:

[DEFAULT]
bantime  = 1h
findtime = 10m
maxretry = 5

[sshd]
enabled = true

含义是:10 分钟(findtime)内失败 5 次(maxretry),封禁 1 小时(bantime)。封禁时长可以写成 1h、1d 这种形式;想永久封写 -1,但不建议——容易把自己关在门外。

白名单一定要先配

在 [DEFAULT] 里加 ignoreip,把自己的固定 IP、办公出口和跳板机地址填进去,空格分隔:

ignoreip = 127.0.0.1/8 你的固定IP

这一步要在收紧参数之前做。没有固定 IP 的话,至少保留一个网页控制台之类的带外入口,真被误封时还能进去解封。

日常管理命令

fail2ban-client status sshd          # 看 sshd 监狱状态和当前封禁列表
fail2ban-client set sshd unbanip IP     # 手动解封
fail2ban-client set sshd banip IP       # 手动封禁
tail -f /var/log/fail2ban.log         # 看封禁动作日志

改完 jail.local 用 systemctl restart fail2ban 生效;也可以用 fail2ban-client reload 热加载。

一个常见误区

Fail2ban 只能拦“失败次数多”的爆破,拦不住用对了密码的登录。真正的安全顺序是:先改成密钥登录并关掉密码认证,再把 Fail2ban 当作减少日志噪音和挡低水平扫描的补充,两者别搞反。

小结

安装一条命令,配置只写 jail.local,先白名单再收紧参数,管理记住 status 和 unbanip。做到这些,服务器的爆破噪音能降一个数量级。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。