温馨提示×

Debian上Zookeeper如何进行安全加固

小樊
42
2025-12-21 04:32:48
栏目: 智能运维

Debian上Zookeeper安全加固清单

一 基础安全基线

  • 系统与软件更新:保持 DebianZookeeper 为最新安全补丁版本,及时修复已知漏洞。
  • 最小权限运行:以专用的 zookeeper 系统用户运行服务,避免使用 root;确认服务单元配置(如 /etc/default/zookeeper 或 systemd 服务文件)中的运行用户为 zookeeper
  • 目录与文件权限:数据目录(如 /var/lib/zookeeper)、日志目录(如 /var/log/zookeeper)与配置文件仅对 zookeeper 用户可读写执行;示例:
    sudo chown -R zookeeper:zookeeper /var/lib/zookeeper /var/log/zookeeper
    sudo chmod -R 750 /var/lib/zookeeper /var/log/zookeeper
  • 网络访问控制:仅在内网或受控网段开放 Zookeeper 端口,使用 ufw 或云安全组限制来源 IP;生产环境不建议对公网开放 2181
  • 服务最小化:仅开启必要端口与接口,禁用未使用的管理接口与调试端口;对外仅暴露客户端端口 2181,集群内部端口 2888/3888 仅在可信网段开放。

二 身份与访问控制

  • 启用 SASL 认证:在 zoo.cfg 中启用 SASL 认证提供者,强制客户端进行身份验证:
    authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    requireClientAuthSchemes=sasl
  • 配置 JAAS:创建 jaas.conf 定义服务端用户与口令(示例):
    Server {
    org.apache.zookeeper.server.auth.DigestLoginModule required
    user_admin=“StrongPass!”;
    user_kafka=“KafkaPass#2025”;
    };
    在启动参数中指定 JAAS 配置(如 -Djava.security.auth.login.config=/etc/zookeeper/jaas.conf),并限制该文件权限为仅 zookeeper 用户可读。
  • 精细化 ACL:为敏感 znode 设置 ACL,遵循最小权限原则;示例(digest 认证):
    addauth digest admin:StrongPass!
    create /app/config “{}”
    setAcl /app/config digest:admin:1LHmdzcxVxYZvefFlGjacOZfF8:cdrwa
    查看与验证:
    getAcl /app/config
  • 超级管理员(谨慎):仅在应急与迁移场景启用超级 Digest,生成方式:
    -Dzookeeper.DigestAuthenticationProvider.superDigest=super:base64encoded(SHA1(password))
    启用后妥善保管凭证并尽快收回。

三 传输与数据保护

  • 启用 TLS/SSL:为客户端与服务端、以及集群节点间通信启用 TLS/SSL,配置 serverCnxnFactory=org.apache.zookeeper.server.NettyServerCnxnFactory 与相应的 SSL 参数(如 keyStore、trustStore、requireClientAuth),并对证书与密钥文件设置 600 权限,仅 zookeeper 用户可读。
  • 数据面加密:对高敏感数据在客户端侧进行加密后再写入,或在存储层启用加密,降低数据泄露风险。
  • 网络隔离:将 Zookeeper 部署在独立的 VPC/安全域,通过 防火墙/安全组 限制来源 IP 与端口访问,避免暴露在不可信网络。

四 运维与监控审计

  • 日志与审计:启用并集中采集 Zookeeper 服务日志与审计日志,记录节点创建、删除、ACL 变更等关键操作;结合 LogwatchFail2ban 进行异常检测与告警。
  • 主机加固:实施 强密码策略(如 libpam-pwquality)、禁用不必要的系统服务、限制 root 登录(如 PermitRootLogin no)、使用 SSH 密钥 登录,降低横向渗透风险。
  • 持续更新与基线核查:定期更新 Zookeeper 及其依赖,复核配置基线(运行用户、目录权限、JAAS/TLS 配置、防火墙规则)与访问白名单。

五 快速核查清单

检查项 期望状态/示例
运行用户 专用用户 zookeeper,非 root
目录权限 /var/lib/zookeeper/var/log/zookeeper 属主 zookeeper:zookeeper,权限 750
监听端口 仅开放 2181(客户端),集群端口 2888/3888 仅内网可达
防火墙 来源 IP 白名单,默认拒绝
SASL zoo.cfg 启用 SASL,JAAS 配置到位且权限 600
ACL 敏感 znode 设置 digest ACL,最小权限
TLS 客户端与服务端启用 TLS/SSL,证书密钥 600
日志与监控 审计关键操作,集中采集与告警配置完成

0