服务器信息泄露、集群被破坏html
工具:netcat ,Linux或Windows均可以测node
命令行输入echo envi | nc 10.10.10.10 2181
便可查看服务器信息bash
命令有:envi stat ruok等服务器
不想泄露信息能够修改zookeeper/conf/zoo.cfg(zookeeper为安装目录),注释掉 4lw.commands.whitelist
相关的行。四字命令用于查询状态,zookeeper默认不开放这些命令,只有在白名单中才能运行。svg
工具:Linux下安装zookeeper;或Windows下使用Java8运行zktools>>工具做者<<工具
Linux下,输入测试
zookeeper/bin/zkCli.sh -server 10.10.10.10:2181
便可链接,可以使用get /node watch
或set /node 1
等命令去操做节点,若是成功,则证实此节点存在未受权访问。ui
Windows下,只要zktools链接成功,则证实全部节点存在未受权访问。值得注意的是,若是某个节点有权限控制,那么zktools就没法链接成功,没法访问其余未受权节点了。可是Linux下zkCli.sh仍可访问其余未受权节点。.net
可使用下列操做限制访问节点的IP命令行
setAcl -R /node ip:127.0.0.1:cdrwa,ip:10.10.11.11:cdrwa #-R为递归,cdrwa为权限
即用户模式,制定策略后,访问者必须使用addauth digest user:passwd
登陆才能进行节点操做。
策略制定方法为,用zkCli.sh链接后,在其中运行addauth digest user:passwd(digest是固定的)
来注册用户,能够有多个用户。而后运行setAcl /node auth::cdrwa(auth是固定的)
,以后可运行getAcl /node
查看,能发现以前注册的用户都被配入了节点的权限中。使用quit
退出,再链接,可发现只有在使用addauth
登陆以后才能操做节点。
不难发现策略2中,全部用户对节点的权限都是一致的,只能统一设置,若想使不一样用户对节点的权限不一样,可使用digest Acl受权策略,参见 http://www.javashuo.com/article/p-yzzmshle-gw.html
使用以上策略限制节点后,任意用户仍可登陆并用ls / 查看节点名字,可是没法得到详细信息和进行操做。若想不让任意用户访问2181端口,能够配置防火墙。
(๑•̀ㅂ•́)و✧
往期精彩文章推荐: