标签:iptables 127.0 zk 0.1 ip Zookeeper 漏洞 zookeeper Apache
漏洞名称 | Apache Zookeeper 未授权访问漏洞【原理扫描】 |
---|---|
风险等级 | 高 |
高可利用 | 否 |
CVE编号 | - |
端口(服务) | 2181(zookeeper) |
风险描述 | ZooKeeper是一个高性能的分布式数据一致性解决方案,它将复杂的,容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并提供一系列简单易用的接口给客户使用。ZooKeeper默认开启在2181端口,在未进行任何访问控制情况下,攻击者可通过执行envi命令获得系统大量的敏感信息,包括系统名称、Java环境。 |
风险影响 | 攻击者可通过执行envi命令获得系统大量的敏感信息,包括系统名称、Java环境。 |
解决方案 | 1、禁止把Zookeeper直接暴露在公网。2、添加访问控制,根据情况选择对应方式(认证用户,用户名密码)。3、绑定指定IP访问。 |
协议类型 | tcp |
处理方法:
方法一:防火墙授权访问
描述:
zookeeper在默认情况下,是允许任意客户端未经授权访问,存在很大的安全隐患。
解决方法:
通过iptables对zookeeper的访问控制权限。
此问题开发暂未有解决方法,可临时采用iptables 限制2181端口(重启后即失效),除了本身业务访问外,全限制访问,或通过zookeeper自带的acl进行限制。
iptables临时限制方法
1.封2181端口:
iptables -I INPUT -p tcp --dport 2181 -j DROP
2.指定服务器IP 开启2181访问:
Centos6.x、Centos7.x:
iptables -I INPUT -s 10.88.2.208 -p tcp --dport 2181 -j ACCEPT
iptables -I INPUT -s 10.88.2.209 -p tcp --dport 2181 -j ACCEPT
3.进行保存
Centos6.x:
service iptables save
Centos7.x:
iptables-save
4.重启 防火墙
Centos 6.x:
service iptables restart
Centos 7.x:
service firewalld restart
注:Centos 7也可以通过自带的firewalld进行限制,方式如下:
# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="0.0.0.0/0" port protocol="tcp" port="6379" drop"
# firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.1/24" port protocol="tcp" port="6379" accept"
方法二:启用zookeeper自带的授权访问
1.在 $ZOOKEEPER_HOME/bin/下运行(windows环境运行 %ZOOKEEPER_HOME%\bin\zkCli.cmd,进入zkCli之后的操作与linux下相同)
# ./zkCli.sh -server 127.0.0.1
2.登录进zookeeper 命令行, 执行 ls /
[zk: 127.0.0.1(CONNECTED) 24] ls /
[new, new2, zookeeper, zk_test]
[zk: 127.0.0.1(CONNECTED) 25]
3.可以看到有 [new, new2, zookeeper, zk_test]四个节点,对根节点和这四个节点添加acl:
[zk: 127.0.0.1(CONNECTED) 25] setAcl / ip:127.0.0.1:cdwar,ip:192.168.240.140:cdwar
cZxid = 0x0ctime = Thu Jan 01 08:00:00 CST 1970
mZxid = 0x0
mtime = Thu Jan 01 08:00:00 CST 1970
pZxid = 0x2d
cversion = 2
dataVersion = 0
aclVersion = 5
ephemeralOwner = 0x0
dataLength = 0
numChildren = 4
4.有其它服务器需要访问此zookeeper,以 ip:192.168.240.140:cdwar 的格式增加在 setAcl命令最后,以 , 分隔。其它节点增加acl方式也是同样的:
[zk: 127.0.0.1(CONNECTED) 26] setAcl /new ip:127.0.0.1:cdwar,ip:192.168.240.140:cdwar
cZxid = 0x26
ctime = Tue Nov 17 10:44:37 CST 2020mZxid = 0x26
mtime = Tue Nov 17 10:44:37 CST 2020
pZxid = 0x26
cversion = 0
dataVersion = 0
aclVersion = 2
ephemeralOwner = 0x0
dataLength = 18
numChildren = 0
5.增加后,通过getAcl命令查看是否成功:
[zk: 127.0.0.1(CONNECTED) 27] getAcl /
'ip,'127.0.0.
: cdrwa
'ip,'192.168.240.140
: cdrwa
[zk: 127.0.0.1(CONNECTED) 28] getAcl /new
'ip,'127.0.0.1
: cdrwa
'ip,'192.168.240.140
: cdrwa
[zk: 127.0.0.1(CONNECTED) 29] getAcl /new2
'ip,'127.0.0.1
: cdrwa
标签:iptables,127.0,zk,0.1,ip,Zookeeper,漏洞,zookeeper,Apache 来源: https://www.cnblogs.com/shuimublog/p/16338307.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。