【无标题】

天机移动终端管理系统(TrustSpace)访问异常(403 Forbidden)排查与处置报告

报告编号: TS-20260818-01

报告日期: 2026年8月18日

系统名称: 天机移动终端管理系统 (TrustSpace / BYOD Cloud)

故障现象: 通过公网访问管理控制台 (https://59.220.240.96:4443) 时,浏览器返回 403 Forbidden 错误,无法进入登录界面。

一、 排查环境与背景

  • 服务器操作系统: CentOS 7
  • 前端 Web 服务: Nginx (监听端口 4443)
  • 后端应用容器: 基于 Java / Ruby on Rails 4.0 架构,监听内部端口 8080
  • 排查权限: 服务器 Root 权限、业务目录文件读取权限

二、 排查过程与日志分析

1. 基础网络与防火墙排查

首先排查服务器底层网络及防火墙规则,确认是否存在基于 IP 或端口的网络层拦截。

  • 检查结果: 服务器操作系统防火墙(iptables)关闭,无针对 4443 端口的限制策略;Tomcat 配置文件(server.xml)及 Nginx 配置文件均未配置 deny/allow 访问控制指令。
  • 结论: 排除系统防火墙、Tomcat 及 Nginx 全局网络层拦截。

【附图1:防火墙及Nginx配置排查截图】

( iptables/ss 命令的排查截图)

2. Nginx 代理日志与请求头分析

深入排查 Nginx 反向代理配置,发现 Nginx 将真实的客户端公网 IP 通过 X-Real-IPX-Forwarded-For 请求头透传给后端。

  • 分析结果: 后端业务应用读取透传的请求头,并对其中的 IP 进行校验。由于当前管理员公网 IP (59.220.240.96) 未加入业务系统白名单,后端直接响应 403 Forbidden,而非 Nginx 层拦截。

【附图2:Nginx proxy_set_header 配置截图】

(编辑 byod_cloud.conf 发现 proxy_set_header 的截图)

3. 业务系统后端白名单机制定位

在业务系统目录结构中发现核心线索。

  • 发现关键文件: 在目录 /home/q/system/byod_cloud/tianji-3.0.1610.92/WEB-INF/lib/tasks/ 下找到官方自带的任务文件 clear_whitelist.rake
  • 脚本逻辑分析: 该 Rake 任务针对数据库 mng_ctrls 表中的 whitelist 字段进行操作,提供了重置 IP 访问限制的功能。

【附图3:clear_whitelist.rake 文件内容截图】

( more/cat 查看该文件内容的截图)

三、 整改与处置措施

步骤 1:业务层绕过验证(临时验证)

为了确认 403 拦截的具体来源,在生产环境 Nginx 配置中,将 proxy_set_header X-Real-IP $remote_addr; 强制修改为硬编码的受信任内网 IP 10.100.1.164

  • 执行结果: 重载 Nginx 后,浏览器成功绕过拦截,进入登录界面。(结论确认:业务系统白名单导致 403)

【附图4:Nginx修改配置进行Header伪装截图】

(修改 Nginx 配置以绕过验证的截图)

步骤 2:利用官方内置脚本彻底修复(根本解决)

为防止长期伪装影响系统日志记录,通过服务底层 Java 启动环境,直接运行系统内置的清除白名单任务,从数据库层面清理限制。

执行命令:

bash 复制代码
cd /home/q/system/byod_cloud/tianji-3.0.1610.92 && \
RAILS_ENV='production' /usr/bin/java -jar /home/q/system/byod_cloud/byod_cloud.war -S rake byod_cloud:clear_whitelist
相关推荐
mldong4 小时前
零依赖的秘密:8 大 SPI 设计
java·架构
Diligently_6 小时前
Anolis 系统更新与密码设置&磁盘扩容
java·后端·spring
mqiqe6 小时前
线程调度与 Schedulers:Project Reactor 并发模型的核心引擎
java·开发语言·网络
我命由我123456 小时前
Android 开发问题:unexpected element <service> found in <manifest>
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
正在走向自律7 小时前
飞算JavaAI能搞定充电站故障处置吗?
java·ai编程·java开发·飞算javaai·java代码生成·ai coding模型·springboo
用户40966601317517 小时前
Guava 不止有 Lists 和 Maps:Cache、EventBus、Multimap 实战
java·后端
一只叫煤球的猫7 小时前
从 Java 21 到 Java 25:ThreadLocal 以外的选择—— ScopedValue
java·后端·架构
步行cgn8 小时前
MyBatis 多对一关联映射详解
java
仍然.8 小时前
SpringCloud---Eureka介绍
java·spring cloud·eureka