Kerberos认证(服务端配置)

声明:本文不介绍Kerberos认证相关理论知识,想了解的可自行查阅相关资料。


醉春风~我醉春风~喔喔……伤她心,我是万万不能。


服务器端配置Kerberos的步骤:

第一步:进行所有kerberos认证文件的管理,我们创建一个目录来专门存放相
              关认证文件

指令:

mkdir -p /var/local/kafka/jaas

执行效果如图:

第二步:建立ZooKeeper的JAAS配置文件

指令:

vim /var/local/kafka/jaas/kafka_zookeeper_jaas.conf

内容:

Server  {

        org.apache.kafka.common.security.plain.PlainLoginModule required

        username="zkadmin"

        password="zkadmin-pwd";

};

执行效果如图:

说明:此步骤在此处配置了一个新的用户:zkadmin/zkadmin-pwd

注:除了username的值与password的值可以自定义外,其他地方最好不要乱改。

第三步:建立一个kafkaServer的JAAS配置

指令:

vim /var/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";
};

执行效果如图:

注:添加Kafka用户的格式为:user_用户名=密码

注:此步骤中的username项的值、password项的值必须与第二步设置的账号密码一样,这样kafka访问zookeeper时
       才能通过Kerberos认证;且必须有一个Kafka用户的用户名、密码是与第二步时设置的用户名密码一样,这样
       zookeeper访问kafka才能通过Kerberos认证

注:在此步骤中,除了配置了一个必须的Kafka账户zkadmin/zkadmin-pwd外,还配置了两个用户:
        alice/alice-pwd、bob/bob-pwd
        追注:准备多个用户的目的,是为了方便后面演示给不同的用户授不同的权限,虽然本人不打算
                   将ACL相关部分从《程序猿成长笔记(第四部)》中分享至CSDN。

第四步:修改zookeeper及kafka的启动文件。

说明:如果要想正常去使用kerberos认证处理,必须由用户自己去指派jaas的访问路径,也就是说kafka本身依赖
           于JDK,那么这个时候必须通过JDK中的初始化参数去定义好jaas访问路径之后才可以进行处理。

第一小步:修改zookeeper服务启动命令

指令:

vim /var/local/kafka/bin/zookeeper-server-start.sh

内容:

export KAFKA_OPTS="-Djava.security.auth.login.config=/var/local/kafka/jaas/kafka_zookeeper_jaas.conf"

执行效果如图:

第二小步:修改kafka服务启动命令

指令:

vim /var/local/kafka/bin/kafka-server-start.sh

内容:

export KAFKA_OPTS="-Djava.security.auth.login.config=/var/local/kafka/jaas/kafka_server_jaas.conf"

执行效果如图:

第五步:修改kafka安装目录下config/server.properties配置文件

指令:

vim /var/local/kafka/config/server.properties

内容:

############################# Server Basics #############################
# Kerberos认证配置
# 编写内部的通讯连接
listeners=SASL_PLAINTEXT://kafka-single:9095
# 设置外部的通讯连接
advertised.listeners=SASL_PLAINTEXT://kafka-single:9095
# 设置使用的通讯协议
security.inter.broker.protocol=SASL_PLAINTEXT
# 启用SASL处理机制间的通讯
sasl.enabled.mechanisms=PLAIN
#设置broker之间的传输机制
sasl.mechanism.inter.broker.protocol=PLAIN

broker.id=0
############################# Socket Server Settings #############################
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
############################# Log Basics #############################
log.dirs=/usr/data/kafka
num.partitions=1
num.recovery.threads.per.data.dir=1

############################# Internal Topic Settings  #############################
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1

############################# Log Retention Policy #############################
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
############################# Zookeeper #############################
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=6000
############################# Group Coordinator Settings #############################
group.initial.rebalance.delay.ms=0

第六步:启动kafka

# 后台启动zookeeper
/var/local/kafka/bin/zookeeper-server-start.sh /var/local/kafka/config/zookeeper.properties > /usr/data/zookeeper.log 2>&1 &
# 前台启动kafak
/var/local/kafka/bin/kafka-server-start.sh /var/local/kafka/config/server.properties

注:启动kafka时最好使用进程独占一个shell的方式前台启动,这样能非常直观得查看启动kafka是否成功。

提示:前台启动kafka时,如果成功启动,说明之前配置的Kerberos没有问题;如果配置的Kerberos有问题,那么
           会启动失败,并且会打印出一堆错误信息

 

声明:本文为学习笔记,学习自51CTO,《Kafka消息中间件》,讲师李兴华。

^_^ 如有不当之处,欢迎指正

^_^ 学习视频:
     
        《Kafka消息中间件》,讲师李兴华

^_^ 参考链接:
             
http://kafka.apache.org/documentation/

^_^ 本文已经被收录进《程序员成长笔记(四)》,笔者JustryDeng

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值