zookeeper未受权访问渗透测试及修复方法

zookeeper未受权访问危害

服务器信息泄露、集群被破坏html

1、 四字命令未受权使用

1.1 测试

工具:netcat ,Linux或Windows均可以测node

命令行输入echo envi | nc 10.10.10.10 2181便可查看服务器信息bash

命令有:envi stat ruok等服务器

1.2 修复:

不想泄露信息能够修改zookeeper/conf/zoo.cfg(zookeeper为安装目录),注释掉 4lw.commands.whitelist 相关的行。四字命令用于查询状态,zookeeper默认不开放这些命令,只有在白名单中才能运行。svg

2、 未受权链接及节点操做

2.1 测试

工具:Linux下安装zookeeper;或Windows下使用Java8运行zktools>>工具做者<<工具

Linux下,输入测试

zookeeper/bin/zkCli.sh -server 10.10.10.10:2181

便可链接,可以使用get /node watchset /node 1等命令去操做节点,若是成功,则证实此节点存在未受权访问。ui

Windows下,只要zktools链接成功,则证实全部节点存在未受权访问。值得注意的是,若是某个节点有权限控制,那么zktools就没法链接成功,没法访问其余未受权节点了。可是Linux下zkCli.sh仍可访问其余未受权节点。.net

2.2 修复:

2.2.1 ip ACL受权策略

可使用下列操做限制访问节点的IP命令行

setAcl -R /node ip:127.0.0.1:cdrwa,ip:10.10.11.11:cdrwa 
#-R为递归,cdrwa为权限

2.2.2 auth ACL受权策略

即用户模式,制定策略后,访问者必须使用addauth digest user:passwd登陆才能进行节点操做。

策略制定方法为,用zkCli.sh链接后,在其中运行addauth digest user:passwd(digest是固定的)来注册用户,能够有多个用户。而后运行setAcl /node auth::cdrwa(auth是固定的),以后可运行getAcl /node查看,能发现以前注册的用户都被配入了节点的权限中。使用quit退出,再链接,可发现只有在使用addauth登陆以后才能操做节点。

2.2.3 digest Acl受权策略

不难发现策略2中,全部用户对节点的权限都是一致的,只能统一设置,若想使不一样用户对节点的权限不一样,可使用digest Acl受权策略,参见 http://www.javashuo.com/article/p-yzzmshle-gw.html

2.2.4 防火墙策略

使用以上策略限制节点后,任意用户仍可登陆并用ls / 查看节点名字,可是没法得到详细信息和进行操做。若想不让任意用户访问2181端口,能够配置防火墙。

(๑•̀ㅂ•́)و✧

往期精彩文章推荐:

《动态svg图片简单制做》

《使用博客园的第一件事 - 自定义主题》

相关文章
相关标签/搜索