在CentOS上配置Zookeeper的安全設置主要包括以下幾個方面:啟用SSL/TLS加密通信、配置認證和授權。以下是一個詳細的步驟指南:
首先,你需要生成SSL/TLS證書和密鑰??梢允褂肙penSSL來生成自簽名證書。
# 創建一個目錄來存放證書和密鑰
mkdir -p /etc/zookeeper/ssl
# 生成私鑰
openssl genrsa -out /etc/zookeeper/ssl/zookeeper.key 2048
# 生成證書簽名請求(CSR)
openssl req -new -key /etc/zookeeper/ssl/zookeeper.key -out /etc/zookeeper/ssl/zookeeper.csr -subj "/CN=localhost"
# 生成自簽名證書
openssl x509 -req -days 365 -in /etc/zookeeper/ssl/zookeeper.csr -signkey /etc/zookeeper/ssl/zookeeper.key -out /etc/zookeeper/ssl/zookeeper.crt
編輯Zookeeper的配置文件/etc/zookeeper/conf/zoo.cfg,添加以下配置:
# 啟用SSL
ssl=true
# SSL相關配置
ssl.keystore.location=/etc/zookeeper/ssl/zookeeper.jks
ssl.keystore.password=your_keystore_password
ssl.truststore.location=/etc/zookeeper/ssl/zookeeper.jks
ssl.truststore.password=your_truststore_password
# 客戶端認證模式
ssl.clientAuth=need
# SSL協議版本
ssl.protocol=TLSv1.2
將生成的證書和密鑰導入到Java KeyStore中。
# 創建KeyStore文件
keytool -importkeystore -srckeystore /etc/zookeeper/ssl/zookeeper.jks -destkeystore /etc/zookeeper/ssl/zookeeper.jks -srcstoretype JKS -deststoretype JKS
# 導入證書到TrustStore
keytool -import -alias zookeeper -file /etc/zookeeper/ssl/zookeeper.crt -keystore /etc/zookeeper/ssl/zookeeper.jks -storepass your_keystore_password
編輯Zookeeper的zoo.cfg文件,添加以下配置來啟用認證和授權:
# 啟用認證
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
# SASL配置
jaasLoginRenew=3600000
創建JAAS配置文件/etc/zookeeper/conf/zookeeper_jaas.conf,內容如下:
Server {
org.apache.zookeeper.server.auth.DigestLoginModule required
user_super="super_password"
user_admin="admin_password";
};
Client {
org.apache.zookeeper.server.auth.DigestLoginModule required;
};
最后,重啟Zookeeper服務以應用所有配置更改。
systemctl restart zookeeper
你可以使用zkCli.sh腳本來驗證配置是否正確。首先,確保你已經設置了環境變量:
export ZOOCFGDIR=/etc/zookeeper/conf
export ZOO_LOG_DIR=/var/log/zookeeper
然后,使用以下命令連接到Zookeeper并驗證認證:
./zkCli.sh -server localhost:2181 -auth digest user_super:super_password
如果一切配置正確,你應該能夠成功連接并執行一些操作。
通過以上步驟,你可以在CentOS上為Zookeeper配置SSL/TLS加密通信以及認證和授權設置。