centos zookeeper安全设置有哪些

2025-05-13 11

在 CentOS 上部署 ZooKeeper 时,为确保安全性,可以从以下方面进行配置和优化:


1. 网络隔离与防火墙

  • 限制访问来源
    使用防火墙(如 firewalldiptables)仅允许信任的 IP 访问 ZooKeeper 端口(默认 2181/2888/3888)。

    # firewalld 示例
    firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="2181" protocol="tcp" accept'
    firewall-cmd --reload
    
  • 禁用公网暴露
    zoo.cfg 中绑定内网 IP,而非 0.0.0.0

    clientPortAddress=192.168.1.100
    

2. 认证与授权

  • 启用 SASL 认证
    zoo.cfg 中开启认证:

    authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    requireClientAuthScheme=sasl
    
  • 配置 JAAS 文件
    创建 jaas.conf(路径需与 ZooKeeper 启动脚本中的 JVMFLAGS 一致):

    Server {
      org.apache.zookeeper.server.auth.DigestLoginModule required
      user_admin="adminpassword";
    };
    

    启动时加载 JAAS 配置:

    export JVMFLAGS="-Djava.security.auth.login.config=/path/to/jaas.conf"
    
  • 设置 ACL 权限
    使用命令行工具为节点设置访问控制列表:

    # 示例:对节点 /service 设置 digest 模式 ACL
    setAcl /service auth:admin:cdrwa
    

3. 数据加密(SSL/TLS)

  • 启用客户端加密通信
    生成证书并配置 zoo.cfg

    secureClientPort=2182
    serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory
    ssl.keyStore.location=/path/to/keystore.jks
    ssl.keyStore.password=your_password
    ssl.trustStore.location=/path/to/truststore.jks
    ssl.trustStore.password=your_password
    
  • 内部节点加密(可选)
    若需加密集群内部通信,启用 Quorum TLS(需配置 sslQuorum=true 及相关密钥)。


4. 操作系统与文件安全

  • 专用用户运行
    创建非特权用户(如 zookeeper)并限制权限:

    useradd zookeeper
    chown -R zookeeper:zookeeper /opt/zookeeper/data
    
  • 文件权限控制
    限制配置文件和数据目录的访问:

    chmod 600 /opt/zookeeper/conf/zoo.cfg
    chmod 700 /opt/zookeeper/data
    

5. 日志与审计

  • 日志脱敏
    避免在日志中记录敏感信息,调整 log4j.properties 的日志级别。
  • 审计日志
    启用 AuditLogging(ZooKeeper 3.6+)记录所有操作:

    audit.enable=true
    

6. 其他安全措施

  • 禁用四字命令
    zoo.cfg 中禁用危险命令(如 stat/dump):

    4lw.commands.whitelist=*
    # 或仅允许必要命令
    4lw.commands.whitelist=stat,ruok
    
  • 定期更新与漏洞扫描
    保持 ZooKeeper 版本为稳定版,定期检查 CVE 漏洞。


验证配置

  • 重启 ZooKeeper 后,使用 telnetnc 测试端口是否按预期开放:
    telnet 192.168.1.100 2181
    
  • 通过客户端工具验证 ACL 和 SSL 是否生效:
    zkCli.sh -server 192.168.1.100:2182 -Dzookeeper.client.secure=true
    

通过以上步骤,可显著提升 ZooKeeper 在 CentOS 环境下的安全性。建议结合具体业务场景选择合适配置,并在测试环境验证后再部署到生产环境。

(本文来源:https://www.nzw6.com)

Image

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!cheeksyu@vip.qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励和额外收入!
5.严禁将资源用于任何违法犯罪行为,不得违反国家法律,否则责任自负,一切法律责任与本站无关