【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。

相关推荐
零号全栈寒江独钓9 分钟前
基于c/c++实现linux/windows跨平台获取ntp网络时间戳
linux·c语言·c++·windows
左手厨刀右手茼蒿19 分钟前
Linux 内核中的进程管理:从创建到终止
linux·嵌入式·系统内核
geinvse_seg21 分钟前
中小团队如何低成本搭建项目管理系统?基于 Ubuntu 的 Dootask 私有化部署实战
linux·运维·ubuntu
CSCN新手听安21 分钟前
【linux】高级IO,以ET模式运行的epoll版本的TCP服务器实现reactor反应堆
linux·运维·服务器·c++·高级io·epoll·reactor反应堆
丶伯爵式22 分钟前
Ubuntu 24.04 更换国内软件源指南 | 2026年3月26日
linux·运维·ubuntu·国内源·升级
左手厨刀右手茼蒿23 分钟前
Linux 内核中的 DMA 管理:从缓冲区到传输
linux·嵌入式·系统内核
Java后端的Ai之路1 小时前
Linux端口进程查找与终止教程
linux·运维·服务器
北山有鸟2 小时前
【学习笔记】MIPI CSI-2 协议全解析:从底层封包到像素解析
linux·驱动开发·笔记·学习·相机
mounter6253 小时前
深度解析:Linux 内核为何要移除“直接映射” (Direct Map)?
linux·运维·服务器·security·linux kernel·direct mem map
bugu___4 小时前
Linux系统、网络知识点回顾1
linux·网络