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

相关推荐
zzipeng1 天前
Linux LCD驱动
linux·运维·服务器
思麟呀1 天前
C++11并发编程:call_once一次性执行+atomic原子类型+CAS无锁编程+自旋锁
linux·开发语言·jvm·c++·windows
浮生若城1 天前
Linux库制作与原理(2):理解链接与加载
linux·运维·服务器
Cat_Rocky1 天前
Gitlab安装与配置
linux·运维·gitlab
爱讲故事的1 天前
操作系统第一讲复习:为什么学习操作系统,以及操作系统到底在做什么?
linux·开发语言·windows·学习·ubuntu·c#
荒--1 天前
kali安装与下载、设置(2026)
linux·服务器
sulikey1 天前
个人Linux操作系统学习笔记4 - makefile
linux·makefile·make·构建
_童年的回忆_1 天前
【php】在linux下PHP安装amqp扩展
linux·开发语言·php
sxlishaobin1 天前
linux 自动清除日志 脚本
linux·服务器·前端
蚰蜒螟1 天前
走进 Linux 内核:从 touch 命令到磁盘 inode 的完整旅程
java·linux·前端