温馨提示×

zookeeper安全设置ubuntu上如何操作

小樊
44
2025-11-23 03:48:45
栏目: 智能运维

Ubuntu 上 Zookeeper 安全设置实操指南

一 系统与服务最小化安全基线

  • 创建专用系统用户与组,避免使用 root 运行:sudo addgroup --system zookeeper;sudo adduser --system --group --no-create-home --home /var/lib/zookeeper zookeeper。随后将配置、数据与日志目录属主调整为该用户:sudo chown -R zookeeper:zookeeper /etc/zookeeper /var/lib/zookeeper /var/log/zookeeper;权限建议:配置 640、数据 750、日志 750。此举可显著降低被提权与篡改的风险。
  • 仅开放必要端口与来源:Zookeeper 客户端默认端口为 2181,集群内部通信端口为 2888/3888。建议仅在内网或受控网段开放,并限制来源 IP。示例(UFW):sudo ufw allow from 192.168.1.0/24 to any port 2181,2888,3888;sudo ufw enable。若部署在云上,请同步配置安全组白名单。

二 启用认证与访问控制 ACL

  • 启用 SASL/Digest 认证(服务端):在 zoo.cfg 增加认证提供者并开启客户端强制认证,例如:authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider;requireClientAuthScheme=sasl;jaasLoginRenew=3600000。创建 JAAS 配置文件(如 /etc/zookeeper/conf/zookeeper.jaas),示例(Digest):Server { org.apache.zookeeper.server.auth.DigestLoginModule required user_super=“SuperSecret” user_admin=“AdminPass”; }; 并在启动环境中导出 JVM 参数指向该文件(例如在 zkEnv.sh 中设置 SERVER_JVMFLAGS=“-Djava.security.auth.login.config=/etc/zookeeper/conf/zookeeper.jaas”),然后重启服务。
  • 客户端认证与 ACL 设置:zkCli 登录后先添加认证身份:addauth digest super:SuperSecret;随后对关键节点设置 ACL,例如:setAcl /app super:SuperSecret:cdrwa,admin:AdminPass:rwcd。Digest 身份在 ZK 内部以 base64(username:password) 形式标识,请妥善保管口令并定期轮换。
  • 超级管理员能力(可选):如需在紧急维护时绕过 ACL,可在服务端设置系统属性 zookeeper.DigestAuthenticationProvider.superDigest(值为 super 用户的 base64 身份串),但务必严格控制该能力的知悉范围与启用时机,避免长期暴露。

三 加密与网络安全

  • 传输加密:生产环境建议启用 SSL/TLS 对客户端与服务端、以及集群节点间通信进行加密。具体做法为在 server 与 client 端配置相应的 SSL 参数与证书,并启用相应的加密传输选项;同时在防火墙层面仅允许加密端口的通信,减少明文暴露面。
  • 网络分区与监听:如服务器存在多网卡,建议通过 clientPortAddress 绑定到内网地址,避免对公网暴露 2181;集群间通信端口 2888/3888 同样仅限内网可达,并在安全组/防火墙中做来源限制。

四 运行与审计加固

  • 限制单客户端连接数:在 zoo.cfg 设置 maxClientCnxns=60(或更低),缓解针对单 IP 的连接耗尽与滥用风险;默认值为 60,设置为 0 表示不限制,生产不建议。
  • 关键系统属性:启用 forceSync=yes 以确保事务日志落盘(性能与安全权衡);根据业务需要调小 jute.maxBuffer(默认 1MB),防止超大节点导致 OOM 或 DoS;切勿开启 skipACL(跳过 ACL 检查),否则所有权限控制失效。
  • 审计与监控:开启访问日志与审计(业务日志与系统日志分离),对 create/delete/setAcl 等敏感操作建立告警;结合进程、连接数与异常 ACL 变更进行基线监控与巡检,定期更新补丁与密钥/证书。

0