小服务器天天被扫 SSH?装个 fail2ban,把爆破的 IP 自动关进小黑屋

举报
yd_230305343 发表于 2026/11/05 11:27:13 2026/11/05
【摘要】 只要服务器开着 SSH,登录日志里迟早会出现一长串陌生 IP 的失败记录——这是全网自动化扫描在挨家挨户试密码,不针对谁,但放着不管既刷日志又留隐患。上一篇我们关掉了密码登录只留密钥,这篇再补一道自动防线:fail2ban。它盯着登录日志,谁失败次数超标,就把谁的 IP 临时封掉,全程不用人管。 它怎么工作fail2ban 持续读服务的日志(比如 SSH 的认证日志),按你设的规则数失败次数...

只要服务器开着 SSH,登录日志里迟早会出现一长串陌生 IP 的失败记录——这是全网自动化扫描在挨家挨户试密码,不针对谁,但放着不管既刷日志又留隐患。上一篇我们关掉了密码登录只留密钥,这篇再补一道自动防线:fail2ban。它盯着登录日志,谁失败次数超标,就把谁的 IP 临时封掉,全程不用人管。

它怎么工作

fail2ban 持续读服务的日志(比如 SSH 的认证日志),按你设的规则数失败次数:同一个 IP 在 10 分钟内失败 5 次,就调用防火墙把这个 IP 封 1 小时。封禁到期自动解除,不用手动清理。正常用户偶尔输错一两次不会触发,专门爆破的机器人则会被挡在门外。

安装与启用(Ubuntu 为例)

sudo apt update && sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban

默认配置对 SSH 已经有一套可用规则,很多系统装完就生效。建议把自己的参数写进独立文件 /etc/fail2ban/jail.local,不要改主配置文件(升级会被覆盖):

[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h

改完重启服务生效:sudo systemctl restart fail2ban。

怎么确认它在干活

sudo fail2ban-client status sshd

输出里能看到当前被封的 IP 列表和累计封禁数。刚上线的小服务器,几天内累计封几个到几十个都是常态——那正是它在替你值班的证据。

两个注意点

第一,别把自己关门外:如果你有固定办公 IP,可以在 jail.local 里用 ignoreip 把它加进白名单,输错多少次都不封。第二,fail2ban 是减速带不是保险箱:它挡得住无差别爆破,挡不住已经泄露的密钥。用密钥登录、关掉密码登录仍是根本,fail2ban 负责让日志清净、让扫描者知难而退。

结论

小服务器的安全不用堆大设备:密钥登录管身份,fail2ban 管骚扰。三行配置、十分钟部署,之后它 24 小时自己值班,你只需要偶尔看一眼被封名单,就知道门外一直有人敲门、但从没进来过。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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