安全部署

安全

clmbot 的安全模型与信任边界:mTLS、凭证保存、私钥权限、日志脱敏、下载校验、8862 端口防火墙与漏洞报告流程。

最后检查: 2026-08-09语言: 简体中文

本文说明 clmbot 的安全模型、部署时需要关注的风险点,以及漏洞报告流程。

安全模型与信任边界

clmbot 部署在你的服务器上,处于以下信任边界之中:

  • 上游证书服务(CaaS、私有 CLM 或自有服务):持有证书签发能力,clmbot 通过上游定义的认证与其通信;
  • clmbot 进程:以专用系统账号运行,只被授予证书目录读写和精确的服务重载命令(见最小权限);
  • 目标中间件(Nginx/Apache/Tomcat/IIS 等):接收 clmbot 写入的证书,由 after_script 重载。

关键信任假设:

  • 上游被信任签发正确的证书。请只接入你信任并可审计的上游;
  • before_script / after_script 以 clmbot 账号权限执行。脚本内容等同于可执行代码,必须人工审计
  • clmbot 运行账号被攻破时,影响面应被最小权限配置限制在证书目录与已授权命令内。

双向 TLS(mTLS)

远程推送模式下,clmbot 以 Server 模式监听(当前示例为 8862/TCP),与上游之间支持双向 TLS 认证:双方互相校验证书身份,防止未经授权的一方向 clmbot 推送证书或冒充 clmbot 接收证书。

定时拉取模式不监听端口,出站连接使用上游定义的安全认证。

凭证保存

  • AccessKey、AccessSecret 等上游凭证只在初始化时输入,不要写入 shell 脚本、代码仓库、CI 配置或文档截图;
  • config.yaml 及凭证存储文件应仅允许 clmbot 账号和必要管理员读取;
  • 定期轮换凭证;人员变动或疑似泄露时立即在上游吊销并重新签发;
  • 文档与工单中一律使用 <YOUR_ACCESS_KEY> 类占位符。

私钥文件权限

  • 私钥文件(如 .key)建议 0640 或更严格,属主/属组只覆盖必要账号;
  • 证书目录建议 0750,并用 ACL 精确授予 clmbot 读写(完整示例见最小权限);
  • .bak 备份文件同样包含旧私钥,权限要求与正式文件一致,不再需要时及时清理。

配置与日志脱敏

对外提供 config.yamlupdate.log 或终端输出前(例如提交 Issue、寻求支持),必须删除或替换:

  • AccessKey、AccessSecret;
  • 私钥与 PFX 密码;
  • config.yaml 中的敏感字段;
  • 内网 IP、主机名和客户标识;
  • 完整证书内容;
  • 含凭证的命令历史和日志。

下载校验与签名

  • 只从下载页列出的 sslTrus 官方 CDN 获取 clmbot,下载后校验 SHA256(见安装);
  • 校验值不一致的文件不要执行;
  • 当前发布完整性以下载页公布的 SHA256 为准;如后续增加签名或 provenance,会在发布记录中单独说明。

防火墙与 8862/TCP

  • 定时拉取模式不需要任何入站端口,这是它被默认推荐的重要原因;
  • 远程推送模式需要开放入站端口(当前示例为 8862/TCP),应只对上游来源 IP 开放,并将监听地址绑定到必要的网卡(详见远程推送)。

脚本执行风险

before_script / after_script 在证书更新时自动执行:

  • 任何能修改这两个脚本的人都可以借 clmbot 的权限执行代码。脚本文件本身的写权限必须严格限制;
  • 启用前人工逐行审计,变更后重新审计;
  • 不在脚本中嵌入凭证、不调用不受限的解释器(见最小权限的禁止做法)。

漏洞报告流程

请勿在公开 Issue、Discussions 或社交媒体披露未修复的安全漏洞。

报告渠道:

  • 安全邮箱:security@clmbot.org
  • 如果 GitHub 仓库的 Security 页面显示 Report a vulnerability,也可以从该入口发起私密报告。

报告时请包含受影响版本、脱敏后的复现步骤和影响评估。维护者会先确认信息并协调修复;在用户能够采取行动时,安全公告会说明受影响版本和升级建议。安全问题不承诺固定处理时限。

提交公开 Issue 前的脱敏清单

在任何公开渠道(Issue、Discussions、论坛)贴出配置、日志或命令输出前,逐项确认已删除:

  • AccessKey、AccessSecret;
  • 私钥与 PFX 密码;
  • config.yaml 中的敏感字段;
  • 内网 IP、主机名和客户标识;
  • 完整证书内容;
  • 含凭证的命令历史和日志。

相关页面