Zookeeper未授权漏洞修复

方法一:启用Zookeeper自带授权访问(我修复时采用的方法)
1.在$ZOOKEEPER_HOME/bin下运行zkCli客户端
$ ./zkCli.sh -server 127.0.0.1

2.查看所有节点[zk: localhost:2181(CONNECTED) 0] ls /
系统只有两个节点dubbo和zookeeper

3.对根节点和这两个节点添加acl
setAcl / ip:127.0.0.1:cdwar,ip:192.168.110.186:cdwar
setAcl /dubbo ip:127.0.0.1:cdwar,ip:192.168.110.186:cdwar
setAcl /zookeeper ip:127.0.0.1:cdwar,ip:192.168.110.186:cdwar

4.想要其他服务器访问zookeeper直接以ip:xxx.xxx.xxx.xxx:cdwar的格式新增在setAcl命令后即可,用逗号分隔
5.验证是否成功
getAcl /
getAcl /dubbo
getAcl /zookeeper

方法二:防火墙授权访问
1.临时解决把2181端口封了(重启失效)
iptables -I INPUT -p tcp --dport 2181 -j DROP
2.指定ip可以访问2181端口(适用centos6.x,centos7.x)
执行代码
iptables -I INPUT -s xxx.xxx.xxx.xxx -p tcp --dport 2181 -j ACCEPT
service firewalld restart #centos6重启防火墙
service firewalld restart #centos7重启防火墙
centos7可以通过对firewalld直接进行限制
点击查看代码
# 添加多个端口,permanent为永久生效
firewall-cmd --permanent --zone=public --add-port=7001-7003/tcp --permanent
# 删除某个端口
firewall-cmd --permanent --zone=public --remove-port=81/tcp
# 针对某个 IP开放端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.110.183" port protocol="tcp" port="6379" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.233" accept"
# 删除某个IP
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="192.168.1.51" accept"
# 针对一个ip段访问
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.0/16" accept"
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="9200" accept"
# 添加操作后别忘了执行重载
firewall-cmd --reload

浙公网安备 33010602011771号