在Debian系統上配置Kafka的安全設置主要包括添加認證配置、SSL配置以及使用SASL機制進行安全認證。以下是詳細的步驟:
首先,確保已經在Debian系統上安裝了Java運行環境(JRE或JDK)和Kafka本身。
# 安裝OpenJDK 8
sudo apt update
sudo apt install openjdk-8-jdk
# 驗證Java安裝
java -version
# 下載并解壓Kafka
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -xzf kafka_2.12-3.5.2.tgz
cd kafka_2.12-3.5.2
server.properties文件# 編輯Kafka的 server.properties 文件
nano config/server.properties
添加或修改以下配置項:
# 啟用SSL
listeners=SSL://:9093
security.inter.broker.protocol=SSL
ssl.keystore.location=/path/to/kafka/ssl/keystore.jks
ssl.keystore.password=password
ssl.key.password=password
ssl.truststore.location=/path/to/kafka/ssl/truststore.jks
ssl.truststore.password=password
# 啟用SASL認證
listeners=SASL_PLAINTEXT://:9092
security.inter.broker.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAIN
sasl.enabled.mechanisms=PLAIN
sasl.client.config=/path/to/kafka_server_jaas.conf
在/etc/kafka/conf/目錄下創建一個名為kafka_server_jaas.conf的文件,內容如下:
KafkaServer {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret";
};
生成SSL證書和密鑰庫:
keytool -keystore kafka.server.keystore.jks -alias localhost -validity 365 -genkey -keyalg RSA -keysize 2048
修改server.properties文件以啟用SSL:
# SSL配置
listeners=SSL://:9093
security.inter.broker.protocol=SSL
ssl.keystore.location=/path/to/kafka/ssl/keystore.jks
ssl.keystore.password=password
ssl.key.password=password
ssl.truststore.location=/path/to/kafka/ssl/truststore.jks
ssl.truststore.password=password
使用ufw或iptables配置防火墻,只允許必要的端口通信:
# 允許Kafka端口
sudo ufw allow 9093/tcp
sudo ufw enable
完成上述配置后,重啟Kafka服務以使更改生效:
sudo systemctl restart kafka
在客戶端配置中,也需要啟用SSL和SASL認證,并指定相應的證書和密鑰庫路徑。
生產者配置示例:
bootstrap.servers=localhost:9093
security.protocol=SSL
ssl.truststore.password=password
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";
消費者配置示例:
bootstrap.servers=localhost:9093
security.protocol=SSL
ssl.truststore.password=password
sasl.mechanism=PLAIN