在Linux上设置Kafka的安全性是一个重要的步骤,可以确保数据传输和存储的安全。以下是一个详细的指南,涵盖了从启用SASL认证到配置SSL/TLS加密,以及防火墙设置和操作系统权限限制的各个方面。
server.properties
中,添加以下配置来启用SASL认证:security.protocol=SASL_PLAINTEXT
sasl.mechanism.inter.broker.protocol=PLAINTEXT
sasl.login.config=/path/to/kafka_client_jaas.conf
kafka_client_jaas.conf
),并配置Kafka服务器和客户端的身份验证信息。例如:KafkaClient {
org.apache.kafka.common.security.plain.PlainLoginModule required
username="admin"
password="admin-secret";
};
zoo.cfg
中启用SASL认证,并添加JAAS配置文件的路径:ticktime=2000
initlimit=1
synclimit=5
datadir=/data/zookeeper/data
clientPort=2181
admin.serverport=8888
maxClientCnxns=3000
autopurge.snapRetainCount=3
autopurge.purgeInterval=24
server.1=192.xxx.xxx.112:2888:3888
server.2=192.xxx.xxx.114:2888:3888
server.3=192.xxx.xxx.115:2888:3888
lw.commands.whitelist=conf,stat,srvr,mntr
saslauthprovider.1=org.apache.zookeeper.server.auth.saslauthenticationprovider
jaasloginrenew=3600000
requireclientauthscheme=sasl
zookeeper.sasl.client=true
export server_jvmflags="-djava.security.auth.login.config=/usr/local/zookeeper-3.4.14/conf/zk_jaas.conf"
keytool
工具生成密钥库(keystore)和信任库(truststore):keytool -genkey -alias kafka -keyalg RSA -keystore kafka.server.keystore.jks
keytool -export -alias kafka -file kafka.server.certificate.jks -keystore kafka.server.truststore.jks
server.properties
,指定密钥库和信任库的位置以及密码:ssl.truststore.location=/path/to/kafka.server.truststore.jks
ssl.truststore.password=password
ssl.keystore.location=/path/to/kafka.server.keystore.jks
ssl.keystore.password=password
sudo ufw allow 9092
通过上述步骤,您可以大大提高Kafka服务在Linux上的安全性,确保数据传输和存储的安全。建议定期审查和更新安全配置,以应对不断变化的安全威胁。