Hadoop YARN 暴露检查是什么
YARN 的 ResourceManager 提供 Web 界面与 REST API(默认 8088),既能查看集群与应用状态,也能提交任务。若未启用认证或未收敛监听范围,未授权者读取集群信息之余,还可能借助历史漏洞提交任务在节点上执行代码。检查方式是只读确认可达性与认证配置,不提交任何作业。
基本信息
| 核查对象 | 8088 Web 与 REST API 可达性、认证配置、队列 ACL |
|---|---|
| 常见端口 | 8088 ResourceManager Web / 8080 历史服务器 / 50070 NameNode Web |
| 风险信号 | 匿名即可读取集群与应用信息 |
| 修复方向 | 启用认证与队列权限、收敛监听网段、升级版本 |
| 处置纪律 | 只读检查,不提交任务 |
典型使用场景
- 大数据平台评估:确认管理界面是否对外可达
- 暴露面梳理:一并核对 NameNode、历史服务器等其他 Web 端口
- 上线前检查:新集群是否沿用默认端口与开放策略
- 修复验证:认证启用后复测匿名访问是否被拒
- 合规自查:为平台安全基线提供可达性与权限证据
只读检查示例
只读检查示例
curl -s --max-time 3 http://10.0.30.8:8088/ws/v1/cluster/info | head -c 300
# 返回集群信息即未授权;不提交任何任务
curl -s -o /dev/null -w "%{http_code}\n" http://10.0.30.8:8088/cluster
curl -s --max-time 3 http://10.0.30.8:8088/ws/v1/cluster/apps | head -c 200
curl -s -o /dev/null -w "%{http_code}\n" http://10.0.30.8:8080/ # 历史服务器
curl -s -o /dev/null -w "%{http_code}\n" http://10.0.30.8:50070/ # NameNode
# 记录可达性与返回内容,判断是否需要认证端口与暴露含义
| 服务 | 默认端口 | 泄露内容 |
|---|---|---|
| ResourceManager | 8088 | 集群资源、队列、应用列表 |
| MapReduce 历史服务器 | 8080 | 历史作业与配置信息 |
| NameNode Web | 50070 | HDFS 目录树与块信息 |
| DataNode Web | 50075 | 节点状态与存储信息 |
大数据组件历史版本众多:除暴露面外,应同时纳入版本与补丁核查,很多未授权执行问题都是老版本的已知缺陷。
不要提交测试任务来验证:任务会占用集群资源、可能读写生产数据,风险远高于验证收益;接口返回集群信息已足以证明未授权访问。