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版本以修复安全漏洞。