在 CN2 VPS 上配置 Fail2Ban 主要通过安装软件包、启用 SSH 监控策略并调整封禁时长来实现,适用于所有基于 Linux 的云服务器。操作前务必将管理员当前 IP 加入白名单,避免误封导致无法远程连接。
先说结论:Fail2Ban 配置与网络线路无关,CN2 VPS 与其他 VPS 使用相同的标准安全策略,重点在于防止 SSH 暴力破解。
- 先判断:确认操作系统类型(Debian/Ubuntu 或 CentOS)以选择正确的安装命令。
- 优先做:修改
jail.local配置文件并设置自家 IP 白名单,防止锁死自己。 - 再验证:使用
fail2ban-client命令检查服务状态和封禁列表。
命令速用版
以下是基于常见 Linux 发行版的快速安装与重启命令,直接复制执行即可。
# Debian/Ubuntu 安装
sudo apt update
sudo apt install fail2ban
# CentOS/RHEL 安装 (需启用 EPEL 源)
sudo yum install epel-release
sudo yum install fail2ban
# 重启服务使配置生效
sudo systemctl restart fail2ban为什么会这样
Fail2Ban 的工作原理是监控系统日志文件,当发现特定模式(如多次 SSH 登录失败)时调用防火墙封禁 IP。CN2 仅代表网络路由质量,不改变 Linux 系统日志结构或防火墙机制,因此配置逻辑与普通 VPS 完全一致。
公开资料中没有看到可靠的量化数据表明 CN2 线路需要特殊的封禁策略,安全配置应遵循最小权限原则。
分步处理
按照以下顺序完成配置,每一步完成后建议检查是否有报错。
步骤 1:复制默认配置文件
不要直接修改 jail.conf,因为软件更新可能会覆盖该文件。创建本地配置文件:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local步骤 2:编辑配置白名单与策略
使用编辑器打开 /etc/fail2ban/jail.local,找到 [DEFAULT] 和 [sshd] 部分。必须修改以下参数:
[DEFAULT]
# 将你的本地公网 IP 加入白名单,多个 IP 用逗号分隔
ignoreip = 127.0.0.1/8 ::1 你的管理员 IP
# 封禁时长,单位秒,建议初期设置为 3600 (1 小时)
bantime = 3600
# 最大重试次数,超过此次数触发封禁
maxretry = 5
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s步骤 3:重启服务
保存文件后重启 Fail2Ban 服务加载新配置。
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban怎么验证是否生效
通过客户端命令查看状态,确认 SSH 监狱(Jail)已激活。
# 查看总体状态
sudo fail2ban-client status
# 查看 SSH 具体状态
sudo fail2ban-client status sshd
# 查看当前已被封禁的 IP 列表
sudo fail2ban-client get sshd banned如果 status 显示 Running 且 Currently failed 有数字或 Banned IP list 有内容,说明服务正常工作。同时检查系统日志 /var/log/fail2ban.log 确认无报错。
常见坑
- 云防火墙冲突:部分云服务商的安全组规则优先级高于本地 iptables,Fail2Ban 封禁后可能仍能被穿透,需同时在云平台控制台设置安全组。
- 日志路径差异:不同系统 SSH 日志位置不同(如
/var/log/auth.log或/var/log/secure),配置错误会导致无法匹配日志。 - 误封风险:如果
maxretry设置过低,正常用户输错密码可能被封禁,建议初期设置较长封禁时间以便观察。
常见问题
如何手动解封某个 IP?
使用命令 sudo fail2ban-client set sshd unbanip <IP 地址> 即可立即解除封禁,无需重启服务。
修改 SSH 端口后 Fail2Ban 还能用吗?
可以,但需要在 jail.local 的 [sshd] 部分修改 port 参数为你自定义的端口号。
CN2 线路需要特殊配置吗?
不需要,CN2 是网络路由类型,Fail2Ban 工作在操作系统层,配置与 ordinary 线路 VPS 完全相同。
参考来源
- Fail2Ban Official Documentation, "Configuration", https://github.com/fail2ban/fail2ban
- Ubuntu Community Help, "Fail2Ban", https://help.ubuntu.com/community/Fail2Ban