某项目生产环境扫描出漏洞,共两类:
1、RocketMQ可视化管理控制台未授权访问
2、Spring Boot Actuator 配置接口对外开放
问题处理:
1、RocketMQ可视化管理控制台未授权访问
现象:RecketMQ可视化控制台可以直接登录
修复方式:
1).增加加密文件plain_acl.yml,放置在conf目录下
globalWhiteRemoteAddresses: #- 127.0.0.1 accounts: - accessKey: RocketMQ secretKey: 12345678 whiteRemoteAddress: admin: false defaultTopicPerm: DENY defaultGroupPerm: SUB topicPerms: - topicA=DENY - topicB=PUB|SUB - topicC=SUB groupPerms: # the group should convert to retry topic - groupA=DENY - groupB=PUB|SUB - groupC=SUB - accessKey: rocketmq2 secretKey: yuanian_ecs_mq whiteRemoteAddress: # if it is admin, it could access all resources admin: true defaultTopicPerm: SUB|PUB defaultGroupPerm: SUB|PUB
2).修改broker.conf文件增加
#该项配置是开启acl安全认证配置,开启后,需要注意rocketmq_console与项目服务的配置,否则会导致MQ访问鉴权失败,默认不开启。 aclEnable=true
3).修改docker-compose文件
根据下图 修改增加两行配置
#broker添加如下
- ./conf/plain_acl.yml:/opt/conf/plain_acl.yml
#console添加如下
MQ_CAL_OPT: --rocketmq.config.loginRequired=false --rocketmq.config.loginName=loginName --rocketmq.config.password=password --rocketmq.config.accessKey=rocketmq2 --rocketmq.config.secretKey=yuanian_ecs_mq
调整配置后,重启服务,验证结果如下:
结论:感觉处理的方式就是想展现的内容进行了加密处理。
2、Spring Boot Actuator 配置接口对外开放
现象:浏览器可以直接打开:http://ip:port/console/actuator/env 会直接暴露信息,截图如下:
修复方式:
修改对应服务的yml配置文件:
include: "*" 改为 include: health,prometheus
修改前的配置如下:
management:
health:
redis:
enabled: true
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS
修改后如下:
management:
health:
redis:
enabled: true
endpoints:
web:
exposure:
include: health,prometheus
endpoint:
health:
show-details: ALWAYS
修改后,重启服务即可,验证结果如下:登录之前的地址http://ip:port/console/actuator/env
关于Spring boot actuator端点启用和暴露,可以参考:
Spring boot actuator端点启用和暴露_艾米莉Emily的博客-CSDN博客



