赞
踩
搭建完zookeeper集群后,收到了关于zookeeper的漏洞信息:
我们在使用zookeeper提供的服务的时候会发现,只要知道zk服务端的IP和Port,任务用户或者客户端根本不需要任何的认证就可以连上zk的服务端,并且可以对znode进行增删等操作。这样数据是非常不安全的,极易被攻击和篡改。
zookeeper解决这个问题的手段是ACL(access control list)机制,即访问控制列表。
权限permission:zookeeper目前支持下面一些权限:
身份的认证有4种方式:
world:默认方式,相当于全世界都能访问
auth:代表已经认证通过的用户(cli中可以通过addauth digest user:pwd 来添加当前上下文中的授权用户)
digest:即用户名:密码这种方式认证,这也是业务系统中最常用的
ip:使用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
进入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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。