kerberos+kafka(2.13)认证(单节点ubuntu)

一:搭建kerberos。

1. 运行安装命令

apt-get install krb5-admin-server krb5-kdc krb5-user krb5-config

2. 检查服务是否启动。

systemctl status krb5-admin-server
systemctl status krb5-kdc
systemctl start krb5-admin-server
systemctl startkrb5-kdc

3. 修改配置

vi /etc/krb5.conf
在这里插入图片描述
查看服务器名称
在这里插入图片描述
在这里插入图片描述

default_realm = CECGW.CN
# The following krb5.conf variables are only for MIT Kerberos.
        kdc_timesync = 1
        ccache_type = 4
        forwardable = true
        proxiable = true
 [realms]
          CECGW.CN = {
               kdc = ubuntu
               admin_server = ubuntu
       }

4. 创建数据库和principal,使用kdb5_util创建数据库,存放principal相关的信息。

创建数据库

cd /etc/krb5kdc
kdb5_util create -r CECGW.CN -s
输入俩次数据库密码

创建用户principal

kadmin.local
add_principal oneandonly/kerberos@CECGW.CN
输入俩次密码 oneandonly/kerberos@CECGW.CN

导出文件

xst -k oneandonly.keytab -norandkey oneandonly/kerberos@CECGW.CN

验证登录,使用密钥登录.

root@ubuntu:/opt/kafka/kafka_2.13-3.6.1# kinit -kt oneandonly.keytab oneandonly/kerberos
root@ubuntu:/opt/kafka/kafka_2.13-3.6.1# klist

在这里插入图片描述
退出登录

root@ubuntu:/opt/kafka/kafka_2.13-3.6.1# kdestroy
root@ubuntu:/opt/kafka/kafka_2.13-3.6.1# klist

在这里插入图片描述

二:配置kafka认证

1. 注册用户principal,导出密钥文件。

kadmin.local
kadmin.local:  add_principal -randkey kafka-server/ubuntu@CECGW.CN
kadmin.local:  add_principal -randkey kafka-client@CECGW.CN
kadmin.local:  xst -k /root/kafka-server.keytab kafka-server/ubuntu@CECGW.CN
kadmin.local:  xst -k /root/kafka-client.keytab kafka-client@CECGW.CN

2. Kerberos 相关配置

2.1.拷贝 krb5.conf 及 keytab 文件到所有安装 Kafka 的机器,把文件都放到 Kafka 的 config/kerberos 目录下(kerberos 目录需新建)。

在这里插入图片描述

3. kafka服务端配置。

3.1 复制 config/server.properties(复制动作能帮助我们在 认证/非认证 模式自由切换)重命名为 config/server-sasl.properties,增加如下配置:

listeners=SASL_PLAINTEXT://ubuntu:9092
advertised.listeners=SASL_PLAINTEXT://ubuntu:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=GSSAPI
sasl.enabled.mechanisms=GSSAPI
sasl.kerberos.service.name=kafka-server

3.2新建 kafka-server-jaas.conf 文件,该文件也放到 Kafka 的 config/kerberos 目录下:

KafkaServer {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab="/opt/kafka/kafka_2.13-3.6.1/config/kerberos/kafka-server.keytab"
   storeKey=true
   useTicketCache=false
   principal="kafka-server/ubuntu@CECGW.CN";
};

3.3 修改启动命令。

复制 bin/kafka-server-start.sh 脚本重命名为 bin/kafka-server-start-sasl.sh,倒数第二行增加如下配置

export KAFKA_OPTS="-Dzookeeper.sasl.client=false -Dzookeeper.sasl.client.username=zk-server -Djava.security.krb5.conf=/opt/kafka/kafka_2.13-3.6.1/config/kerberos/krb5.conf -Djava.security.auth.login.config=/opt/kafka/kafka_2.13-3.6.1/config/kerberos/kafka-server-jaas.conf"

在这里插入图片描述

4.Kafka 客户端配置

.新建 kafka-client-jaas.conf 文件,该文件也放到 Kafka 的 config/kerberos 目录下。

4.1 新建 client.properties 文件,该文件也放到 Kafka 的 config/kerberos 目录下。

security.protocol=SASL_PLAINTEXT
sasl.mechanism=GSSAPI
sasl.kerberos.service.name=kafka-server

4.2 新建 kafka-client-jaas.conf 文件,该文件也放到 Kafka 的 config/kerberos 目录下

KafkaClient {
   com.sun.security.auth.module.Krb5LoginModule required
   useKeyTab=true
   keyTab="/opt/kafka/kafka_2.13-3.6.1/config/kerberos/kafka-client.keytab"
   storeKey=true
   useTicketCache=false
   principal="kafka-client@CECGW.CN";
};

4.3 复制 bin/kafka-topics.sh、kafka-console-producer.sh、bin/kafka-console-consumer.sh 脚本,分别重命名为 bin/kafka-topics-sasl.sh、kafka-console-producer-sasl.sh、bin/kafka-console-consumer-sasl.sh,倒数第二行增加如下配置

export KAFKA_OPTS="-Djava.security.krb5.conf=/opt/kafka/kafka_2.13-3.6.1/config/kerberos/krb5.conf -Djava.security.auth.login.config=/opt/kafka/kafka_2.13-3.6.1/config/kerberos/kafka-client-jaas.conf"

三:启动测试

1. 启动zk

cd /opt/kafka/kafka_2.13-3.6.1
nohup bin/zookeeper-server-start.sh config/zookeeper.properties > /dev/null 2>&1 &

2. 运行 bin/kafka-server-start-sasl.s 启动 Kafka 集群:

./bin/kafka-server-start-sasl.sh -daemon config/server-sasl.properties

3. 运行 bin/kafka-topics-sasl.sh 查看 topic 列表信息:

./bin/kafka-topics-sasl.sh --list --bootstrap-server ubuntu:9092 --command-config config/kerberos/client.pr
operties

在这里插入图片描述

4. 创建topic

bin/kafka-topics-sasl.sh --create --bootstrap-server ubuntu:9092 --replication-factor 1 --partitions 1 --topic your_topic_name --command-config config/kerberos/client.properties

5. 运行 kafka-console-producer-sasl.sh 生产消息:

./bin/kafka-console-producer-sasl.sh --broker-list ubuntu:9092 --topic your_topic_name --producer.config config/kerberos/client.properties

在这里插入图片描述

6. 运行 bin/kafka-console-consumer-sasl.sh 消费消息:

./bin/kafka-console-consumer-sasl.sh --bootstrap-server ubuntu:9092 --topic your_topic_name --from-beginning --consumer.config config/kerberos/client.properties

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/367890.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GrayLog踩坑历险记

背景 GrayLog作为ELK的替代产品,是新生代的日志采集框架。在一个采集节点日志的需求中,因为节点很多,产生的日志也很多,因此尝试了使用GrayLog进行日志的采集。下面记录一下使用GrayLog中遇到的坑和解决方案。 一、部署与启动 …

【开源】WordPress一键崩溃宕机插件(整活娱乐)

插件介绍 可一键实现Wordpress崩溃宕机的整活向插件(请勿用于非法途径,仅供整活娱乐)。鼓励关注网站性能的提升,以提供更好的用户体验,提倡为用户提供良好体验和高效速度的原则。 介绍 长期以来,人们都在…

iOS图像处理----OpenGL ES之大长腿特效

目录 一、代码部分概括 二、实现流程概括 1、第一次加载图片 ①、GLKView初始化数据 这部分内容主要是初始化顶点数组、上下文以及顶点数组缓存区,需要在加载图片之前做好准备​编辑 ②、加载图片 ③、绘制 2、拉伸图片 ①、滑块调整 ②、图片拉伸过程 3、…

【React】react组件传参

【React】react组件传参 一、props:父组件向子组件传参1、将普通的参数作为props传递2、将jsx作为props传递(组件插槽) 二、自定义事件:子父组件向父组件传参三、context进行多级组件传参四、redux全局状态管理 一、props&#xf…

Redis客户端有哪些:你了解吗?

一、分类 Redis客户端工具是用来连接和管理redis服务器的软件,它们可以有不同的类型,如桌面客户端、web客户端和IDE插件。不同的客户端工具有各自的优缺点和特色,你可以根据你的需求和喜好选择合适的工具。 1、Redis 命令行工具 redis-cli官…

智慧商城(continue)

文章目录 1.静态页面结构准备和动态渲染2.搜索 - 历史记录管理1. 写好基础静态页面,可以先往里面加一点假数据2. 上面基本的渲染直接利用history渲染就可以了3. 搜索历史基本渲染结束了,开始点击搜索添加历史4. vant内用v-model" ",可以快速拿到搜索框的值5. 往历史记…

【DevOps】产品需求文档(PRD)与常见原型软件

文章目录 1、PRD介绍1.1、概述1.2、前提条件1.3、主要目的1.4、关键内容1.5、表述方式1.6、需求评审人员1.7、一般内容结构 2、需求流程3、常见原型软件3.1、Word3.2、Axure3.2.1、详细介绍3.2.2、应用分类3.2.3、优缺点 3.3、摹客RP3.4、蓝湖3.5、GUI Design Studio 1、PRD介绍…

TQ15EG开发板教程:在VIVADO2023.1 以及VITIS环境下 检测DDR4

打开VIVADO2023.1 创建一个新的工程,设置工程名称和地址 选择RTL工程,勾选不添加文件 搜索15eg,选择xqzu15eg-ffrb1156-2-i 完成创建工程 添加设计模块 设置模块名称 在模块中添加mpsoc器件 双击器件进行配置 若有配置文件预设可以直接导入配…

分布式任务调度框架XXL-JOB详解

分布式任务调度 概述 场景: 如12306网站根据不同车次设置放票时间点,商品成功发货后向客户发送短信提醒等任务,某财务系统需要在每天上午10天前统计前一天的账单数据 任务的调度是指系统为了完成特定业务,基于给定的时间点,时间间隔&#…

C# SSH.NET 长命令及时返回

在SSH中执行长时间的命令,SSH.NET及时在文本框中返回连续显示结果。 c# - Execute long time command in SSH.NET and display the results continuously in TextBox - Stack Overflow 博主管理了一个服务器集群,准备上自动巡检工具,测试在…

计算机网络实验二

目录 实验二 交换机的基本配置 1、实验目的 2、实验设备 (1)实验内容: (2)练习: 1.实验内容一:(交换机的配置方式) 2.实验内容二:(交换机…

LabVIEW汽车自燃监测预警系统

LabVIEW汽车自燃监测预警系统 随着汽车行业的飞速发展,汽车安全问题日益受到公众的关注。其中,汽车自燃现象因其突发性和破坏性,成为一个不可忽视的安全隐患。为了有效预防和减少自燃事故的发生,提出了LabVIEW的汽车自燃监测预警…

算法学习——华为机考题库4(HJ26 - HJ30)

算法学习——华为机考题库4(HJ26 - HJ30) HJ26 字符串排序 描述 编写一个程序,将输入字符串中的字符按如下规则排序。 规则 1 :英文字母从 A 到 Z 排列,不区分大小写。 如,输入: Type 输出…

2024年 复习 HTML5+CSS3+移动web 笔记 之CSS遍 第5天

第 五 天 整个网站例 5.1 准备工作 项目目录与版心 base.css 5.2 网页制作思路 5.3 header 区域-整体布局 5.4 header区域-logo 5.5 header区域-导航 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&l…

qt -chart控件设计器可拖拉

qt -chart控件设计器可拖拉 一、演示效果二、安装过程三、核心程序四、程序链接 一、演示效果 二、安装过程 三、核心程序 #include <QtGui> #include <QColor>#include <cstdlib> #include <cassert> #include <numeric>#include <chartwor…

Python 数据分析(PYDA)第三版(六)

原文&#xff1a;wesmckinney.com/book/ 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 十二、Python 建模库介绍 原文&#xff1a;wesmckinney.com/book/modeling 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 此开放访问网络版本的《Python 数据分析第三版…

如何在win系统部署开源云图床Qchan并无公网ip访问本地存储图片

文章目录 前言1. Qchan网站搭建1.1 Qchan下载和安装1.2 Qchan网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar云端设置2.2 Cpolar本地设置 3. 公网访问测试总结 前言 图床作为云存储的一项重要应用场景&#xff0c;在大量开发人员的努力下&#xff0c;已经开发出大…

01-Java工厂模式 ( Factory Pattern )

工厂模式 Factory Pattern 摘要实现范例 工厂模式&#xff08;Factory Pattern&#xff09;提供了一种创建对象的最佳方式 工厂模式在创建对象时不会对客户端暴露创建逻辑&#xff0c;并且是通过使用一个共同的接口来指向新创建的对象 工厂模式属于创建型模式 摘要 1. 意图 …

Mac M1使用PD虚拟机运行win10弹出“内部版本已过期立即安装新的windows内部版本”

一、问题 内部版本已过期立即安装新的windows内部版本 二、解决 1、如图所示打开zh-CN目录 C:\windows\system32\zh-CN找到licensingui.exe文件 将该文件重命名为licensingui_bak.exe 2、修改完成效果如下 &#xff08;1&#xff09;但操作中发现&#xff0c;需要TrustedIns…

店群如何防关联?抖音小店被限流怎么办?——站斧浏览器云桌面

无论是抖音小店店铺&#xff0c;还是其他店铺&#xff1b;使用相同法人、相同类目&#xff0c;多开都会被限流&#xff0c;甚至严重到全部店铺迟迟不出单。 下面小编根据不同情况给出解决方案&#xff1a; 1.不同法人、相同类目的情况 使用云服务器&#xff08;站斧云桌面&am…