今天给zookeeper添加Acl权限控制遇到两个大坑
进入zookeeper内执行
getAcl /
查看当前权限,得到的结果是world,anyone:cdrwa,说明是具有所有权限,此时具有未授权漏洞的风险,
因此尝试为其添加ip白名单,结果被坑了:
1.添加白名单必须添加本机白名单,否则修改成功时候本机将不再有控制zk白名单的权限!
我真的是被坑惨,尝试加了几个服务ip之后再查看之后,没权限了!
此时可以参考文章:https://blog.csdn.net/u012799877/article/details/109060920;
同时需要注意的是,如果是zk集群,其中一个权限被修改,所有的都会有影响,所以需要将各自的服务地址全部加进去,另外建议把127.0.0.1也加进去;同时需要先将所有集群中的进程全部kill掉,再尝试链接中的操作;
2.添加白名单的时候一定要全部写在一起,否则两次执行修改权限的命令会导致后面的覆盖前面的!
在好不容易改好了权限之后,我执行了两次命令,第一次倒是把自己加进去了,结果第二次又没了,真是崩溃,另外上面的解决方案也不是一番丰顺的,变数很大;
所以在执行修改命令时,最好一次性全部写上去;
setAcl / ip:127.0.0.1:cdrwa,ip:x.x.x.x:cdrwa,..............
另外,如果是添加网段的话,是可以使用斜线的,比如如下代码可以代表给所有的20~30的IP添加白名单;
setAcl / ip:x.x.x.20/30:cdrwa
但是似乎ip和网段混用的时候无法通过。