网络安全最全Kafka安全认证机制详解之SASL_PLAIN_kafka sasl认证,2024年最新最新高频网络安全笔试题分享

写在最后

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。

需要完整版PDF学习资源私我

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

输入如下内容

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username=“tly” password=“123456”;


username和password必须是kafka\_server\_jaas.conf中配置的。


#### 使用带账号密码配置文件连接



kafka-topics.sh --bootstrap-server kafka1-73085:9092 --list --command-config /root/auth.conf


已经可以正常返回了,说明有权限认证通过了:  
 ![image.png](https://img-blog.csdnimg.cn/img_convert/3fdf6d1c24388045ee17fc4eaf01e565.png)


#### 创建topic



kafka-topics.sh --bootstrap-server kafka1-73085:9092 --create --topic topic_1 --partitions 3 --replication-factor 3 --command-config /root/auth.conf


#### 生产消息



kafka-console-producer.sh --bootstrap-server
kafka1-73085:9092 --topic topic_1 --producer.config /root/auth.conf


#### 消费消息



kafka-console-consumer.sh --bootstrap-server kafka1-73085:9092
–topic topic_1 --consumer.config /root/auth.conf


### 权限配置



修改server.properties 增加如下配置

指定通过ACL来控制权限

authorizer.class.name=kafka.security.authorizer.AclAuthorizer

指定超级管理员

super.users=User:admin


使用权限配置并且超级用户是admin,这个用户和我们上面配置的列表中的admin用户相互映射,每个机器都需要配置然后重启所有节点



配置用户认证文件信息

vim /root/admin.conf

输入如下内容

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username=“admin” password=“123456”;

重启所有节点,每个节点都要执行

停止节点

kafka-server-stop.sh

启动节点

kafka-server-start.sh -daemon /opt/kafka_2.13-2.6.0/config/server.properties


此时每个节点都有了权限认证



配置用户认证文件

vim /root/admin.conf

输入以下内容

security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username=“admin” password=“123456”;


#### 创建topic


这个时候使用auth.conf已经不能创建topic了,使用admin.conf可以创建,因为admin账号和配置的超级管理员一致;而auth.conf配置的是tly账号;



kafka-topics.sh --bootstrap-server kafka1-73085:9092 --create --topic topic_2 --partitions 3 --replication-factor 3 --command-conf /root/auth.conf


![image.png](https://img-blog.csdnimg.cn/img_convert/c9f473fbf4cb0abceab045b1f08cf89e.png)  
 不使用认证创建会一直卡主不动,其实也是没权限的,时间久了就会报timeout异常



kafka-topics.sh --bootstrap-server kafka1-73085:9092 --create --topic topic_3 --partitions 3 --replication-factor 3


![image.png](https://img-blog.csdnimg.cn/img_convert/2ed439a438cc4a8686b10cdc873c0fce.png)


#### kafka-acls控制权限


命令为:kafka-acls.sh  
 参数如下:


* –add 增加权限 --remove 删除权限
* –allow-host 允许操作的主机 --deny-host 拒绝的主机
* –allow-principal 允许操作的用户 --deny-principal 拒绝用户
* –bootstrap-server 集群地址
* –command-config 认证文件信息
* –group 可以消费topic的消费者组
* –list 查询所有权限
* –operation 增加操作权限
	+ describe
	+ describeConfigs
	+ alter
	+ read
	+ delete
	+ create
	+ all
	+ write
	+ alterconfig
* –topic 指定topic


##### 查询topic所有权限



kafka-acls.sh --bootstrap-server kafka1-73085:9092 --list --command-config /root/admin.conf


##### 删除所有权限



kafka-acls.sh --bootstrap-server kafka1-73085:9092 --topic topic_1 --remove --command-config /root/admin.conf


##### 给用户增加权限


给之前的用户tly授权



kafka-acls.sh --bootstrap-server kafka1-73085:9092 --add --allow-principal User:tly --topic topic_1 --operation all --command-config /root/admin.conf


使用tly用户查看当前topic



kafka-topics.sh --bootstrap-server kafka1-73085:9092 --list --command-config /root/auth.conf


##### 回收权限



kafka-acls.sh --bootstrap-server kafka1-73085:9092 --remove --allow-principal user:tly --topic topic_1 --operation all --command-config /root/admin.conf


##### 增加权限并且增加IP限制



kafka-acls.sh --bootstrap-server kafka1-73085:9092 --add --deny-principal User:tly --topic topic_1 --operation all --deny-host 127.0.0.1 --command-config admin.conf


##### 生产者和消费者的权限设置



删除所有权限信息

kafka-acls.sh --bootstrap-server kafka1-73085:9092 --topic topic_1 --remove --command-config /root/admin.conf

添加生产者权限

kafka-acls.sh --bootstrap-server kafka1-73085:9092 --add --allow-principal User:tly --operation Write --topic topic_1 --command-config /root/admin.conf

添加消费权限

kafka-acls.sh --bootstrap-server kafka1-73085:9092 --add --allow-principal User:tly --operation Read --topic topic_1 --command-config /root/admin.conf

消费消息

kafka-console-consumer.sh --bootstrap-server kafka1-73085:9092 --topic topic_1 --from-beginning --consumer.config /root/auth.conf

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。

对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!

【完整版领取方式在文末!!】

93道网络安全面试题

内容实在太多,不一一截图了

黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

😝朋友们如果有需要的话,可以联系领取~

1️⃣零基础入门
① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

image

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image-20231025112050764

2️⃣视频配套工具&国内外网安书籍、文档
① 工具

② 视频

image1

③ 书籍

image2

资源较为敏感,未展示全面,需要的最下面获取

在这里插入图片描述在这里插入图片描述

② 简历模板

在这里插入图片描述

因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Kafka SASL_PLAINTEXT 认证是一种安全机制,用于保护 Kafka 集群中的数据传输。它使用明文密码进行身份验证,但在传输过程中使用了 SASL(Simple Authentication and Security Layer)协议进行加密,从而保证了数据的安全性。这种认证方式适用于需要保护数据传输的场景,如金融、医疗等领域。 ### 回答2: Kafka是一种分布式流处理平台,它能够处理大量的实时数据流,被广泛运用于大数据处理和分布式应用程序中。为了保证数据的安全性,Kafka认证方面提供了多种认证机制,其中sasl_plaintext认证是其中一种比较常用的认证方式。 sasl_plaintext认证基于SASL框架,支持明文认证,即客户端发送的用户名和密码不进行加密,而是直接传输给服务器端进行验证。因此,sasl_plaintext被认为是一种不太安全认证方式,但仍然被广泛采用。 在使用sasl_plaintext认证时,需要在Kafka的server.properties文件中配置相关参数。具体步骤如下: 1. 修改Kafka的server.properties文件,在其中加入以下几行内容,分别指定认证协议、安全协议、认证方式、用户信息等。 sasl.mechanism=PLAIN security.inter.broker.protocol=SASL_PLAINTEXT sasl.enabled.mechanisms=PLAIN sasl.server.callback.handler.class=io.confluent.kafka.security.auth.kerberos.KerberosUsernamePasswordAuthenticateCallback sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \ username="kafka" \ password="kafka123"; 其中,username和password分别指定了客户端发送的用户名和密码。 2. 在客户端应用程序中添加sasl相关的配置,使其能够以sasl_plaintext方式与Kafka服务器进行通信。 在Java代码中需要设置的配置如下: props.put("security.protocol", "SASL_PLAINTEXT"); props.put("sasl.mechanism", "PLAIN"); props.put("sasl.jaas.config", "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"kafka\" password=\"kafka123\";"); 3. 启动Kafka集群,并验证sasl_plaintext认证是否生效。 启动Kafka集群之后,使用Kafka命令行工具进行验证,具体命令如下: ./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --consumer.config config/consumer-sasl.properties --from-beginning 其中,consumer-sasl.properties文件中需要配置以下内容: security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="kafka" password="kafka123"; 如果验证成功,将会输出生产者已经发送的消息,证明sasl_plaintext认证已经生效。 总结来说,sasl_plaintext认证是一种比较简单的认证方式,但相比其他认证方式来说,其安全性较低。因此,在实际应用过程中,建议选择更加安全可靠的认证方式,以确保数据的安全性。 ### 回答3: Kafka是一个流行的分布式消息系统,可以支持高吞吐量的消息传输。为了保证消息传输的安全性,Kafka提供了多种认证机制,其中sasl_plaintext是一种基于用户名密码的认证方式。 sasl_plaintext认证的原理是,在客户端和Kafka服务器之间建立一个安全通道,并且在该通道上使用sasl_plaintext协议进行认证。客户端在与Kafka服务器建立连接之前,必须提供用户名和密码。Kafka服务器会验证这些凭证,并在凭证有效时允许客户端访问Kafka集群中的主题或分区。 sasl_plaintext认证的步骤如下: 1. 客户端发送一个SASL握手请求给Kafka服务器,该请求包括使用的机制和客户端的用户名。 2. Kafka服务器通过查找其配置文件中的用户列表来验证客户端的用户名是否正确,并获取该用户的密码。 3. Kafka服务器使用该密码与客户端发送的密码进行比较。如果它们匹配,则客户端的认证成功。 4. 客户端和Kafka服务器之间建立安全通道,并且sasl_plaintext认证成功。 总之,sasl_plaintext认证提供了一种基于用户名和密码的安全认证机制,可以有效地保护Kafka系统中的消息传输的安全性。但是,为了进一步保护Kafka系统,我们还需要使用其他的安全措施,如TLS/SSL、Kerberos等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值