zookeeper未授权访问漏洞修复

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

【补充】删除设定的对应iptables -I INPUT -s <本机IP> -p tcp --dport 2181 -j ACCEPT授权

只需要将-I改为-D即可:如

iptables -D INPUT -s XX.XX.XX.XX -p tcp --dport 2181 -j ACCEPT

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

上述防火墙是red hat版本下使用,但如果系统版本是CentOs7时,防火墙使用的不是iptables,而是firewalld,则使用下述操作。

1、查看防火墙状态

systemctl status firewalld或者 firewall-cmd --state

如果防火墙没启动,则启动。

2、启动防火墙

systemctl start firewalld

3、允许制定ip访问特定端口

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.33.254' port protocol='tcp' port='3306' accept"

这条命令只允许IP地址为192.168.33.254的设备访问3306端口。

4、重新加载生效

service firewalld reload

5、查看已经添加的规则

firewall-cmd --list-rich-rules

更多防火墙操作--->https://blog.youkuaiyun.com/weixin_43966996/article/details/145259401https://blog.youkuaiyun.com/weixin_43966996/article/details/145259401

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值