当前位置: 首页 > news >正文

ZooKeeper设置ACL权限控制,删除权限

CREATE、READ、WRITE、DELETE、ADMIN 也就是 增、删、改、查、管理权限,这5种权限简写为crwda(即:每个单词的首字符缩写)
注:这5种权限中,delete是指对子节点的删除权限,其它4种权限指对自身节点的操作权限

Zookeeper的ACL通过scheme🆔permissions来构成权限
scheme这边主要用到4种方式:
world:默认方式,相当于全世界都能访问
auth:代表已经认证通过的用户(cli中可以通过addauth digest user:pwd 来添加当前上下文中的授权用户)
digest:即用户名:密码这种方式认证,这也是业务系统中最常用的
ip:使用Ip地址认证

这次项目让设置一下dubbo连接zookeper的权限问题,于是看到了设置ACL权限,找到zookeeper下的bin文件夹,打开zk服务,启动./zkCli.sh

如果在dubbo中没有指定分组的话,dubbo会默认生成一个分组dubbo,也就是在zookeeper下面会有个子节点dubbo

1)增加一个认证用户
addauth digest 用户名:密码明文
eg:addauth digest user1:password1
2)设置权限
setAcl /path auth:用户名:密码明文:权限
eg. setAcl /test auth:user1:password1:cdrwa
3)查看Acl设置
getAcl /path

在添加用户之前,查看一下zookeper的节点信息,然后创建一个新的节点用来添加用户(使用绝对路径 要添加数据)

如果不加之前配置的认证用户

setAcl /path digest:用户名:密码密文:权限

注:这里的加密规则是SHA1加密,然后base64编码。

经过上面的过程结果还是不能绕过zookeeper未授权访问漏洞,经测试可以在其他服务器上通过echo envi|nc + ip + 端口 访问到zk的信息

因为zookeeper会默认启动这几个具有world和cdrwa权限的znode,“/” “/zookeeper” “/zookeeper/config"和”/zookeeper/quota"(根据zookeeper的版本不同可能存在不同,并且这几个节点虽然具有world和cdrwa权限,但是是无法删除的,不知道为什么,好在我们可以给它设置ACL列表。另外,官网对着几个节点也没有特别说明,估计和zk本身的一些配置相关吧,不删除最好)。就是这几个znode,会导致你的产品无法通过安全工具的漏洞扫描,解决办法也是很简单的,用我们前面说过的zk.setACL为这几个节点设置权限就OK了,千万别忘记根节点"/"了。

这里之所以设置完zookeeper节点还要设置quota
是因为 znode的ACL是相互独立的 。也就是说,任意不同节点可以用不同的acl列表,互不影响,并且 ACL是不可被继承的 。
好了,到这里,才是真正的解决了这个未授权访问漏洞问题了。

找到zookeeper的日志地址,把日志删除就行了,或者 delete /节点
linux环境下也可以使用命令,查询日志地址

相关文章:

  • golang 字符串浅析
  • BFS 解决边权为1的最短路问题
  • 写作神器!推荐4款AI免费的写论文的文献网站
  • 人工智能和大模型的简介
  • cad2015以上默认设置
  • 跨国公司撤出背后的启示:中国IT产业的挑战与机遇
  • 【三维重建】【slam】【分块重建】LocalRF:逐步优化的局部辐射场的鲁棒视图合成
  • 逆向案例二:关键字密文解密,自定义的加密解密。基于企名片科技的爬取。
  • Angular 中的响应式表单:监听变化
  • QT C++实战:实现用户登录页面及多个界面跳转
  • targetSdkVersion > 30 如何将下载的网络视频 保存到手机相册里更新
  • windows 使用ffmpeg .a静态库:读取Wav音频并保存PCM
  • 前端面试题(JS部分)
  • 在博客园随笔中插入3D分子模型
  • 2009年数学二真题复盘
  • 零基础入门JavaWeb——Web基本概念
  • SpringBoot+Vue项目实现身体健康诊疗系统
  • cpu门禁电梯卡复制测试过程
  • DGL学习笔记——第一章 图
  • nginx配置https访问 生成ssl自签名证书,浏览器直接访问
  • Spring实战之容器、上下文、Bean的生命周期
  • 高级 Kubernetes 部署策略
  • RDD缓存机制及持久化技术
  • 50行Python代码实现自动下载小说,并打包exe直接
  • 第一个 GoWeb 程序,三款主流框架 Beego、Gin 和 Iris 快速入门
  • Linux进场调度-中断/系统调用调度与进程的调度类型
  • 机器人操作系统ROS(19) 雷达和摄像头融合的资料
  • 贪心算法证明问题
  • ES6 入门教程 19 Generator 函数的语法 19.7 yield星号表达式
  • 【Kubernetes系列】工作负载资源之Deployment
  • 2.9 Python 流程控制
  • 算法与数据结构 - 贪心算法