zookeeper在centos上如何安全设置
导读:1. 调整配置文件与目录权限 确保Zookeeper配置文件(如zoo.cfg)及数据、日志目录的权限正确,防止未授权访问。 配置文件权限:将zoo.cfg的所有者设为zookeeper用户,权限设为644(仅所有者可写)。sudo ch...
1. 调整配置文件与目录权限
确保Zookeeper配置文件(如zoo.cfg
)及数据、日志目录的权限正确,防止未授权访问。
- 配置文件权限:将
zoo.cfg
的所有者设为zookeeper
用户,权限设为644
(仅所有者可写)。sudo chown zookeeper:zookeeper /path/to/zoo.cfg sudo chmod 644 /path/to/zoo.cfg
- 数据与日志目录权限:递归修改Zookeeper数据目录(
dataDir
)和日志目录(logDir
)的所有者为zookeeper
,权限设为750
(所有者可读写执行,组用户可读执行,其他用户无权限)。sudo chown -R zookeeper:zookeeper /path/to/dataDir sudo chmod -R 750 /path/to/dataDir sudo chown -R zookeeper:zookeeper /path/to/logDir sudo chmod -R 750 /path/to/logDir
2. 配置SELinux(若开启)
若系统启用SELinux,需调整策略以允许Zookeeper访问所需资源。
- 临时禁用(测试用):
sudo setenforce 0
- 永久禁用:编辑
/etc/selinux/config
文件,将SELINUX=enforcing
改为SELINUX=disabled
,重启系统生效。
3. 启用ACL(访问控制列表)
通过ACL限制节点访问权限,确保只有授权用户可操作特定路径。
- 添加用户认证:使用
zkCli.sh
工具添加用户(如user1
),并设置密码。./zkCli.sh -server localhost:2181 addauth digest user1:password1
- 设置节点ACL:为根节点或其他关键节点设置ACL,例如:
- 根节点允许
user1
读写执行(rwcda
),其他用户只读(r
):setAcl / digest:user1:password1:rwcda world:anyone:r
/configs
节点仅允许admin
用户管理(cdrwa
):setAcl /configs digest:admin:admin_secret:cdrwa
- 根节点允许
4. 配置认证机制(SASL/Kerberos)
使用SASL(推荐)或Kerberos实现客户端身份验证,防止非法连接。
- SASL配置步骤:
- 创建JAAS配置文件(如
/etc/zookeeper/conf/zookeeper_jaas.conf
),定义用户凭证:Server { org.apache.zookeeper.server.auth.DigestLoginModule required user_super="super_secret" user_admin="admin_secret"; } ; Client { org.apache.zookeeper.server.auth.DigestLoginModule required; } ;
- 修改
zoo.cfg
,启用SASL认证:authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider requireClientAuthScheme=sasl jaasLoginRenew=3600000
- 重启Zookeeper服务使配置生效:
sudo systemctl restart zookeeper
- 创建JAAS配置文件(如
- 客户端连接认证:使用
addauth
命令提供认证信息:./zkCli.sh -server localhost:2181 addauth digest super_super:super_secret
5. 启用SSL/TLS加密通信
加密客户端与服务器间的数据传输,防止中间人攻击。
- 生成SSL证书:使用OpenSSL生成自签名证书(生产环境建议使用CA签发证书)。
openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout /etc/pki/tls/private/zookeeper.key -out /etc/pki/tls/certs/zookeeper.crt
- 配置Zookeeper使用SSL:修改
zoo.cfg
,指定证书路径并启用客户端认证:ssl.keystore.location=/etc/pki/tls/certs/zookeeper.jks ssl.keystore.password=zookeeper ssl.truststore.location=/etc/pki/tls/certs/zookeeper.jks ssl.truststore.password=zookeeper ssl.clientAuth=need
6. 配置防火墙规则
限制仅允许可信IP访问Zookeeper端口(默认2181
为客户端端口,2888
/3888
为集群通信端口)。
- 使用firewalld:
sudo firewall-cmd --permanent --zone=public --add-port=2181/tcp 客户端端口 sudo firewall-cmd --permanent --zone=public --add-port=2888/tcp 集群端口 sudo firewall-cmd --permanent --zone=public --add-port=3888/tcp 集群端口 sudo firewall-cmd --reload
- 使用iptables(可选):
sudo iptables -A INPUT -p tcp --dport 2181 -s trusted_ip -j ACCEPT sudo iptables -A INPUT -p tcp --dport 2181 -j DROP
7. 定期升级与监控
- 升级Zookeeper:定期检查Apache Zookeeper官网,升级到最新稳定版本,修复已知漏洞。
- 监控与日志:启用Zookeeper审计日志(通过
log4j.properties
配置),记录节点访问、操作等信息;使用Prometheus+Granafa等工具监控集群状态(如CPU、内存、连接数),及时发现异常。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: zookeeper在centos上如何安全设置
本文地址: https://pptw.com/jishu/714903.html