温馨提示×

Zookeeper在Linux下的安全设置

小樊
44
2026-01-03 04:08:45
栏目: 智能运维

Linux下Zookeeper安全设置清单

一 身份与访问控制

  • 启用基于SASL/Digest的身份认证,在zoo.cfg中配置:
    • 添加:aclProvider=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    • 添加:requireClientAuthSchemes=sasl
    • 重启服务后生效。客户端连接时携带认证信息,例如(Java):zk.addAuthInfo(“digest”, “user1:password”.getBytes())
  • 使用ACL精细化控制znode权限,避免使用world:anyone开放全局访问;示例:
    • 仅管理员完全控制:setAcl /path user1:user1:rwcda
    • 必要时对根节点设置基线ACL,再对业务节点按需收紧。
  • 结合IP白名单与ACL:先用网络层限制来源IP,再用ACL做应用层授权,降低暴露面与误配风险。

二 传输与数据保护

  • 启用SSL/TLS对客户端与服务端、以及集群节点间通信进行加密,防止窃听与篡改;在客户端配置对应信任库与密钥库,服务端开启TLS端口与证书校验。
  • 对敏感业务数据在客户端侧加密后再写入Zookeeper,避免明文落盘与传输链路中泄露(服务器端通常不负责业务数据加密)。

三 网络与系统加固

  • 通过防火墙/安全组仅放通必要端口:客户端端口(默认2181)、集群通信端口2888/3888,仅允许受控网段访问;必要时可更改默认端口降低自动化扫描命中率。
  • 运行最小权限最小容器:以专用系统用户(如zookeeper)运行进程,数据目录与日志目录仅对该用户可读写;在systemd服务中设置User=zookeeperProtectHome=yes等隔离选项。
  • 若启用SELinux,确保其策略允许Zookeeper访问数据/日志目录;测试阶段可临时设为permissive并采集审计日志生成自定义策略模块,再恢复enforcing并加载模块。
  • 保持系统与Zookeeper补丁及时更新,修复已知漏洞;对配置变更进行版本化管理与回滚预案。

四 审计监控与备份恢复

  • 启用并集中访问与操作审计日志,记录认证成功/失败、ACL变更、敏感路径访问等,便于追溯与合规;结合集中日志平台进行告警与可视化。
  • 使用四字命令做健康检查与状态观测:如ruok(存活探测)、stat(运行状态)、envi(环境变量);配合进程监控与端口存活探测形成立体监控。
  • 制定定期备份恢复演练流程(全量快照+增量日志),在变更窗口前强制备份;验证备份可用性与恢复RPO/RTO指标。

五 快速检查清单

检查项 期望状态/做法
认证方式 启用SASL/Digest,客户端连接携带认证信息
ACL策略 禁用world:anyone,按业务最小权限设置
传输加密 启用SSL/TLS(客户端与服务端、集群内部)
网络暴露 仅放通2181/2888/3888,来源IP白名单
系统权限 zookeeper用户运行,目录权限最小化
SELinux 策略允许访问数据/日志目录,或自定义模块
日志与审计 启用访问/操作审计并集中存储与告警
补丁与更新 系统与Zookeeper保持及时更新
备份恢复 定期备份+恢复演练,验证RPO/RTO

0