【HDP】zookeeper未授权漏洞修复
目录
一、禁用四字命令
二、ZK-Client增加kerberos
一、禁用四字命令
Zookeeper四字命令的使用方式非常简单,通常有两种方式。第一种是通过Telnet方式,使用Telnet客户端登录ZooKeeper的对外服务端口,然后直接使用四字命令即可;第二种是通过nc方式,如 echo conf|nc localhost 2181。
命令 | 说明 |
conf | conf命令用于输出ZooKeeper服务器运行时使用的基本配置信息,包括clientPort、dataDir和tickTime等,以便快速地查看ZooKeeper当前运行时的一些参数。conf命令会根据当前运行模式来决定输出的信息,如果是单机模式就不会输出诸如initLimit、syncLimit、electionAlg和electionPort等集群相关的配置信息。 |
cons | cons命令用于输出当前这台服务器上所有客户端连接的详细信息,包括每个客户端的客户端IP、会话ID和最后一次与服务器交互的操作类型等。 |
crst | crst是以一个功能性命令,用于重置所有的客户端连接统计信息。 |
dump | dump命令用于输出当前集群的所有会话信息,包括这些会话的会话ID,以及每个会话创建的临时节点等信息。如果在leader服务器上执行该命令,还能够看到每个会话的超时时间。 |
envi | 命令用于输出ZooKeeper所在服务器运行时的环境信息,包括os.version、java.version和user.home等。 |
ruok | ruok命令用于输出当前ZooKeeper服务器是否正在运行。如果当前服务器正在运行,那么返回“imok”,否则没有任何响应输出。ruok命令的输出仅仅只能表明当前服务器是否在运行,准确的说是2181端口打开着,同时四字命令执行流程正常,但不能代表ZooKeeper服务器是否运行正常。 |
stat | stat命令用于获取ZooKeeper服务器的运行时状态信息,包括基本的ZooKeeper版本、打包信息、运行时角色、集群数据节点个数等信息。另外还会将当前服务器的客户端连接信息打印出来。 |
srvr | srvr命令和stat命令的功能一致,唯一的区别的是srvr不会将客户端的连接情况输出,仅仅输出服务器自身的信息。 |
srst | srst是一个功能性的命令,用于重置所有服务器的统计信息。 |
wchs | wchs命令用于输出当前服务器上管理的Watcher的概要信息。 |
wchc | wchc命令用于输出当前服务器上管理的Watcher的详细信息,以会话为单位进行归组,同时列出被该会话注册了Watcher的节点路径。 |
wchp | wchp命令和wchc命令非常类似,也是用于输出当前服务器上管理的Watcher的详细信息,不同点在于wchp命令的输出信息以节点路径为单位进行归组。 |
mntr | mntr命令用于输出比stat命令更为详尽的服务器统计信息,包括请求处理的延迟情况、服务器内存数据库大小和集群的数据同步情况。在输出结果中,每一行都是一个key-value的键值对。如果在Leader服务器上执行该命令还可以获取到更多信息。 |
echo envi | nc IP 2181
HDP - zookeeper 3.4.6 禁用四字命令 4lw.commands.whitelist=ruok
ambari web中zookeeper 中增加zoo.cfg配置,配置完后重启zookeeper
执行如下命令可以看到 获取不到环境信息了
二、ZK-Client增加kerberos
kerberos服务器生成ZK客户端principle和keytab
kadmin.local -q "addprinc -randkey zkcli@WINNER.COM"
kadmin.local -q "xst -k /etc/security/keytabs/zkclient.service.keytab zkcli@WINNER.COM"
增加配置文件/usr/hdp/3.1.4.0-315/zookeeper/conf/jaas.conf
Client {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/etc/security/keytabs/zkclient.service.keytab"
storeKey=true
useTicketCache=false
principal="zkcli@WINNER.COM";
};
ambari web中zookeeper 中修改env 配置,指定zkclient jaas文件路径
修改 完成后重启zookeeper。