CentOS系統中Zookeeper的安全設置如下:
配置文件權限
確保zoo.cfg
等配置文件所有者為Zookeeper用戶,權限設為644:
sudo chown -R zookeeper:zookeeper /path/to/zoo.cfg
sudo chmod 644 /path/to/zoo.cfg
數據與日志目錄權限
設置數據目錄(dataDir
)和日志目錄權限為750,僅允許Zookeeper用戶讀寫:
sudo chown -R zookeeper:zookeeper /path/to/dataDir /path/to/logDir
sudo chmod -R 750 /path/to/dataDir /path/to/logDir
SELinux設置
臨時關閉SELinux測試或永久禁用(修改/etc/selinux/config
):
sudo setenforce 0 # 臨時關閉
# 或編輯配置文件永久禁用
ACL訪問控制
zkCli.sh
添加用戶并設置ACL權限(如SASL認證):zkCli.sh adduser user1
zkCli.sh setAcl /path/to/node world:anyone:r user1:user1:rwcda
zk.addAuthInfo("digest", "user1:password".getBytes());
防火墻配置
限制Zookeeper端口(默認2181)僅允許受信任IP訪問:
sudo firewall-cmd --permanent --zone=public --add-port=2181/tcp
sudo firewall-cmd --reload
加密通信(SSL/TLS)
zoo.cfg
啟用SSL:openssl req -newkey rsa:2048 -x509 -days 3650 -keyout zookeeper.key -out zookeeper.crt
# 在zoo.cfg中添加:
ssl.keystore.location=/path/to/zookeeper.jks
ssl.keystore.password=yourpassword
ssl.clientAuth=need
安全審計與監控
啟用審計日志記錄節點訪問操作,結合監控工具(如Prometheus)實時監控集群狀態。
注意:生產環境中需結合業務需求選擇認證方式(如Kerberos/SASL),并定期更新Zookeeper版本以修復安全漏洞。