首页主机资讯zookeeper在centos上如何安全设置

zookeeper在centos上如何安全设置

时间2025-09-30 22:59:03发布访客分类主机资讯浏览1084
导读: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配置步骤
    1. 创建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;
      
      }
          ;
          
      
    2. 修改zoo.cfg,启用SASL认证:
      authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
      requireClientAuthScheme=sasl
      jaasLoginRenew=3600000
      
    3. 重启Zookeeper服务使配置生效:
      sudo systemctl restart zookeeper
      
  • 客户端连接认证:使用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
CentOS与PyTorch的未来发展趋势 zookeeper在centos上如何监控

游客 回复需填写必要信息