CentOS上Zookeeper的安全设置方法
导读:CentOS上Zookeeper安全设置方法 在CentOS系统上部署Zookeeper时,需通过权限管理、认证授权、加密通信、网络隔离及监控审计等多维度措施保障安全。以下是具体操作步骤: 1. 基础环境准备 安装OpenJDK:Zook...
CentOS上Zookeeper安全设置方法
在CentOS系统上部署Zookeeper时,需通过权限管理、认证授权、加密通信、网络隔离及监控审计等多维度措施保障安全。以下是具体操作步骤:
1. 基础环境准备
- 安装OpenJDK:Zookeeper依赖Java环境,推荐安装OpenJDK 8及以上版本:
sudo yum install -y java-11-openjdk-devel - 安装Zookeeper:通过YUM仓库安装Zookeeper及服务管理工具:
sudo yum install -y zookeeper zookeeper-server
2. 配置文件与目录权限管理
- 配置文件权限:确保
zoo.cfg(通常位于/etc/zookeeper/conf/)仅能被Zookeeper用户读写:sudo chown -R zookeeper:zookeeper /etc/zookeeper sudo chmod -R 644 /etc/zookeeper/conf/zoo.cfg - 数据与日志目录权限:Zookeeper的数据目录(默认
/var/lib/zookeeper)和日志目录(默认/var/log/zookeeper)需设置为zookeeper用户专属:sudo chown -R zookeeper:zookeeper /var/lib/zookeeper sudo chown -R zookeeper:zookeeper /var/log/zookeeper sudo chmod -R 750 /var/lib/zookeeper /var/log/zookeeper
3. SELinux策略配置(若启用)
- 临时测试:若SELinux处于
Enforcing模式,可临时设置为Permissive模式验证是否影响Zookeeper运行:sudo setenforce 0 - 永久配置:若测试通过,创建自定义SELinux策略模块并禁用SELinux:
sudo ausearch -c 'zookeeper' --raw | audit2allow -M zookeeper_selinux sudo semodule -i zookeeper_selinux.pp sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config sudo reboot
4. 防火墙端口管控
- 开放Zookeeper默认端口:通过
firewalld开放2181端口(客户端通信)及2888/3888端口(集群间通信):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
5. 认证与授权配置(核心安全措施)
- 启用SASL认证:
- 创建JAAS配置文件(
/etc/zookeeper/conf/zookeeper_jaas.conf),定义用户及密码:Server { org.apache.zookeeper.server.auth.DigestLoginModule required user_super="super_secret" user_admin="admin_secret"; } ; - 修改
zoo.cfg,启用SASL认证并指定JAAS文件路径:authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider jaasLoginPath=/etc/zookeeper/conf/zookeeper_jaas.conf requireClientAuthScheme=sasl - 重启Zookeeper服务使配置生效:
sudo systemctl restart zookeeper
- 创建JAAS配置文件(
- 配置ACL授权:
- 登录Zookeeper CLI,为用户分配节点权限(以
/configs节点为例):# 添加用户(可选,若使用JAAS认证可跳过) adduser super_super # 设置节点ACL(owner为super_super,权限为cdrwa) setAcl /configs digest:super_super:super_secret:cdrwa - 验证授权:使用认证信息连接后,尝试访问节点:
./zkCli.sh -server localhost:2181 -auth digest super_super:super_secret get /configs # 若返回数据则授权生效
- 登录Zookeeper CLI,为用户分配节点权限(以
6. 加密通信配置(SSL/TLS)
- 生成自签名证书:使用OpenSSL生成密钥和证书(有效期10年):
sudo mkdir -p /etc/pki/tls/zookeeper sudo openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/zookeeper.key \ -x509 -days 3650 -out /etc/pki/tls/certs/zookeeper.crt sudo openssl pkcs12 -export -in /etc/pki/tls/certs/zookeeper.crt \ -inkey /etc/pki/tls/private/zookeeper.key -out /etc/pki/tls/zookeeper/zookeeper.p12 -name zookeeper -CAfile /etc/pki/tls/certs/zookeeper.crt -caname root - 配置Zookeeper使用SSL:修改
zoo.cfg,指定证书路径及启用客户端认证:ssl.keystore.location=/etc/pki/tls/zookeeper/zookeeper.p12 ssl.keystore.password=your_keystore_password ssl.truststore.location=/etc/pki/tls/zookeeper/zookeeper.p12 ssl.truststore.password=your_truststore_password ssl.clientAuth=need - 重启服务:
sudo systemctl restart zookeeper
7. 监控与审计
- 开启Zookeeper审计日志:在
zoo.cfg中添加日志配置,记录客户端操作:log4j.logger.org.apache.zookeeper=INFO, audit log4j.appender.audit=org.apache.log4j.RollingFileAppender log4j.appender.audit.File=/var/log/zookeeper/audit.log log4j.appender.audit.MaxFileSize=10MB log4j.appender.audit.MaxBackupIndex=5 log4j.appender.audit.layout=org.apache.log4j.PatternLayout log4j.appender.audit.layout.ConversionPattern=%d{ ISO8601} [%t] %-5p %c %x - %m%n - 使用监控工具:部署Prometheus+Granafa或Zabbix监控Zookeeper的CPU、内存、连接数及请求延迟,及时发现异常。
通过以上步骤,可全面强化CentOS上Zookeeper的安全性,覆盖权限管控、身份认证、数据加密及访问审计等关键环节。需注意,生产环境中应使用强密码、定期更新证书,并限制客户端IP范围以进一步提升安全性。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS上Zookeeper的安全设置方法
本文地址: https://pptw.com/jishu/734835.html
