搬瓦工 VPS 如何配置 Fail2Ban 防止 SSH 暴力破解

文章导读
搬瓦工 VPS 配置 Fail2Ban 是防止 SSH 暴力破解的标准做法,通过监控认证日志自动封禁多次失败登录的 IP。适用所有基于 Linux 的搬瓦工套餐,操作前需确认当前 SSH 端口并设置白名单防止误封。
📋 目录
  1. A 命令速用版
  2. B 为什么会这样
  3. C 分步处理
  4. D 怎么验证是否生效
  5. E 常见坑
  6. F 常见问题
  7. G 参考来源
A A

搬瓦工 VPS 配置 Fail2Ban 是防止 SSH 暴力破解的标准做法,通过监控认证日志自动封禁多次失败登录的 IP。适用所有基于 Linux 的搬瓦工套餐,操作前需确认当前 SSH 端口并设置白名单防止误封。

先说结论:Fail2Ban 能有效减少 SSH 暴力破解尝试,但配置不当可能导致管理员被锁在门外,需优先设置白名单。

  • 先判断系统发行版和 SSH 端口配置
  • 优先配置 IP 白名单和重试次数阈值
  • 再验证服务状态和日志记录是否正常

命令速用版

以下命令适用于大多数搬瓦工 VPS 系统,根据发行版选择安装指令。

# Ubuntu/Debian 系统
apt update
apt install fail2ban -y

# CentOS/AlmaLinux 系统
yum install epel-release -y
yum install fail2ban -y

# 启动服务并设置开机自启
systemctl enable fail2ban
systemctl start fail2ban

为什么会这样

Fail2Ban 通过读取系统日志识别异常行为并调用防火墙封禁 IP。它不直接修改 SSH 配置,而是动态管理防火墙规则,当检测到同一 IP 在短时间内多次认证失败,会触发封禁动作。

这种机制适用于搬瓦工 VPS 因为系统权限完整,支持 iptables 或 firewalld。相比修改 SSH 端口,Fail2Ban 能在不改变连接习惯的前提下增加攻击成本,且误报率可控。

分步处理

配置过程分为安装、本地配置、参数调整三步,每步完成后需检查状态。

1. 创建本地配置文件

不要直接修改 jail.conf,避免更新被覆盖。复制默认配置到 jail.local。

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

2. 编辑配置参数

使用编辑器打开 jail.local,重点修改 sshd 段落。确保 ignoreip 包含当前管理 IP。

vim /etc/fail2ban/jail.local

找到 [sshd] 部分,确认或修改以下参数:

[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 5
bantime = 3600
findtime = 600
ignoreip = 127.0.0.1/8 ::1 你的管理 IP 地址

如果搬瓦工 VPS 修改了 SSH 端口,需将 port 改为实际数字,例如 port = 2222。

3. 重启服务生效

配置修改后必须重启服务才能加载新规则。

systemctl restart fail2ban

怎么验证是否生效

通过客户端命令查看状态,并模拟错误登录测试封禁功能。

1. 检查服务状态

运行以下命令确认 sshd jail 处于 active 状态。

fail2ban-client status sshd

输出应包含 Status 为 OK 以及当前封禁的 IP 列表。

2. 查看日志记录

检查 Fail2Ban 日志确认是否有 ban 动作记录。

cat /var/log/fail2ban.log | grep Ban

3. 模拟测试

使用另一台设备连续输入错误密码超过 maxretry 次,再次运行 status 命令应能看到该 IP 出现在封禁列表中。

常见坑

配置过程中容易忽略白名单和端口同步问题,可能导致无法连接。

  • 未设置白名单:如果管理 IP 动态变化且未设置 ignoreip,多次输错密码可能封禁自己。
  • SSH 端口不一致:搬瓦工 VPS 若修改了默认 22 端口,jail.local 中 port 参数必须同步修改,否则监控无效。
  • 防火墙冲突:部分系统同时使用 ufw 和 firewalld,Fail2Ban 默认适配主流防火墙,若混用可能导致规则不生效。
  • 日志路径错误:不同发行版 SSH 日志路径不同,CentOS 通常在 /var/log/secure,Ubuntu 在 /var/log/auth.log,配置错误会导致无法读取日志。

常见问题

配置后无法 SSH 连接怎么办

立即通过搬瓦工控制面板的 KiwiVM 网页终端登录检查。查看 fail2ban 日志确认是否误封,临时停止服务恢复连接。

Fail2Ban 会影响 VPS 性能吗

公开资料中没有看到可靠的量化数据表明显著影响。它仅在日志写入时触发分析,常规负载下 CPU 和内存占用极低。

需要定期更新规则吗

不需要手动更新规则。系统包管理器更新时会同步软件版本,自定义的 jail.local 配置通常保留不变。

参考来源

  • Fail2Ban Official GitHub Repository, "fail2ban/fail2ban", https://github.com/fail2ban/fail2ban
  • Linux Man Pages, "fail2ban-client(1)", https://manpages.org/fail2ban-client