甲骨文云免费 VPS 如何配置 Fail2ban 防止 SSH 爆破?

文章导读
在甲骨文云免费 VPS 上配置 Fail2ban 能通过监控系统日志自动封禁多次尝试登录的 IP 地址,但操作前需确认甲骨文云控制台的安全列表已放行 SSH 端口,防止防火墙规则冲突导致无法远程连接。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 常见问题
  7. 参考来源
A A

在甲骨文云免费 VPS 上配置 Fail2ban 能通过监控系统日志自动封禁多次尝试登录的 IP 地址,但操作前需确认甲骨文云控制台的安全列表已放行 SSH 端口,防止防火墙规则冲突导致无法远程连接。

先说结论:Fail2ban 是操作系统层面的防护工具,需配合甲骨文云控制台网络安全策略共同使用。

  • 先判断:确认实例操作系统类型及 SSH 端口号,避免修改默认端口后配置失效
  • 优先做:在甲骨文云控制台配置安全列表放行 SSH,再部署 Fail2ban 应用层防护
  • 再验证:使用 fail2ban-client 状态命令确认拦截规则生效,测试失败登录是否触发封禁

命令速用版

以下命令适用于 Ubuntu/Debian 系统,Oracle Linux 请使用 yum 或 dnf 包管理器。

sudo apt update
sudo apt install fail2ban -y
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo systemctl enable fail2ban
sudo systemctl restart fail2ban

为什么会这样

SSH 服务默认暴露在公网,自动化脚本会持续扫描常见端口尝试暴力破解。Fail2ban 读取系统日志文件,匹配失败登录模式,调用防火墙接口封禁源 IP,从而减少日志噪音和系统资源消耗。公开资料中没有看到可靠的量化数据说明具体拦截比例,但这是 Linux 运维中标准的防御手段。

分步处理

按顺序执行以下步骤,每步完成后检查是否有报错。

1. 安装 Fail2ban

使用包管理器安装,确保软件源可用。

sudo apt update
sudo apt install fail2ban -y

2. 创建本地配置

不要直接修改 jail.conf,升级时会被覆盖。复制为 jail.local 生效。

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

3. 编辑配置文件

使用 nano 或 vim 编辑,找到 [sshd] 部分,确保 enabled = true。

sudo nano /etc/fail2ban/jail.local

修改或确认以下参数(根据实际需求调整):

[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 5
bantime = 3600

4. 重启服务

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

sudo systemctl restart fail2ban

怎么验证是否生效

通过状态命令和日志文件确认服务运行正常且规则已加载。

1. 检查服务状态

sudo fail2ban-client status sshd

输出应包含 Currently failed 和 Total failed 计数,以及 Banned IP list。

2. 查看运行日志

sudo tail -f /var/log/fail2ban.log

尝试多次错误登录 SSH,观察日志是否出现 Ban 动作记录。

3. 检查防火墙规则

sudo iptables -L -n

查看是否存在 fail2ban 相关的链和规则。

常见坑

  • 甲骨文云控制台安全列表优先:如果控制台安全列表未放行 SSH 端口,操作系统层面的 Fail2ban 无法接收到连接请求,日志不会记录。
  • IPv6 兼容性问题:部分配置默认仅监听 IPv4,若 VPS 启用 IPv6,需确认 jail 配置支持 ipv6 或单独配置。
  • 误封风险:maxretry 设置过小可能导致正常用户输错密码被封禁,建议初期设置为 5 次以上。
  • 配置覆盖:直接修改 jail.conf 而非 jail.local,系统更新后配置会丢失。

常见问题

封禁时间多久?

默认通常为 10 分钟,可在 jail.local 中修改 bantime 参数调整,单位是秒。

被封禁了怎么解锁?

使用 fail2ban-client set sshd unbanip 命令立即解除指定 IP 封禁。

会影响正常登录吗?

只要不连续输错密码,正常登录不受影响,建议先测试再放宽限制。

Oracle Linux 怎么安装?

使用 sudo dnf install fail2ban -y 命令,配置路径与 Ubuntu 基本一致。

参考来源

  • Fail2ban Official Documentation, GitHub Repository, https://github.com/fail2ban/fail2ban
  • Oracle Cloud Infrastructure Documentation, Security Lists and Security Groups