centos

Kafka在CentOS的安全认证怎么配置

小樊
47
2025-08-06 14:48:48
栏目: 智能运维

Kafka在CentOS的安全认证配置主要包括SASL、SSL、ACL等方面,以下是关键步骤:

一、SASL认证配置

  1. 修改配置文件
    server.properties中设置:
    listeners=SASL_PLAINTEXT://:9092  # 或SASL_SSL
    security.inter.broker.protocol=SASL_PLAINTEXT
    sasl.mechanism.inter.broker.protocol=PLAIN  # 或SCRAM-SHA-256等
    sasl.enabled.mechanisms=PLAIN
    
  2. 创建JAAS配置文件
    新建kafka_server_jaas.conf,内容示例:
    KafkaServer {
        org.apache.kafka.common.security.plain.PlainLoginModule required
        username="admin"
        password="admin123"
        user_admin="admin123"
        user_user1="user1123";
    };
    
    将文件放置到Kafka配置目录,并在kafka-server-start.sh中添加JVM参数:
    export KAFKA_OPTS="-Djava.security.auth.login.config=/path/to/kafka_server_jaas.conf"
    

二、SSL加密配置(可选)

  1. 生成证书
    使用OpenSSL生成CA、服务器证书及密钥库:
    # 生成CA
    openssl req -new -x509 -keyout ca-key -out ca-cert -days 365 -nodes
    # 生成服务器证书
    openssl req -new -keyout server.key -out server.csr
    openssl x509 -req -CA ca-cert -CAkey ca-key -in server.csr -out server.crt
    # 转换为JKS格式
    keytool -import -alias ca -file ca-cert -keystore kafka.server.truststore.jks
    keytool -import -alias server -file server.crt -keystore kafka.server.keystore.jks
    
  2. 配置SSL参数
    server.properties中添加:
    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
    security.protocol=SASL_SSL  # 需与SASL配合使用
    

三、ACL权限配置

  1. 启用ACL
    server.properties中设置:
    authorizer.class.name=kafka.security.auth.SimpleAclAuthorizer
    
  2. 动态添加权限
    使用kafka-acls.sh工具:
    # 添加用户对Topic的读写权限
    bin/kafka-acls.sh --authorizer-properties zookeeper.connect=localhost:2181 \
    --add --allow-principal User:user1 --operation Read --topic test-topic
    bin/kafka-acls.sh --add --allow-principal User:user1 --operation Write --topic test-topic
    

四、防火墙与网络隔离

  1. 开放端口
    使用firewall-cmd开放Kafka端口(默认9092):
    firewall-cmd --add-port=9092/tcp --permanent
    firewall-cmd --reload
    
  2. 限制IP访问
    通过防火墙规则或云平台安全组限制仅允许特定IP访问Kafka服务。

五、验证与维护

  1. 测试认证
    使用配置了SASL/SSL的客户端工具(如kafka-console-producer.sh)连接服务端,验证认证是否生效。
  2. 定期更新
    定期更新Kafka版本,修复安全漏洞,并检查证书有效期。

说明

0
看了该问题的人还看了