温馨提示×

Debian Zookeeper安全设置怎么做

小樊
47
2025-11-15 14:34:40
栏目: 智能运维

Debian 上 Zookeeper 安全设置清单

一 基础加固

  • 更新系统与软件包:执行 sudo apt update && sudo apt full-upgrade -y,并启用 unattended-upgrades 自动安全更新,及时修补漏洞。
  • 最小权限运行:确认服务以 zookeeper 系统用户运行,避免使用 root;检查与修正相关配置与目录属主。
  • 目录与文件权限:数据目录 /var/lib/zookeeper、日志目录 /var/log/zookeeper 及配置目录 /etc/zookeeper/conf 仅对 zookeeper 可读写,建议权限 750,属主属组 zookeeper:zookeeper
  • 网络访问控制:仅在内网开放必要端口,默认客户端端口 2181,集群通信端口 2888/3888;使用 ufw 或云安全组限制来源 IP。
  • 服务与端口基线:确保仅 Zookeeper 占用相关端口,禁用不必要的端口与服务,减少攻击面。

二 身份与访问控制

  • 启用 SASL 认证:在 /etc/zookeeper/conf/zoo.cfg 增加认证提供者并开启客户端 SASL 要求:
    authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
    requireClientAuthSchemes=sasl
  • 配置 JAAS:创建 /etc/zookeeper/conf/jaas.conf,为服务器定义用户与口令(示例):
    Server {
    org.apache.zookeeper.server.auth.DigestLoginModule required
    user_admin=“StrongPass!23”;
    user_kafka=“KafkaPass#45”;
    };
    在启动环境中指定 JAAS(例如在 systemd 服务或环境变量中设置 -Djava.security.auth.login.config=/etc/zookeeper/conf/jaas.conf),并将 jaas.conf 权限设为 600,属主 zookeeper:zookeeper
  • 配置 Zookeeper ACL:在 zkCli.sh 中对关键 znode 设置 ACL,遵循最小权限原则(示例):
    addauth digest admin:StrongPass!23
    setAcl /app world:anyone:r
    setAcl /app user_kafka:user_kafka:rw
    对存量节点执行递归 ACL 刷新,确保新建与历史节点均受控。

三 加密与网络安全

  • 传输加密:为客户端与服务端、以及集群节点间启用 SSL/TLS,在 zoo.cfg 中配置相关 SSL 参数(如 serverCnxnFactory、ssl.keyStore/ssl.trustStore 等),并使用有效证书;完成后重启服务并验证握手与证书链。
  • 边界防护:通过 ufw 仅允许受管网段访问 2181/2888/3888,示例:
    sudo ufw allow from 192.168.1.0/24 to any port 2181,2888,3888 proto tcp
    sudo ufw deny 2181/tcp
    如需精细化控制,可基于 IP 或网段实施白名单策略。
  • 主机加固:禁用不必要的网络服务与端口转发,减少暴露面;对管理口与业务口进行网络分区与访问控制。

四 审计监控与维护

  • 日志与审计:启用并集中采集 Zookeeper 服务日志审计日志,记录节点创建、删除、ACL 变更与认证失败等事件;对接 Logwatch/Fail2ban 或集中式 SIEM 进行告警。
  • 运行监控:监控 zkServer.sh status、进程存活、端口连通性、请求延迟与连接数,设置阈值告警,及时处置异常。
  • 变更与备份:变更前备份 zoo.cfg、jaas.confmyid,变更后在测试环境验证 ACL 与 SASL 生效;定期验证备份与恢复流程可用性。

五 快速核查清单

检查项 期望结果
系统与安全更新 已启用自动安全更新,近期无关键 CVE 未修补
运行用户 zookeeper 非 root 用户运行
目录权限 /var/lib/zookeeper /var/log/zookeeper /etc/zookeeper/conf 权限 750,属主 zookeeper:zookeeper
端口与防火墙 2181/2888/3888 对受信网段开放
SASL 与 JAAS zoo.cfg 启用 SASL,JAAS 配置正确且权限 600
ACL 覆盖 关键 znode 均设置最小权限 ACL,含认证主体
加密通信 客户端与服务端、节点间启用 SSL/TLS 且证书有效
日志与监控 审计与访问日志采集正常,存在阈值告警与巡检报表

0