#作者:任少近

文章目录

  • 1修复背景
  • 2 修复方案说明
  • 3 配置流程
    • 3.1停止zookeeper服务
    • 3.2Zookeeper添加SASL参数
    • 3.3配置jaas密码文件
    • 3.4 添加启动参数
    • 3.5启动zookeeper服务
    • 3.6访问测试
  • 4 Kafka连接zookeeper服务端配置
    • 4.1未配置身份认证
    • 4.2停止kafka服务
    • 4.3配置身份认证
    • 4.4启动kafka服务
  • 5 回滚方案
    • 5.1 Zookeeper回滚方案
    • 5.2 Kafka回滚方案

1修复背景

Zookeeper未授权访问漏洞通常指的是Zookeeper服务未进行适当的安全配置,导致外部用户可未经认证和授权访问Zookeeper服务,从而获取到服务控制权。

2 修复方案说明

SASL:SASL(即简单身份验证和安全层)是一个身份验证框架,它指定和描述将身份验证机制插入应用程序协议的过程。它是一种用于验证远程计算机的互联网标准框架或跟踪方法。
涉及版本:3.6.0+

3 配置流程

3.1停止zookeeper服务

zookeeper]# ./bin/zkServer.sh stop

3.2Zookeeper添加SASL参数

  1. 先备份zookeeper/conf/zoo.cfg配置文件
  2. 在zookeeper/conf/zoo.cfg配置文件中添加如下SASL配置:
    authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    sessionRequireClientSASLAuth=true

3.2.1配置解析

authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider	#启用 SASL 认证

sessionRequireClientSASLAuth=true #自 3.6.0 版本开始:当设置为 true 时,ZooKeeper 服务器将只接受通过 SASL 与服务器进行认证的客户端的连接和请求。未配置 SASL 认证或配置了 SASL 但认证失败(即凭证无效)的客户端将无法与服务器建立会话。在这种情况下,将返回一个类型错误代码(-124),之后 Java 和 C 客户端将关闭与服务器的会话,而不会尝试重新连接。

3.3配置jaas密码文件

  1. 创建zookeeper/conf/zk_jaas.conf密码文件并写入如下密码配置:
Server {org.apache.zookeeper.server.auth.DigestLoginModule requiredusername="zkadmin"      #服务端身份认证用户名password="zkadmin"      #服务端身份认证密码user_zkuser1="password1";     #允许用户名zkuser1且密码为password1的用户访问 user_zkuser2="password2";     #允许用户名zkuser2且密码为password2的用户访问user_zkuser3="password3";     #允许用户名zkuser3且密码为password3的用户访问
…
};Client {org.apache.zookeeper.server.auth.DigestLoginModule requiredusername="zkuser1"      #客户端用户名1password="password1";   #客户端密码1
};Client {org.apache.zookeeper.server.auth.DigestLoginModule requiredusername="zkuser2"password="password2";
};Client {org.apache.zookeeper.server.auth.DigestLoginModule requiredusername="zkuser3"password="password3";
};

3.4 添加启动参数

  1. 先备份zookeeper/bin/zkEnv.sh脚本文件
  2. 在zookeeper/bin/zkEnv.sh中添加如下配置:
export JVMFLAGS="-Djava.security.auth.login.config=/root/zookeeper/conf/zk_jaas.conf -Dzookeeper.requireClientAuthScheme=sasl"

3.5启动zookeeper服务

zookeeper]# ./bin/zkServer.sh start

3.6访问测试

  1. 使用配置zkEnv.sh的zkCli.sh命令
    在这里插入图片描述
  2. 使用未配置zkEnv.sh的zkCli.sh命令
    在这里插入图片描述

4 Kafka连接zookeeper服务端配置

4.1未配置身份认证

在kafka未配置zookeeper对应的Jaas.conf密码时,使用kafka去连接zookeeper,Kafka连接失败,出现缺少认证报错信息。

在这里插入图片描述

4.2停止kafka服务

kafka]#./bin/kafka-server-stop.sh

4.3配置身份认证

4.3.1配置jaas密码文件
在/kafka/config/kafka_jaas.conf编写如下jaas.conf密码:

Client {org.apache.zookeeper.server.auth.DigestLoginModule requiredusername="zkuser"password="password";
};

4.3.2配置kafka启动参数

  1. 在/kafka/bin/kafka-run-class.sh脚本中# JMX settings下添加如下配置:
-Djava.security.auth.login.config=/root/kafka/config/kafka_jaas.conf
  1. 整体配置展示:
# JMX settings
if [ -z "$KAFKA_JMX_OPTS" ]; thenKAFKA_JMX_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.ssl=false -Djava.security.auth.login.config=/root/kafka/config/kafka_jaas.conf "
Fi
  1. 配置图片
    在这里插入图片描述

4.4启动kafka服务

kafka]#./kafka/bin/kafka-server-start.sh -daemon kafka/config/server.properties

5 回滚方案

5.1 Zookeeper回滚方案

  1. 停止zookeeper服务
  2. 恢复zookeeper的zkEnv.sh和zoo.cfg配置文件
  3. 启动zookeeper服务

5.2 Kafka回滚方案

  1. 停止kafka服务
  2. 恢复kafka的kafka-run-class.sh脚本文件
  3. 启动kafka服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/88592.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/88592.shtml
英文地址,请注明出处:http://en.pswp.cn/web/88592.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI进化论07:第二次AI寒冬——AI“改头换面”,从“AI”变成“机器学习”

书接上回,上回咱们聊了神经网络在第一次寒冬中的“蛰伏”与“萌动”。但别高兴太早,AI很快就迎来了它的第二次“寒冬”(大概从20世纪80年代末到90年代中期)。这次寒冬啊,比第一次还“冷”,还“漫长”。AI这…

基于开源AI智能名片链动2+1模式与S2B2C商城小程序的渠道选择策略研究

摘要:在数字化商业环境下,品牌与产品的渠道选择对其市场推广和运营成功至关重要。本文聚焦于如何依据自身品牌和产品特性,结合开源AI智能名片链动21模式与S2B2C商城小程序,运用科学的渠道选择方法,慎重挑选1 - 2个适宜…

开源 C# .net mvc 开发(八)IIS Express轻量化Web服务器的配置和使用

文章的目的为了记录.net mvc学习的经历。本职为嵌入式软件开发,公司安排开发文件系统,临时进行学习开发,系统上线3年未出没有大问题。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。 相关链接: 开源 C# .net mvc 开…

PostgreSQL安装及简单应用

下载地址:EDB: Open-Source, Enterprise Postgres Database Management 安装 注意:端口号默认是5432 配置dbeaver应用,创建数据库和表 -- 创建模式(如果不存在) CREATE SCHEMA IF NOT EXISTS bbbase;-- 创建序列&…

wedo智能车库-----第31节(免费分享图纸)

夸克网盘:https://pan.quark.cn/s/10302f7bbae0 高清图纸源文件,需要的请自取

【springboot】IDEA创建SpringBoot简单工程(有插件)

需求 使用SpringBoot开发一个web应用,浏览器发起请求/hello后,给浏览器返回字符串 hello world~ 步骤 1.创建Maven工程 2.导入spring-boot-stater-web起步依赖 3.编写controller 4.提供启动类 pom.xml文件了解 启动类 新建包 创建类 package com.zw…

python正则表达式re(Regular Expression)

目录 正则表达式: match()函数: search()函数: findall()函数: 正则表达式的参数: 表示字符范围的参数: 表示字符出现的次数的参数: 表示同一类字符的参数: 贪婪和非贪婪模式…

事件驱动设计:Spring监听器如何像咖啡师一样优雅处理高并发

架构哲学:当咖啡店面对汹涌客流时,真正的优雅不是更快的动作,而是科学的协作机制。Spring事件驱动正是通过发布-订阅模式,让系统像顶级咖啡师般从容应对突发流量。一、从咖啡店看监听器本质:3大核心组件拆解 场景还原&…

C++ const 关键字解析

const 是 C 中用于定义常量或指定不可变性的关键字,它在不同上下文中有不同的含义和用法。下面是对 const 的全面解析:1. 基本用法定义常量const int MAX_SIZE 100; const double PI 3.14159;这些值在程序运行期间不能被修改必须在定义时初始化与指针结…

[es自动化更新] Updatecli编排配置.yaml | dockerfilePath值文件.yml

链接:https://github.com/elastic/elasticsearch/tree/main/build-conventions elasticsearch自动化更新 本专栏使用updatecli实现自动化版本更新与依赖管理。 其配置通过编排文件(updatecli-compose.yaml)实现,该文件罗列了称…

新手向:使用Python将多种图像格式统一转换为JPG

本文将详细解析一个专业的Python脚本,它能够将指定文件夹中的所有非JPG格式图像批量转换为JPG格式。这个脚本虽然代码量不大,但包含了文件操作、图像处理、异常处理等多个重要编程概念,非常适合初学者系统学习。环境准备在开始之前&#xff0…

深入剖析C++ RPC框架原理:有栈协程与分布式系统设计

深入剖析C RPC框架原理:有栈协程与分布式系统设计 🛠️ 第一部分:RPC框架核心原理与技术架构 🌐 1.1 RPC在分布式系统中的核心地位 远程过程调用(RPC)是现代分布式系统的基石,它实现了&#xf…

基于springboot+Vue的二手物品交易的设计与实现

基于springbootVue的二手物品交易的设计与实现 作者: Mr顺 | 某大厂全栈开发工程师 | CSDN新星计划导师 | Java领域优质创作者 技术栈: SpringBoot, JavaWeb, 数据库等。精通Java、微信小程序开发。 项目亮点: 完整可运行: 提供…

腾讯云轻量服务器创建快照免费API接口教程

接口简介 该API用于腾讯云轻量服务器系统盘快照创建,无需关机即可自动删除旧快照并创建新快照。特点包括: 不占用腾讯云快照配额支持自动备份策略适用于定时备份任务仅支持系统盘快照(云硬盘需调用专用接口) ​请求地址​ https…

C++中的智能指针(1):unique_ptr

一、背景普通指针是指向某块内存区域地址的变量。如果一个指针指向的是一块动态分配的内存区域,那么即使这个指针变量离开了所在的作用域,这块内存区域也不会被自动销毁。动态分配的内存不进行释放则会导致内存泄漏。如果一个指针指向的是一块已经被释放…

HTTPS安全机制:从加密到证书全解析

目录 1.HTTPS是什么 2.加密是什么 3.HTTPS的加密过程 3.1对称加密 3.2非对称加密 4.引入证书 4.1"中间人"攻击 4.2 引入证书机制 4.3 理解数据签名 4.4 非对称加密 对称加密 证书认证 5.常见问题 5.1 Fiddler等抓包工具,为啥能解析HTTPS的数据…

2024年深度学习技术主要发展分析

摘要:深度学习作为人工智能领域的战略级技术,在2024年持续取得突破性进展,持续重构现代战争规则,成为大国军事智能化竞争的核心角力点。对2024年深度学习技术热门领域的主要发展进行了综合评述。研究了深度学习技术的发展现状&…

Swift 枚举:深入理解与高效使用

Swift 枚举:深入理解与高效使用 引言 Swift 枚举(Enum)是 Swift 编程语言中的一种基本数据类型,它允许我们将一组相关的值组合在一起。枚举在 Swift 中有着广泛的应用,从简单的数据分类到复杂的业务逻辑处理,枚举都能发挥巨大的作用。本文将深入探讨 Swift 枚举的原理、…

从大模型到云游戏,国鑫SY8108G-G4如何化身“全能AI引擎”?

当大模型参数量突破万亿级,传统服务器在散热枷锁与扩展瓶颈前举步维艰。国鑫全新推出的 SY8108G-G4 8U8卡AI服务器 ,以颠覆性架构支持8张600W GPU全速并行,结合CPU-GPU直连、冗余电源和弹性扩展三大优势,为AI训练、生成式创作、数…

在多个DHCP服务器的网络环境中选择指定的DHCP服务

问题 学校有两个网络,我电脑网线插在同一个交换机的同一个接口上,有时候获取的是172.27开头的IP,有时候获取的是192.168开头的IP。 通常第一次开机获取的是172.27的IP,插拔网线或重启网络接口后会变为192.168的IP。 两个网络各有…