当前位置:   article > 正文

【中间件安全】zookeeper安全学习_如何保护zk

如何保护zk

引言

ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。

zookeeper 的主要应用场景如下:

  • 统一命名服务
  • 统一配置管理
    这个比较常见,例如,一个kafka集群, 要修改一下配置, 总不能一台一台登录主机去修改吧, 这时可以使用zookeeper, 只要一个修改了,其他的都会修改。
  • 统一集群管理
    可以将节点的状态写入node
  • 服务器节点动态上下线
    可以实时感知到服务器上线和下线的变化。
  • 软负载均衡等。
    让最少的服务器去处理最新的客户端请求

本文主要关注的是zookeeper 的:

  1. 安装与部署
  2. 基本使用
  3. 未授权访问漏洞验证与安全加固

zookeeper安装

主要安装步骤如下:

wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.5.10/apache-zookeeper-3.5.10-bin.tar.gz
tar -zxvf apache-zookeeper-3.5.10-bin.tar.gz 
cd apache-zookeeper-3.5.10-bin
mv zoo_sample.cfg  zoo.cfg
./zkServer.sh  start
./zkCli.sh -server ip:2181
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

zookeeper的简单使用教程

ls /
ls2 /
stat /path
create -s -e /runoob 0
set /path data 
delete path 
get /      # 获取节点数据  

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

zookeeper的未授权漏洞验证

zookeeper 默认情况下是可以未授权访问的, 即客户端在网络可达的情况下可以任意修改zk 的节点信息。

未授权验证方式:

# 使用客户端连接
./zkCli.sh -server ip:2181

# 接下来可以用stat 或者ls 命令访问节点看看是否可以正常访问。
  • 1
  • 2
  • 3
  • 4

zookeeper 权限简介

zk节点有如下权限

CREATE: 能创建子节点
READ:能获取节点数据和列出其子节点
WRITE: 能设置节点数据
DELETE: 能删除子节点
ADMIN: 能设置权限
  • 1
  • 2
  • 3
  • 4
  • 5

zk节点有如下的认证:

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

漏洞修复:

为ZooKeeper配置相应的访问权限。
方式一:1)增加一个认证用户addauthdigest用户名:密码明文eg.addauthdigestuser1:password12)设置权限setAcl/pathauth:用户名:密码明文:权限eg.setAcl/testauth:user1:password1:cdrwa3)查看Acl设置getAcl/path
方式二:setAcl/pathdigest:用户名:密码密文:权限
  • 1
  • 2
  • 3
  • 这里讲解一下setAcl 的配置方法:
    方法一:

连接服务端:

./zkCli.sh -server ip:port
  • 1
  • 查看当前权限:
getAcl /
  • 1
  • 添加可访问的ip:
setAcl / ip:1.1.1.1:cdrwa,ip:2.2.2.2:cdrwa,ip:3.3.3.3:cdrwa
  • 1
  • 如果要恢复所有ip 都能访问, 则可以执行:
setAcl / world:anyone:cdrwa
  • 1

方法二:

create /test 'test-data' //创建节点 
addauth digest xmr:123456 //增加一个认证用户  格式 addauth digest 用户名:密码
setAcl /test auth:xmr:123456:r //对新增加的用户设置权限,r代表只读权限
getAcl /test //获取节点信息
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/888171
推荐阅读
相关标签
  

闽ICP备14008679号