nginx被报CVE-2025-1695漏洞,检查后反馈是误报。
本文整理判断是使用F5 NGINX Unit还是官方NGINX的方法
一、产品基本区别
F5 NGINX Unit与官方NGINX是两款完全不同的产品,尽管它们都由F5公司开发(F5于2019年收购NGINX):
| 特征 | 官方NGINX | F5 NGINX Unit |
|---|---|---|
| 定位 | 高性能HTTP服务器和反向代理 | 多语言动态应用服务器 |
| 核心功能 | Web服务、反向代理、负载均衡 | 支持Python/PHP/Perl/Ruby/Go等多语言应用 |
| 配置方式 | 基于nginx.conf文件的传统配置 | RESTful JSON API和动态配置 |
| 主要用途 | 静态内容服务、代理、负载均衡 | 直接运行多种编程语言的应用程序 |
| 版本号特征 | 如nginx/1.29.4(纯数字版本) | 通常包含"unit"或"Unit"标识 |
二、判断方法
1. 查看版本信息(最直接方法)
命令行检查:
bash
# Linux/macOS
nginx -V # 大写V,显示完整版本和编译参数
# Windows
nginx.exe -V
预期结果对比:
- 官方NGINX :显示类似
nginx version: nginx/1.29.4,不含"Unit"或"unit" - F5 NGINX Unit :显示类似
unitd version: unit/1.30.0或包含"Unit"字符串
如果显示f5:nginx前缀(如漏洞报告中的f5:nginx 1.29.4),则极可能是F5定制版本
2. 检查进程和服务名称
命令行检查:
bash
# Linux
ps aux | grep nginx
# Windows
tasklist /fi "imagename eq nginx.exe"
预期结果对比:
- 官方NGINX :进程名通常为
nginx或nginx.exe,包含master和worker进程 - F5 NGINX Unit :进程名可能为
unitd(Unit守护进程),而非标准的nginx
3. 检查配置文件特征
查看主配置文件位置:
bash
nginx -t # 测试配置,会显示配置文件路径
# 或直接查看
cat /etc/nginx/nginx.conf # 官方NGINX常见位置
配置内容差异:
- 官方NGINX:主配置文件(nginx.conf)包含http、server、location等标准块
- F5 NGINX Unit :
- 配置文件结构完全不同,使用JSON格式(因为支持RESTful API配置)
- 主配置文件位置可能在
/etc/unit/unit.conf或类似路径 - 内容包含"applications"、"listeners"等Unit特有的配置项
4. 检查HTTP响应头
使用浏览器开发者工具:
- 在页面上右键,选择"检查元素"或按F12
- 切换到"网络(Network)"面板
- 刷新页面,查看请求的响应头
- 查找
Server字段
预期结果:
- 官方NGINX :显示
Server: nginx或Server: nginx/1.29.4 - F5 NGINX Unit :可能显示
Server: Unit或Server: F5 Unit等特有标识
5. 功能测试(验证是否支持多语言应用)
创建简单测试 :
尝试在服务器上部署一个非HTML内容(如Python、PHP应用):
- 官方NGINX不直接支持运行Python/PHP等应用,需要额外配置FastCGI/uWSGI等
- F5 NGINX Unit原生支持多种语言,可直接通过JSON配置运行应用程序
三、综合判断流程
| 步骤 | 操作 | 判断依据 | 结论 |
|---|---|---|---|
| 1 | nginx -V |
版本字符串含"Unit"或"unit" | 使用F5 NGINX Unit |
| 2 | 检查进程名 | 存在unitd进程 |
使用F5 NGINX Unit |
| 3 | 查看配置文件 | JSON格式,含"applications"等字段 | 使用F5 NGINX Unit |
| 4 | 测试多语言支持 | 可直接运行Python/PHP应用 | 使用F5 NGINX Unit |
| 5 | 全部不符 | 版本为标准nginx格式,进程为nginx,配置为传统格式,不支持多语言直接运行 | 使用官方NGINX |
四、总结与建议
判断关键点 :版本信息 (nginx -V)是区分两者最简单、最直接的方法。如果版本字符串中包含"Unit"或"unit",或进程名为unitd,则极可能是F5 NGINX Unit。
针对CVE-2025-1695 :如果确认使用的是官方NGINX 而非F5 NGINX Unit,则不受此漏洞影响,无需采取针对该漏洞的修复措施。