关于Zookeeper未授权访问漏洞的解决办法

一、介绍

搭建完zookeeper集群后,收到了关于zookeeper的漏洞信息:
在这里插入图片描述
我们在使用zookeeper提供的服务的时候会发现,只要知道zk服务端的IP和Port,任务用户或者客户端根本不需要任何的认证就可以连上zk的服务端,并且可以对znode进行增删等操作。这样数据是非常不安全的,极易被攻击和篡改。

zookeeper解决这个问题的手段是ACL(access control list)机制,即访问控制列表。

1.权限操作

权限permission:zookeeper目前支持下面一些权限:

  1. CREATE ( c ):创建权限,可以在在当前node下创建child node
  2. DELETE( d ):删除权限,可以删除当前的node
  3. READ( r ):读权限,可以获取当前node的数据,可以list当前node所有的child nodes
  4. WRITE( w ):写权限,可以向当前node写数据
  5. ADMIN( a ):管理权限,可以设置当前node的permission
    这5种权限简写为crwda

2.身份的认证

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

解决方法1 :设置可访问ip

进入zookeeper/bin目录执行./zkCli.sh ,执行getAcl /
看到是任何人都可以访问的
在这里插入图片描述
我们添加可访问的IP地址:
注意:
添加本即的ip地址,以便进行修改,这里遇到一个坑
添加一个ip地址后会覆盖之前添加的ip地址,结果把我的本即的ip覆盖了,修改可访问ip后我自己再次修改的时候无法修改认证失败!只能重装了。

setAcl / ip:127.0.0.1:cdrwa,ip:192.168.183.53:cdrwa,ip:192.168.183.55:cdrwa,ip:192.168.183.62:cdrwa 

在这里插入图片描述

解决方法2 :增加一个认证用户

进入bin目录执行:./zkCli.sh


addauth digest test:123456     

# 创建一个test目录
create /test data
# 查看Acl
getAcl /test
# 设置权限
# setAcl /path auth:用户名:密码明文:权限
# setAcl /path digest:用户名:密码密文:权限
setAcl /test auth:test:123456:cdrwa 

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Liu_Shihao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值