ubuntu

Ubuntu Kafka安全配置技巧

小樊
54
2025-08-28 12:58:53
栏目: 智能运维

以下是Ubuntu下Kafka的安全配置技巧,涵盖认证、加密及权限管理:

一、SSL/TLS加密配置

  1. 生成证书
    使用OpenSSL生成CA证书、服务器证书及客户端证书,或通过keytool生成密钥库(keystore)和信任库(truststore)。

    # 示例:生成服务器密钥库
    keytool -genkeypair -alias kafka-server -keyalg RSA -keystore kafka-server.jks -storepass 123456 -validity 365
    
  2. 配置server.properties

    listeners=SSL://:9093
    ssl.keystore.location=/path/to/kafka-server.jks
    ssl.keystore.password=123456
    ssl.truststore.location=/path/to/kafka-truststore.jks
    ssl.truststore.password=123456
    ssl.enabled.protocols=TLSv1.2
    ssl.client.auth=required  # 要求客户端认证
    
  3. 客户端配置
    在客户端配置文件中指定SSL参数,如security.protocol=SSL,并指向对应的信任库和密钥库。

二、SASL认证配置

  1. 启用SASL机制

    • SCRAM-SHA-256/512(推荐,支持动态用户管理):
      server.properties中设置:
      sasl.enabled.mechanisms=SCRAM-SHA-256
      sasl.mechanism.inter.broker.protocol=SCRAM-SHA-256
      listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
      username="admin" password="admin123" user_admin="admin123";
      
    • PLAIN(需配合SSL,避免明文传输密码):
      配置方式类似SCRAM,但需注意安全性较低,仅建议在测试环境使用。
  2. 配置JAAS文件
    创建kafka-server-jaas.conf,指定认证模块和用户信息,通过java.security.auth.login.config参数加载。

三、访问控制(ACL)

  1. 启用ACL
    server.properties中设置:

    authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
    
  2. 动态添加ACL规则
    使用kafka-acls.sh脚本为用户分配权限,例如:

    # 允许用户"alice"读取"test-topic"
    bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 \
    --add --allow-principal User:alice --operation Read --topic test-topic
    

四、其他安全措施

  1. 防火墙配置
    通过ufwiptables限制Kafka端口(如9093、2181)仅允许特定IP访问:

    ufw allow from 192.168.1.0/24 to any port 9093
    
  2. 操作系统权限
    以非root用户运行Kafka进程,限制对配置文件和数据目录的访问权限:

    chown -R kafka:kafka /var/lib/kafka
    chmod 700 /var/lib/kafka
    
  3. 日志与监控
    启用Kafka日志记录,并定期分析异常行为,可结合ELK等工具实现集中监控。

五、验证配置

参考来源:

0
看了该问题的人还看了