Skip to content

中间件安全检查知识

约 4243 字大约 14 分钟

2026-01-20

中间件是应用系统的核心组件,常暴露于网络中,容易成为攻击者的目标。以下总结了常见中间件的安全风险及加固建议,涵盖 Nacos、Redis、ElasticSearch、RabbitMQ、Tomcat、Nginx、Rancher 等。

1. Nacos安全检查

1.1 默认端口整改

项目内容
漏洞名称Nacos默认端口暴露
风险描述Nacos使用默认端口8848,攻击者可通过扫描默认端口快速定位目标,进行暴力破解或漏洞利用。
风险等级中风险
检测方法查看配置文件 conf/application.properties 中的 server.port 配置项
合规标准端口配置不为8848默认端口
修复方案修改 application.properties 中的 server.port 为非默认端口

1.2 身份鉴别缺失

项目内容
漏洞名称Nacos未启用身份认证
风险描述Nacos默认未开启身份认证,攻击者可直接访问控制台,查看或修改配置信息,导致配置泄露或服务中断。
风险等级中风险
检测方法查看配置文件 conf/application.propertiesnacos.core.auth.enabled 是否为true
合规标准nacos.core.auth.enabled=true
修复方案修改配置文件,设置 nacos.core.auth.enabled=true,并配置合理的认证方式

1.3 默认密钥风险

项目内容
漏洞名称Nacos默认JWT密钥
风险描述Nacos使用默认的JWT密钥,攻击者可利用默认密钥伪造Token,绕过认证机制,获取系统控制权。
风险等级中风险
检测方法查看 nacos.core.auth.plugin.nacos.token.secret.key 是否为默认值
合规标准使用自定义的复杂密钥,非默认值
修复方案修改 application.propertiesnacos.core.auth.plugin.nacos.token.secret.key 为自定义强密钥

1.4 Actuator未授权访问

项目内容
漏洞名称Nacos Actuator未授权访问
风险描述Nacos集成了Spring Boot Actuator,默认配置下未授权访问,可泄露系统健康状态、配置信息、线程堆栈等敏感信息,辅助攻击者进行下一步攻击。
风险等级中风险
检测方法访问 /actuator/actuator/env 等路径,确认是否需要认证
合规标准Actuator接口无法访问或需要认证
修复方案配置 management.server.port=-1 禁用Actuator,或设置严格的访问权限控制

1.5 安全审计不足

项目内容
漏洞名称Nacos审计日志不完善
风险描述Nacos审计日志仅本地保存,未定期备份,一旦日志被篡改或删除,无法追溯安全事件,违反等保合规要求。
风险等级中风险
检测方法检查 logs 目录下的日志文件,查看是否存在定时备份任务(crontab -e
合规标准配置了日志集中存储和定期备份机制
修复方案配置rsyslog远程日志服务器,或使用crontab定时将日志备份到远程存储,保存周期不少于180天

1.6 数据备份缺失

项目内容
漏洞名称Nacos配置数据无异地备份
风险描述Nacos配置数据仅本地存储,一旦服务器故障或数据损坏,将导致配置丢失,影响业务连续性。
风险等级中风险
检测方法检查是否存在异地备份机制
合规标准配置了异地数据备份
修复方案配置定时任务,使用rsync/scp将Nacos配置数据备份至异地备用场地

2. 🧩 Redis安全检查

2.1 默认端口整改

项目内容
漏洞名称Redis默认端口6379暴露
风险描述Redis使用默认端口6379,攻击者可通过端口扫描快速发现Redis服务,尝试未授权访问或暴力破解。
风险等级中风险
检测方法查看 redis.conf 配置文件中的 port 配置项
合规标准端口配置不为6379默认端口
修复方案修改 redis.conf,将 port 修改为非默认端口

2.2 身份鉴别缺失

项目内容
漏洞名称Redis未启用密码认证
风险描述Redis默认无密码认证,攻击者可直接连接Redis服务器,读取或修改缓存数据,甚至写入恶意数据或执行高危命令。
风险等级中风险
检测方法查看 redis.confrequirepass 是否已配置
合规标准requirepass 已配置强密码
修复方案redis.conf 中设置 requirepass <强密码>,使用复杂口令(大小写字母+数字+特殊字符)

2.3 安全审计不足

项目内容
漏洞名称Redis审计日志未备份
风险描述Redis日志仅本地保存,未定期备份,一旦日志被篡改或删除,无法追溯安全事件,违反等保合规要求。
风险等级高风险
检测方法检查 crontab -e 是否存在日志备份任务
合规标准配置了日志定期备份
修复方案配置定时任务,使用rsync/scp将Redis日志备份至远程存储,保存周期不少于180天

2.4 日志配置缺失

项目内容
漏洞名称Redis未配置日志文件
风险描述Redis未配置日志文件,无法记录操作行为,当发生安全事件时无法进行审计和溯源。
风险等级低风险
检测方法查看 redis.conflogfile 是否配置
合规标准logfile 已配置有效路径
修复方案redis.conf 中设置 logfile <日志文件路径>,并确保日志目录有写入权限

2.5 高危命令未禁用

项目内容
漏洞名称Redis高危命令未禁用
风险描述Redis中的 FLUSHDBFLUSHALLCONFIG 等高危命令,如果被攻击者利用,可导致数据丢失或服务器被控制。
风险等级高风险
检测方法查看 redis.confrename-command 配置
合规标准FLUSHDBFLUSHALLCONFIG 等命令被重命名或禁用
修复方案redis.conf 中使用 rename-command 重命名高危命令,如:rename-command FLUSHALL ""(禁用)或 rename-command CONFIG "复杂随机字符串"

2.6 版本漏洞

项目内容
漏洞名称Redis低版本漏洞
风险描述低版本Redis可能存在已知安全漏洞,如未授权访问、代码执行等,攻击者可利用漏洞控制服务器。
风险等级中风险
检测方法执行 redis-server -v 查看版本号
合规标准使用最新稳定版本
修复方案升级Redis至最新稳定版本,并测试业务兼容性

3. 🧩 Nginx安全检查

3.1 应用版本漏洞

项目内容
漏洞名称Nginx低版本漏洞
风险描述低版本Nginx可能存在已知安全漏洞,如越界读取、缓冲区溢出等,攻击者可利用漏洞获取敏感信息或执行任意代码。
风险等级高风险
检测方法执行 nginx -v 查看版本号
合规标准版本号 ≥ 1.23.3
修复方案升级至公司提供的最新安全版本,或从官方源升级至最新稳定版

3.2 版本信息泄露

项目内容
漏洞名称Nginx版本信息泄露
风险描述Nginx默认配置会在响应头中返回版本号,攻击者可根据版本号快速定位对应漏洞进行针对性攻击。
风险等级低风险
检测方法检查配置文件是否配置了 server_tokens off;
合规标准server_tokens 配置为 off
修复方案nginx.confhttp 块中添加 server_tokens off;,隐藏版本号

3.3 安全审计不足

项目内容
漏洞名称Nginx访问日志未备份
风险描述Nginx访问日志仅本地保存,未定期备份,一旦日志被篡改或删除,无法追溯安全事件,违反等保合规要求。
风险等级低风险
检测方法检查 crontab -e 是否存在日志备份任务
合规标准配置了日志定期备份
修复方案配置定时任务,使用rsync/scp将Nginx日志备份至远程存储,保存周期不少于180天

3.4 数据备份缺失

项目内容
漏洞名称Nginx配置文件及静态资源无备份
风险描述Nginx配置文件和静态资源无备份,一旦服务器故障或配置被篡改,无法快速恢复服务。
风险等级中风险
检测方法检查 crontab -e 是否存在配置文件和静态资源备份任务
合规标准配置了定期备份
修复方案配置定时任务,使用rsync/scp将Nginx配置目录和静态资源目录备份至远程存储

3.5 安全响应头缺失

项目内容
漏洞名称Nginx缺少安全响应头配置
风险描述Nginx未配置安全响应头,增加了XSS、点击劫持、MIME嗅探等攻击风险。
风险等级
检测方法通过浏览器开发者工具或curl命令检查响应头,确认是否包含以下安全头:
X-XSS-Protection
X-Frame-Options
Strict-Transport-Security
X-Content-Type-Options
合规标准所有页面都设置了以下响应头:
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
Strict-Transport-Security: max-age=16070400;
X-Content-Type-Options: nosniff
修复方案在Nginx配置中添加以下配置:
add_header X-XSS-Protection "1; mode=block" always;
add_header X-Frame-Options "DENY" always;
add_header Strict-Transport-Security "max-age=16070400" always;
add_header X-Content-Type-Options "nosniff" always;

安全响应头详细说明:

响应头作用配置建议
X-XSS-Protection启用浏览器XSS过滤机制,阻止页面加载检测到的反射型XSS攻击1; mode=block
X-Frame-Options防止页面被嵌套在<frame><iframe>中,有效防御点击劫持攻击DENY(拒绝所有嵌套)或 SAMEORIGIN(仅允许同源嵌套)
Strict-Transport-Security (HSTS)强制浏览器只能通过HTTPS访问网站,防止SSL剥离攻击max-age=31536000; includeSubDomains
X-Content-Type-Options禁用浏览器的MIME类型嗅探功能,严格遵循Content-Type指定的类型,防止类型混淆攻击nosniff

3.6 不安全HTTP方法未禁用

项目内容
漏洞名称Nginx启用了不安全的HTTP方法
风险描述Nginx默认可能启用了TRACEDELETEPUT等不安全HTTP方法。
TRACE方法可用于XST攻击,DELETE/PUT方法可能导致文件被非法删除或上传。
风险等级中风险
检测方法使用curl命令测试:curl -v -X OPTIONS http://域名/,查看Allow头中包含的方法
合规标准仅保留GETHEADPOST方法,禁用TRACEDELETEPUT
修复方案location块中配置:
```if ($request_method !~ ^(GET

3.7 访问控制不足

项目内容
漏洞名称Nginx缺少IP访问控制
风险描述管理后台或敏感接口未限制IP访问,攻击者可远程访问,增加了被暴力破解或漏洞利用的风险。
风险等级中风险
检测方法检查敏感路径(如/admin/manager)的访问控制配置
合规标准敏感路径配置了IP白名单或身份认证
修复方案location块中配置IP访问控制:
location /admin {allow 192.168.1.0/24;deny all;}

3.8 请求体过大未限制

项目内容
漏洞名称Nginx未限制客户端请求体大小
风险描述未限制请求体大小,攻击者可发送超大请求体导致服务器资源耗尽,引发DoS拒绝服务攻击。
风险等级中风险
检测方法检查client_max_body_size配置项
合规标准client_max_body_size根据业务需求设置了合理限制
修复方案httplocation块中配置:client_max_body_size 10m;(根据业务调整)

3.9 连接超时设置不当

项目内容
漏洞名称Nginx连接超时设置过长
风险描述连接超时设置过长,攻击者可建立大量慢速连接,耗尽服务器连接资源,导致服务不可用。
风险等级中风险
检测方法检查keepalive_timeoutclient_body_timeoutclient_header_timeout等配置
合规标准超时时间设置合理,避免过长
修复方案配置合理的超时时间:
keepalive_timeout 65;client_body_timeout 10;client_header_timeout 10;send_timeout 10;

4. 🧩 Tomcat安全检查

4.1 安全审计不足

项目内容
漏洞名称Tomcat访问日志未备份
风险描述Tomcat访问日志仅本地保存,未定期备份,一旦日志被篡改或删除,无法追溯安全事件。
风险等级高风险
检测方法检查 crontab -e 是否存在日志备份任务
合规标准配置了日志定期备份
修复方案配置定时任务,使用rsync/scp将Tomcat日志备份至远程存储,保存周期不少于180天

4.2 版本漏洞

项目内容
漏洞名称Tomcat低版本漏洞
风险描述低版本Tomcat存在多个已知漏洞,如会话伪造、远程代码执行等,攻击者可利用漏洞控制服务器。
风险等级高风险
检测方法进入Tomcat bin目录,执行 ./version.shversion.bat 查看版本号
合规标准使用公司提供的Tomcat安全版本
修复方案升级至公司提供的最新安全版本

4.3 版本信息泄露

项目内容
漏洞名称Tomcat版本信息泄露
风险描述Tomcat在错误页面和响应头中返回版本号,攻击者可根据版本号快速定位对应漏洞进行针对性攻击。
风险等级低风险
检测方法访问错误页面或使用curl查看响应头,确认是否包含版本信息
合规标准响应头中不包含Tomcat版本信息
修复方案1. 打开 lib/catalina.jar
2. 找到 org/apache/catalina/util/ServerInfo.properties
3. 修改 server.infoserver.number 为自定义值(如 NoVison

4.4 管理端暴露

项目内容
漏洞名称Tomcat管理端未移除
风险描述Tomcat默认自带管理应用(manager、host-manager),如果未移除或未配置强密码,攻击者可登录管理后台部署恶意应用。
风险等级高风险
检测方法查看Tomcat的 webapps 目录下是否存在manager等管理应用
合规标准webapps 目录下无管理应用
修复方案删除 webapps 目录下的所有管理应用(manager、host-manager、docs、examples、ROOT等)

4.5 数据备份缺失

项目内容
漏洞名称Tomcat应用无备份
风险描述Tomcat应用无备份,一旦服务器故障或应用被篡改,无法快速恢复服务。
风险等级中风险
检测方法检查 crontab -e 是否存在应用备份任务
合规标准配置了定期备份
修复方案配置定时任务,使用rsync/scp将Tomcat应用目录备份至远程存储

5. 🧩 Rancher安全检查

5.1 默认端口暴露

项目内容
漏洞名称Rancher默认端口443暴露
风险描述Rancher使用默认端口443,攻击者可通过端口扫描快速定位Rancher管理界面,尝试暴力破解或漏洞利用。
风险等级高风险
检测方法执行 `docker ps -a
合规标准端口不为默认443
修复方案修改容器启动参数,将443端口映射为其他非默认端口

5.2 数据备份缺失

项目内容
漏洞名称Rancher数据无备份
风险描述Rancher配置数据无备份,一旦服务器故障或数据损坏,将导致K8s集群管理功能失效,影响业务连续性。
风险等级中风险
检测方法检查 crontab -e 是否存在备份任务
合规标准配置了定期备份
修复方案配置定时任务,备份Rancher数据卷或数据库

5.3 身份鉴别缺失

项目内容
漏洞名称Rancher未启用身份认证
风险描述Rancher未启用身份认证,攻击者可直接访问管理界面,控制整个K8s集群。
风险等级中风险
检测方法访问Rancher管理页面,确认是否需要登录
合规标准需要账号密码登录验证
修复方案启用用户验证,配置强密码策略

总结建议

类别建议
端口整改避免使用默认端口,减少被扫描攻击的风险
身份鉴别强制启用认证机制,使用强密码策略
安全审计开启日志记录并定期备份,保存至少180天
数据备份本地+异地备份,确保数据可恢复
版本升级及时更新中间件版本,修复已知漏洞
安全配置禁用危险功能、隐藏版本号、配置安全响应头
访问控制限制IP访问范围,仅允许必要来源
漏洞修复定期扫描漏洞,及时安装安全补丁