一、简介
公务公司系统上线扫描出来的漏洞
zk未授权访问漏洞(中危)
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。 ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 在通常情况下,zookeeper允许未经授权的访问。
二、配置Acl
docker exec -it <容器id> /bin/bash
cd /opt/bitnami/zookeeper/bin #zookeeper3.7.0版本链接工具所在目录
./zkCli -server 127.0.0.1:2181 #连接zookeeper
addauth digest zookeeper:zk1234 #增加一个用户认证
setAcl / auth:zookeeper:cdrwa #为/目录设置Acl
三、kafka连接zookeeper
Acl设置完成后重启,kafka连接不上zookeeper,报错
1.三主机三节点
三主机三节点模式,三个zookeeper三个kafka,在任意一台zookeeper上配置Acl即可
解决方法,在zookeeper容器内配置访问白名单
setAcl / ip:* * * *:cdrwa,ip:* * * *:cdrwa,ip:* * * *:cdrwa,auth:zookeeper:zk1234
2.单主机三节点
单主机三节点模式,一个zookeeper三个kafka
解决方法,配置白名单
不同点:因为单主机三节点肯定用到了端口映射的模式,所以三台容器与主机不是公用同一个IP,所以要在白名单中填写容器的IP
docker inspect <容器ID> | grep IPAddress #查询容器ID
如果kafka已经起不来了,查不到容器ID,可以链接zookeeper删除Acl设置
setAcl /world:anyone:cdrwa
重启kafka后,查看容器IP加入白名单即可