温馨提示×

Kafka在Debian上的安全认证配置

小樊
44
2025-08-11 05:45:09
栏目: 智能运维

Kafka在Debian上的安全认证配置主要包括SSL/TLS加密和SASL认证,步骤如下:

一、SSL/TLS加密配置

  1. 生成证书和密钥库
    使用keytool生成服务器证书和信任库(需先安装Java):

    keytool -genkeypair -alias kafka -keyalg RSA -keystore kafka.server.keystore.jks -validity 3650 -storepass 123456 keytool -export -alias kafka -file kafka.server.crt -keystore kafka.server.keystore.jks keytool -import -alias kafka -file kafka.server.crt -keystore kafka.server.truststore.jks -storepass 123456 

    (若需客户端证书,重复上述步骤生成客户端密钥库)

  2. 配置Kafka服务器
    编辑/etc/kafka/server.properties

    listeners=SSL://:9093  security.inter.broker.protocol=SSL  ssl.keystore.location=/path/to/kafka.server.keystore.jks  ssl.keystore.password=123456  ssl.truststore.location=/path/to/kafka.server.truststore.jks  ssl.truststore.password=123456  ssl.enabled.protocols=TLSv1.2,TLSv1.3  

    (若启用双向认证,需配置ssl.client.auth=required

  3. 配置Kafka客户端
    客户端需指定信任库路径和密码:

    security.protocol=SSL  ssl.truststore.location=/path/to/kafka.server.truststore.jks  ssl.truststore.password=123456  

二、SASL认证配置

  1. 创建JAAS配置文件
    /etc/kafka/下创建kafka_server_jaas.conf,例如使用PLAIN机制:

    KafkaServer {  org.apache.kafka.common.security.plain.PlainLoginModule required  username="admin"  password="admin-secret";  };  

    (若需SCRAM机制,替换为ScramLoginModule并配置用户名密码)

  2. 启用SASL认证
    修改server.properties

    listeners=SASL_SSL://:9093 # 或SASL_PLAINTEXT  security.inter.broker.protocol=SASL_SSL  sasl.mechanism.inter.broker.protocol=PLAIN  sasl.enabled.mechanisms=PLAIN  sasl.jaas.config=/etc/kafka/kafka_server_jaas.conf  

    (客户端需在配置中指定相同的机制和凭据)

  3. 客户端配置示例

    security.protocol=SASL_SSL  sasl.mechanism=PLAIN  sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";  

三、其他安全设置

  • 防火墙:开放Kafka端口(默认9093):
    sudo ufw allow 9093/tcp 
  • 权限控制:通过ACL限制用户对Topic的访问权限(需结合Zookeeper)。

验证配置

  1. 重启Kafka服务:
    sudo systemctl restart kafka 
  2. 使用客户端测试连接:
    kafka-console-producer --broker-list localhost:9093 --topic test --producer.config client.properties 

注意:生产环境中需使用有效证书、强密码,并定期轮换密钥。详细配置可参考Kafka官方文档。

0