当前位置:   article > 正文

zookeeper未授权访问漏洞修复_zk未授权访问

zk未授权访问

zookeeper默认所有地址可访问,存在安全问题,除升级对应版的最高版本外,还需进行服务ACL限制访问。

1、登录zookeeper

进度到zk的安装bin目录

cd  /地址省略/zookeeper3-4.-14/bin

执行命令:

./zkCli.sh -server ip:2181

ip根据自己实际服务器进行填写

登录截图:

2、查看当前权限

执行命令

getAcl /

可以看到当前可访问为anyone,所有人可访问,我们需要对它进行限制

3、限制访问设置

命令:

setAcl / ip:127.0.0.1:cdrwa,ip:ip1:cdrwa,ip:ip2:cdrwa

其中127.0.01标识本机,ip1和ip2根据实际需求进行灵活调整

cdrwa每个参数代表的意思:c:创建(Create)d:删除(Delete)r:读取(Read)w:写入(Write)a:访问(Access)

cdrwa也可根据实际需求进行调整

4、校验

同样使用getAcl /查看是否设置成功

5退出zk

执行quit退出zk

6补充内容

如果不小心设置失误导致本机没有访问zk的权限,做如下操作

1、在zoo.cfg文件中加上配置:skipACL=yes

2、重启zook后,再使用setAcl设置对应的权限

3、确认权限设置好之后,注释配置zoo.cfg配置文件中的skipACL=yes
4、重启zook。

--设置为所有人可访问:

setAcl  / world:anyone:cdrwa

【补充内容】:上述限制ip的方式虽然可以限制节点访问,但是未授权依然可以连接,执行nc命令依然可以获取一些信息,比如执行 echo envi | nc <IP> 2181还是可以获取zk环境的信息。

补充一种防火墙限制2181端口访问的措施

******************************************分界线*********************************************************

【注】以下防火墙命令执行需要root账号或者账号拥有 sudo权限,如果是sudo权限,每个命令前面加sudo
#限制所有ip访问2181端口,(第一步)
iptables -I INPUT -p tcp --dport 2181 -j DROP

iptables -I INPUT -p tcp --dport 2181 -j REJECT
#设置可访问2181的ip(第二步)--记得添加本机ip
iptables -I INPUT -s <本机IP> -p tcp --dport 2181 -j ACCEPT
iptables -I INPUT -s <授权IP> -p tcp --dport 2181 -j ACCEPT

#保存(第三步)
service iptables save
#重启(第四步)
service iptables restart
#打印配置内容
iptables -L

#清除规则
sudo iptables -D INPUT -p tcp --dport 2181 -j REJECT
这条命令会删除INPUT链中针对端口2181的拒绝(REJECT)规则。如果你之前设置的是DROP规则,你需要将REJECT替换为DROP
sudo iptables -D INPUT -p tcp --dport 8080 -j DROP

#验证,在另一台机子上执行以下命令,看是否输出内容
 echo envi | nc 10.190.133.18 2181

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/1013724
推荐阅读
相关标签
  

闽ICP备14008679号