VPS被Fail2ban误封怎么恢复?先确认jail、解封IP再固化白名单

保留控制台入口,定点解除封禁并用local配置防止再次误封
发布于
17

VPS被Fail2ban误封后,优先通过云平台控制台、VNC或仍然保持在线的第二个SSH会话进入服务器。不要先停掉整个Fail2ban服务,也不要直接清空防火墙;先确认封禁发生在哪个jail、当前管理端公网IP是什么,再只解除对应IP。

临时解封并不等于问题解决。如果不修正误判原因或写入合适的持久化规则,下一次认证失败仍会再次被封。操作期间保留控制台会话,直到新的SSH连接验证成功。

第一步:保留带外入口并确认自己的公网IP

如果SSH已经完全连不上,使用服务商提供的网页控制台、VNC、串口控制台或救援模式。这些入口不依赖当前SSH来源IP,是恢复防火墙和认证配置的安全通道。若还有一个已连接的SSH窗口,不要关闭它。

从可信网络查询工具或自有网关记录中确认管理端当前公网IPv4和IPv6。移动网络、家庭动态宽带、公司双出口和VPN都可能改变来源地址,不要凭上次记录猜测。命令示例中的203.0.113.10是文档保留地址,必须替换为自己的实际管理IP。

第二步:确认Fail2ban服务和实际jail名称

sudo systemctl status fail2ban --no-pager
sudo fail2ban-client status
sudo fail2ban-client status sshd

fail2ban-client status会列出正在运行的jail。SSH jail常见名称是sshd,但发行版或自定义配置可能使用别的名称。只有确认实际jail后,后续unbanip命令才会作用到正确位置。

再查看近期日志,确认被封时间、来源IP和触发的过滤器:

sudo journalctl -u fail2ban --since "-30 min" --no-pager
sudo tail -n 200 /var/log/fail2ban.log

不同发行版不一定同时使用systemd日志和独立日志文件。没有记录时,应检查Fail2ban日志目标和日志轮转,而不是假设服务没有执行封禁。

第三步:只解除自己的IP

sudo fail2ban-client set sshd unbanip 203.0.113.10
sudo fail2ban-client status sshd

官方客户端支持对指定jail执行unbanip。不要为了省事执行大范围解封,也不要长期停止Fail2ban。解封后从新的终端尝试SSH登录,原控制台会话继续保持。

如果客户端显示已经解封,但网络仍然拒绝连接,继续检查云安全组、UFW以及Fail2ban当前使用的banaction。系统可能通过nftables、iptables、firewalld或UFW执行封禁;只查看其中一个工具,可能看不到真实规则链。

第四步:临时加入忽略列表并观察是否复发

sudo fail2ban-client set sshd addignoreip 203.0.113.10
sudo fail2ban-client get sshd ignoreip

addignoreip适合当前排错会话,但运行时修改可能在服务重启或重新加载后丢失。确认SSH恢复后,还要根据网络条件决定是否写入持久化配置。

如果管理端使用动态公网IP,不应把整个运营商大网段加入白名单。更稳妥的做法是使用固定管理出口、受控VPN、堡垒机或服务商控制台,并为每个入口保留审计记录。

第五步:用local配置持久化,不直接改jail.conf

Fail2ban会按顺序读取jail.conf、jail.d/*.conf、jail.local和jail.d/*.local,后读取的本地配置可以覆盖默认值。建议新建独立分片,避免软件升级覆盖修改:

sudo nano /etc/fail2ban/jail.d/90-local-allowlist.local
[DEFAULT]
ignoreip = 127.0.0.1/8 ::1 203.0.113.10

只加入确实受控且稳定的管理地址。不要把未知代理出口、共享办公网、整个国家网段或所有内网地址无条件放行。若只希望对白名单应用于SSH,也可以把ignoreip放在[sshd]段,避免影响其他jail。

第六步:测试配置、重载并复核

sudo fail2ban-client -t
sudo fail2ban-client reload
sudo fail2ban-client status sshd
sudo fail2ban-client get sshd ignoreip

先运行配置测试,确认没有拼写、段名或路径错误,再重载服务。重载后应验证三个结果:SSH新连接成功,自己的IP出现在忽略列表,恶意测试源或受控测试仍能触发预期规则。不要在生产系统用真实暴力破解制造测试流量。

为什么刚解封又会被封

  • 密码管理器、旧脚本或监控程序仍在使用错误凭据反复登录;
  • maxretry过低,正常输错或并发任务被累计;
  • 日志时间、时区或轮转异常导致旧失败记录被重复处理;
  • 反向代理、跳板机或NAT让多个用户显示为同一来源IP;
  • 修改了错误的jail,真正执行封禁的是另一个规则;
  • 配置只在运行时修改,服务重启后白名单消失;
  • 云安全组或主机防火墙另有独立拒绝规则,故障并非Fail2ban。

调整bantime、findtime和maxretry前,应先从日志确认正常认证行为的频率。放宽阈值不能代替修复失效凭据、错误日志来源或共享出口问题。

恢复后补上入口和回滚能力

部署Fail2ban、修改SSH端口或收紧防火墙前,应确认VPS具备可用的控制台入口,并保存关键配置与回滚步骤。极跃圈收录的雨云云服务详情页记录的邀请码为admin01;实际产品是否提供所需控制台、快照、网络规则以及当前优惠,请以结算页面和服务条款为准。

如果还在规划基础防护,可先阅读VPS的SSH、UFW与Fail2ban基础加固;若是SSH密钥、端口或服务重载导致无法登录,可继续查看SSH认证失败和端口冲突排查。本篇只处理Fail2ban误封恢复,不替代完整的SSH安全设计。

本文由作者原创/授权发布于极跃圈(jiyueip.com),未经许可,禁止转载。题图来自Unsplash,基于CC0协议。

声明:极跃圈(JIYUEIP.com)内网友所发表的所有内容及言论仅代表其本人,并不反映任何极跃圈(JIYUEIP.com)之意见及观点。

0 / 600
0 讨论
热门最新
总结
暂无总结

暂无数据