跨境站服务器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 也能有效过滤掉绝大多数海外扫描。
更精细的做法是配合 ipset 和 xtables-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.local 中 ignoreip 添加你的管理 IP,然后重启 systemctl restart fail2ban。

Q2:只拦截海外 IP,但 Fail2ban 本身不支持区域过滤?
A:Fail2ban 主要基于失败次数封禁,无论国内国外。如果要只拦截海外,需要结合 ipset 和 xt_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 官方是否有安全更新。
对于高并发业务,也可以适当加大 findtime 和 maxretry,避免误伤合法流量。

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

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

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意