zookeeper未授权漏洞修复,zk修改密码

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:9

zookeeper未授权漏洞修复,zk修改密码

# 1. 未授权漏洞 标准部署中,默认没有对所有节点加密,安全扫描可能会扫出未授权漏洞,关键字为getAcl,根目录未加密等,如果安全扫描有根节点加密要求,按照第一章节操作加密即可。 注意:如果安全扫描的描述关键字为echo envi |nc IP 2181,环境,敏感信息等,此为第二种未授权漏洞,需要修改conf/zoo.cfg中4lw.commands.whitelist= (等号后面置空),重启zk即可修复。此设置影响监控建议评估后操作。 ![4lw.webp](/download/0100777845e4a68a473db8bf14f877ccd53b.webp) ## 1.1 确认zk账号密码 mc-【集群管理】,选择集群后,可以看到zk的用户名和密码(如果没有这2个值,需要到【组件维护】-【zookeeper管理】中确认)。使用安装器部署的应该非空,可以查看安装器安装记录或者联系运维获取密码;如果为空可以自行设置账号密码后保存发布。 ![004.webp](/download/010042a0e6d3f3d04611a485be8bb9b312fd.webp) 再确认容器环境变量是否已经加密,同样安装器默认已经加密,如果检查现场环境没有加密,需要添加上。 格式参考:192.168.118.118:2181?user=zookeeper&password=Cosmic@2020 #示例账号zookeeper,密码Cosmic@2020,此处如果不想明文显示密码可以参考文章5-明文密码 ![006.webp](/download/0100af6bd8afef884eaca4f14882c2ec8669.webp) ## 1.2 zk根目录加密 在zookeeper/bin目录下执行: ./zkCli.sh addauth digest zookeeper:Cosmic@2020 setAcl / ip:IP:cdrwa,ip:127.0.0.1:cdrwa,auth:kafka:cdrwa #由于kafka需要连接zk,直接加密后kafka无法正常启动,此处需要设置kafka机器的ip地址添加到白名单 ![002.webp](/download/0100edc5426339c14b9e9ade0cd26b906845.webp) 配置完成后重启kafka服务,能正常启动即为配置成功,解决zookeeper根目录的未授权漏洞。正常情况下到此能满足绝大部分扫描软件要求,如果还有扫描到其他节点存在未授权漏洞,建议提交扫描报告至总部,针对报告再进行具体的分析。 以下内容介绍苍穹zk节点的改密和授权,可以根据需求查看。 # 2. zookeeper修改密码,苍穹节点加密 苍穹版本5.0.011,使用安装器部署的环境默认已经加密部分节点,以下方案为针对安装器部署环境修改密码,如果默认没有设置密码可以跳过步骤2;如果可以删除zk数据,可以参考重新初始化zk;如果需要更完整的加密,请先阅读下文"其他苍穹zookeeper节点相关说明"内容。 # 操作步骤 ## 2.1. 停服,包括所有苍穹容器和mc ## 2.2. 去除老账号信息 以下示例旧加密信息old:Cosmic@2020,新加密信息newzk:Cosmic@2023 在zookeeper/bin目录下执行 ./zkCli.sh addauth digest old:Cosmic@2020 setAcl -R /集群id world:anyone:cdrwa setAcl -R /mc world:anyone:cdrwa setAcl -R /schedule world:anyone:cdrwa setAcl -R /QRootProfiler world:anyone:cdrwa #getAcl /集群id 显示'world,'anyone说明修改成功 quit ![1.webp](/download/0100c5309d4dd4df4a00860df9e3a6178f43.webp) ## 2.3. 使用新账号,必须重新登录zk进行加密 ./zkCli.sh addauth digest newzk:Cosmic@2023 setAcl -R /集群id auth:newzk:cdrwa setAcl -R /mc auth:newzk:cdrwa setAcl -R /schedule auth:newzk:cdrwa setAcl -R /QRootProfiler auth:newzk:cdrwa quit ![2.webp](/download/01005e31be5fe85b4cbe88695342856a13a8.webp) ## 2.4. mc配置修改 mc容器的环境配置,通过gpaas或k8s语句修改configurl的值,在地址后加上?user=newzk&password=Cosmic@2023,启动mc。 ![3.webp](/download/010009eb79522609438c9295779d48335a78.webp) ## 2.5. 针对苍穹配置修改 mc-【集群管理】,选择集群后,修改zk用户名和zk密码,部分环境mc此处可能是选择zk机器,账号密码需要到【组件维护】-【zookeeper管理】中修改。修改完成后集群界面,保存发布。 ![4.webp](/download/010040597f710be34ee186c39baa423b5d54.webp) 苍穹容器的环境配置,通过gpaas或k8s语句修改configurl的值,在地址后加上?user=newzk&password=Cosmic@2023,启动苍穹服务。至此完成配置。 ![5.webp](/download/01005ba625fc7c4746028105d57d99cc0647.webp) # 3. 重新初始化zk 如果是测试环境,可以跳过上面步骤,删除zk数据重新初始化也可以完成苍穹节点,此操作涉及删除zk数据,请谨慎操作。 停止所有苍穹服务,停止zookeeper服务后将zk的数据目录zk_2181改名后启动zk,zk数据将被清空,再按照上述步骤4-登录mc重新初始化-步骤5,即可完成配置。 # 4. 其他苍穹zookeeper节点加密相关说明 上述方案,仅针对苍穹5.0.011版本下的标准部署下的加密配置。如果有比较高的安全要求,可以看到目前还有2个节点未加密: MUTEX:历史接口,后续会优化此节点,目前暂不建议加密。 kdubbo:可以加密,需要可以在上面加密流程中同时添加如下操作: ## 4.1 步骤2.3添加操作 setAcl -R /kdubbo auth:newzk:cdrwa ## 4.2 步骤2.4添加操作 mc容器的环境配置,修改configurl后,还需要添加一个环境变量,变量名称:dubbo.registry.address,变量值为zk地址+加密信息,与configurl一致 ![9.webp](/download/010091c8913426844267b52174f378f6ec30.webp) ## 4.3 步骤2.5添加操作 配置完成后,mc-【集群管理】-【对应集群】-【配置信息】,添加dubbo.zookeeper.ip_port和Schedule.zk.server.ip_port的加密信息,修改后保存发布 ![8.webp](/download/0100bfe00ea7e5354d019e633aadc94937dd.webp) # 5. 注意事项 ## zk跳过授权验证 zookeeper加密异常,在紧急情况下可以修改zk配置文件,zk安装目录下zookeeper/config/zoo.cfg,添加值:skipACL=yes,重启zk后可以暂时去除所有的加密限制,后续修复完成后请务必删除此值再重启保证加密正常生效。 ## 集群配置 zookeeper集群手动加密时,可以只针对任意一个节点进行操作,集群会同步变更。在填写集群值也是值最后加上账号密码即可,示例如下: 192.168.118.10:2181,192.168.118.11:2181,192.168.118.12:2181?user=newzk&password=Cosmic@2023 ## 明文密码 zk的密码在configurl配置中是明文的,如果希望进行对密码加密,可以使用mc-【组件维护】-【加密工具】,进行加密,加密后的值示例如下: 192.168.118.100:2181?user=newzk&password=d@f*g:SGVsbG8=`=QijlBj923RHvrE81qtWWMDVWDCgHqLlgpVouV2Fho6hPa2RwYXNzd29yZA== ## 报错NoAuth 日志中NoAuth for / 这类的报错,基本都是zk加密的问题,可以自行排查加密情况。 由于历史版本部署的zk未加密,并且zk的加密并不会传递的特性,随着加密场景增多,会出现以下两种场景遇到加密相关报错: ### 1. 未对zk加密而mc集群中填写了加密信息 zookeeper和容器环境变量没有加密,却在mc-【集群管理】中添加了账号密码,由于未加密,所以无论填的是什么账号密码都可以成功保存发布,但后续新增的数据就会被带上加密信息,导致报错身份验证失败。例如升级补丁的过程会添加一个新的zk值,这个值携带了加密信息,此时重启mservice就会报错此值NoAuth,需要使用mc配置的账号密码登录zk后去除授权,或设置skipACL=yes先保证容器启动再进行修改。 ![7.webp](/download/0100d5f3f0e47a024532af0c6ea43e0e7935.webp) ### 2. 有开发环境连接后的问题 配置了加密的开发环境,连接未加密的环境进行操作,后续断开后,未加密的环境使用中出现一些报错,报错关键字NoAuth /集群id/xxxx,可以推测是开发环境连接上添加的。此值需要去除此报错节点的身份授权,可以参考步骤1,或者使用skipACL=yes。为了避免此问题,建议zookeeper设置加密,后续开发环境连接也必须提供正确的账号密码才能连上使用,避免出现上述问题。 ![6.webp](/download/010030eb4190d2da4edb9eda1e2b85e4cf5d.webp)

zookeeper未授权漏洞修复,zk修改密码

# 1. 未授权漏洞标准部署中,默认没有对所有节点加密,安全扫描可能会扫出未授权漏洞,关键字为getAcl,根目录未加密等,如果安全扫描有...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息