跨境站服务器fail2ban拦截海外暴力破解

跨境站服务器如何用Fail2ban有效拦截海外暴力破解

跨境站服务器经常遭到来自海量的暴力破解尝试,尤其是 SSH 和 Web 后台登录接口。
Fail2ban 是一款轻量级防御工具,通过分析日志、临时封禁恶意 IP,能大幅降低被攻破的风险。
本文从零开始,带你完成在跨境站服务器上部署 Fail2ban 并针对海外攻击源进行拦截的完整流程。

安装 Fail2ban 前的准备

确保服务器系统为 CentOS 7+、Ubuntu 18.04+ 或其他主流 Linux 发行版,拥有 root 或 sudo 权限。
以下命令分别适用于不同系统:

  • CentOS / RHEL / Rocky Linux:yum install epel-release -y && yum install fail2ban -y
  • Ubuntu / Debian:apt update && apt install fail2ban -y

安装完成后,先不要急着启动,我们需要先配置规则,避免把自己封在外面。

核心配置:针对海外暴力破解的规则

Fail2ban 的主配置文件是 /etc/fail2ban/jail.conf
但官方建议新建 /etc/fail2ban/jail.local 来覆盖默认设置,
这样升级时不会丢失自定义内容。

创建并编辑 /etc/fail2ban/jail.local

sudo vim /etc/fail2ban/jail.local

写入以下基础配置(着重保护 SSH 服务):

[DEFAULT]
bantime = 3600      # 封禁时长,单位秒(1小时)
findtime = 600      # 检测时间窗口,10分钟内
maxretry = 3        # 在 findtime 内最多允许失败 3 次
ignoreip = 127.0.0.1/8 ::1   # 永远不封禁本地回环地址

action = %(action_mwl)s    # 封禁并发送邮件警告(可选)

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log   # Ubuntu路径;CentOS为/var/log/secure
maxretry = 3
bantime = 3600
注意:如果 SSH 端口不是默认的 22,请将 port = ssh 改为实际端口号,例如 port = 2222

针对海外攻击的重要优化:大部分暴力破解来自境外 IP,可以结合 GEOIP 模块只封禁非中国 IP,但新手直接让 Fail2ban 封禁所有超过阈值的 IP 也能有效过滤掉绝大多数海外扫描。
更精细的做法是配合 ipsetxtables-addons 实现国家区域封禁,但本文先聚焦 Fail2ban 本身。

常见的误伤与白名单设置

如果你的跨境站服务器同时有国内用户通过 SSH 登录,
或者你希望自己的管理 IP 永远不被 Ban,
可以在 [DEFAULT] 段或具体 jail 的 ignoreip 中添加 IP 或段,
用空格分隔:

ignoreip = 127.0.0.1/8 ::1 192.168.1.0/24 114.114.114.114

这里 114.114.114.114 是你自己的公网 IP,请根据实际替换。ignoreip 中的地址不受限速和封禁影响。

启动与验证效果

配置完成后,启动 Fail2ban 并设置开机自启:

sudo systemctl start fail2ban
sudo systemctl enable fail2ban

然后检查服务运行状态:

sudo fail2ban-client status

可以看到 Status 下显示已激活的 jail(比如 sshd)。
进一步查看 SSH jail 的封禁详情:

sudo fail2ban-client status sshd

输出会列出当前被封禁的 IP 列表,以及总封禁次数。
如果服务器刚上线,可能没有封禁记录;
你可以故意用错误密码尝试几次,然后再次查看,就会看到自己的 IP 被列入 Banned IP list

避坑指南 & 高频问题

Q1:Fail2ban 启动后 SSH 连不上怎么办?
A:大概率是配置错误导致本机 IP 被封。解决方案:通过 VNC 或面板控制台登录,修改 jail.localignoreip 添加你的管理 IP,然后重启 systemctl restart fail2ban

Q2:只拦截海外 IP,但 Fail2ban 本身不支持区域过滤?
A:Fail2ban 主要基于失败次数封禁,无论国内国外。如果要只拦截海外,需要结合 ipsetxt_geoip 模块,或者使用类似 firewall-cmd --permanent --new-ipset=china --type=hash:net 的方式提前加载国内 IP 段并反向设定规则,操作稍复杂。对于跨境站,建议直接允许国内 IP 段,而对其他 IP 启用 Fail2ban 的严格策略(把 maxretry 设小)。也可以先观察日志,如果大部分攻击来源是海外 IP,直接用 Fail2ban 封禁全段也是有效方案。

Q3:Fail2ban 日志在哪里?如何查看封禁日志?
A:默认日志文件位于 /var/log/fail2ban.log,可实时查看:sudo tail -f /var/log/fail2ban.log

Q4:如何解除一个误封的 IP?
A:使用命令 sudo fail2ban-client set sshd unbanip 。如果需要临时恢复所有封禁:sudo fail2ban-client unban --all

Q5:除了 SSH 还想保护 web 后台(例如 WordPress 登录)怎么办?
A:Fail2ban 内置了 wordpress 等 filter,但也需要配置相应 jail。以 Nginx 为例,将 [nginx-http-auth][wordpress]enabled = true,并指定正确的 logpath。具体参考官方文档或后续教程。

效果验证与运维建议

部署一周后,检查 fail2ban-client status sshd 的封禁总数,通常跨境服务器每天能拦截几十到几百次尝试。
如果封禁数量极少,请检查日志是否被正确读取(logpath 设置是否正确,service 是否正常运行)。

建议每季度检查一次 ignoreip 是否需要更新(比如管理 IP 变了),同时关注 Fail2ban 官方是否有安全更新。
对于高并发业务,也可以适当加大 findtimemaxretry,避免误伤合法流量。

如果你按照本文步骤配置完成,跨境站服务器的暴力破解风险将大幅降低。
后续可以根据实际需求扩展 Jail 规则,比如保护 FTP、邮件服务或 Web 管理后台。
遇到异常时优先回看避坑指南中的常见问题,能帮助你快速定位并解决问题。

分享到:
上一篇
用家用住宅主机搭建跨境代理节点隐藏IP完整指南
下一篇
外贸独立站数据库定时异地备份方案,零基础可落地教程
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意