Kafka Kerberos服务端配置
正是因为Kafka推出了Kerberos认证,才表示Kafka真正的由实验阶段变为了实际的生产环境(速度很慢),但是对于SSL的认证处理是非常复杂的,所以在实际的开发中,更多的开发者会选择利用Kerberos这种认证机制,同时结合jaas配置文件进行更加有效的安全认证处理。
Kerberos认证需要考虑如下几个层次:
a、zookeeper的访问安全:kafka_zookeeper_jaas.conf
b、KafkaServer的访问安全:kafka_server_jaas.conf
c、客户端命令和Java:kafka_client_jaas.conf
这样配置完成之后可以保证你的zookeeper足够安全,你的kafkaserver足够安全,同时千万要记住,在zookeeper和kafkaserver之间进行互相配置的时候,必须有一个相同的用户名和密码。
kerberos认证
1、为了方便进行所有kerberos认证文件的管理建立一个目录:
mkdir -p /usr/local/kafka/jaas
2、建立ZooKeeper的JAAS配置文件:vim /usr/local/kafka/jaas/kafka_zookeeper_jaas.conf
Server {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="zkadmin"
password="zkadmin-pwd";
};
在此处配置了一个新的用户:zkadmin/zkadmin-pwd。
3、 建立一个kafkaServer的JAAS配置:
vim /usr/local/kafka/jaas/kafka_server_jaas.conf
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="zkadmin"
password="zkadmin-pwd"
user_zkadmin="zkadmin-pwd"
user_alice="alice-pwd"
user_bob="bob-pwd";
};
格式:user_用户名=密码,此时的程序配置有三个账户:zkadmin/zkadmin-pwd、alice/alice-pwd、bob/bob-pwd。
4、 如果要想正常去使用kerberos认证处理,必须由用户自己去指派jaas的访问路径,也就是说kafka本身依赖于JDK,那么这个时候必须通过JDK中的初始化参数去定义好jaas访问路径之后才可以进行处理。
4.1、修改zookeeper服务启动命令:
#vim /root/soft/zookeeper-3.4.14/bin/zookeeper-server-start.sh
vim /root/soft/zookeeper-3.4.14/bin/zkServer.sh
export KAFKA_OPTS="-Djava.security.auth.login.config=/usr/local/kafka/jaas/kafka_zookeeper_jaas.conf"
注:第一行追加
4.2、修改kafkaserver启动命令:vim /root/soft/kafka_2.11-2.4.1/bin/kafka-server-start.sh
export KAFKA_OPTS="-Djava.security.auth.login.config=/usr/local/kafka/jaas/kafka_server_jaas.conf"
注:第一行追加
5、如果要想让kafka支持jaas处理操作,那么还需要修改server.properties配置文件:
打开配置文件:vim /usr/local/kafka/config/server.properties;
编写端口号:
port=9092
编写内部的通讯连接:
listeners=SASL_PLAINTEXT://172.16.0.2:9092
设置外部的通讯连接:
advertised.listeners=SASL_PLAINTEXT://203.195.205.63:9092
设置使用的通讯协议:
security.inter.broker.protocol=SASL_PLAINTEXT
启用SASL处理机制间的通讯:
sasl.enabled.mechanisms=PLAIN
设置broker之间的传输机制:
sasl.mechanism.inter.broker.protocol=PLAIN
6、 启动当前的Kafka服务:
6.1、启动zk
cd /root/soft/zookeeper-3.4.14/bin
./zkServer.sh stop
./zkServer.sh start
6.2、启动kafka
cd /root/soft/kafka_2.11-2.4.1/bin
./kafka-server-stop.sh
./kafka-server-start.sh ../config/server.properties > /logs/kafka.log 2>&1 &
6.3、查看主题列表
./kafka-topics.sh --list --zookeeper localhost:2181
可以查看主题,表示kerberos认证配置成功。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
2017-06-27 Linux运维中遇到的常见问题