在CentOS上对Kafka进行安全配置,可以遵循以下步骤:
首先,确保你的CentOS系统是最新的。
sudo yum update -y
Kafka需要Java运行环境。你可以安装OpenJDK或Oracle JDK。
sudo yum install java-1.8.0-openjdk-devel -y
从Apache Kafka官网下载最新版本的Kafka,并解压到指定目录。
wget https://downloads.apache.org/kafka/3.4.0/kafka_2.13-3.4.0.tgz
tar -xzf kafka_2.13-3.4.0.tgz -C /opt
cd /opt/kafka_2.13-3.4.0
编辑server.properties文件进行安全配置。
listeners=SSL://:9093
ssl.keystore.location=/path/to/keystore.jks
ssl.keystore.password=your_keystore_password
ssl.key.password=your_key_password
ssl.truststore.location=/path/to/truststore.jks
ssl.truststore.password=your_truststore_password
ssl.enabled.protocols=TLSv1.2
ssl.cipher.suites=TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384
listeners=SASL_SSL://:9094
security.inter.broker.protocol=SASL_SSL
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";
authorizer.class.name=kafka.security.authorizer.AclAuthorizer
allow.everyone.if.no.acl.found=false
super.users=User:admin
使用keytool生成SSL证书和密钥。
keytool -genkey -alias kafka -keystore /path/to/keystore.jks -storepass your_keystore_password -validity 3650 -keyalg RSA
keytool -export -alias kafka -file kafka.crt -keystore /path/to/keystore.jks -storepass your_keystore_password
keytool -import -alias kafka -file kafka.crt -keystore /path/to/truststore.jks -storepass your_truststore_password
启动Kafka服务器并确保配置生效。
bin/kafka-server-start.sh config/server.properties
确保防火墙允许Kafka使用的端口。
sudo firewall-cmd --permanent --zone=public --add-port=9093/tcp
sudo firewall-cmd --permanent --zone=public --add-port=9094/tcp
sudo firewall-cmd --reload
使用Kafka客户端工具验证配置是否生效。
bin/kafka-console-producer.sh --broker-list localhost:9093 --topic test --property security.protocol=SSL --property ssl.truststore=/path/to/truststore.jks --property ssl.truststore.password=your_truststore_password
bin/kafka-console-consumer.sh --bootstrap-server localhost:9093 --topic test --property security.protocol=SSL --property ssl.truststore=/path/to/truststore.jks --property ssl.truststore.password=your_truststore_password
通过以上步骤,你可以在CentOS上对Kafka进行基本的安全配置,包括SSL/TLS加密、SASL认证和ACL授权。根据实际需求,你可能还需要进一步调整和优化配置。