在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授權。根據實際需求,你可能還需要進一步調整和優化配置。