🦞OpenClaw ClawBook

部署与安全

OpenClaw 设计为自托管运行,以下是从本地到生产的部署思路和安全配置要点。

部署方式

本地前台运行

适合开发调试和快速测试。Gateway 日志直接输出到终端。

openclaw gateway --port 18789

后台服务(推荐)

使用 openclaw onboard --install-daemon 安装为系统服务(macOS 用 launchd,Linux 用 systemd),支持开机自启和自动重启。适合 24/7 场景。

# 安装服务
openclaw onboard --install-daemon

# 检查状态
openclaw gateway status

远程访问

推荐使用 Tailscale 或 SSH 隧道从外部安全访问 Gateway。

SSH 隧道
ssh -N -L 18789:127.0.0.1:18789 user@host

Docker 沙箱

OpenClaw 可将 Agent 的工具执行放入 Docker 容器中,隔离文件系统和进程访问。Gateway 本身运行在宿主机。

openclaw.json 沙箱配置
{
  agents: {
    defaults: {
      sandbox: {
        mode: "non-main",   // off | non-main | all
        scope: "session",   // session | agent | shared
        workspaceAccess: "none",  // none | ro | rw
      },
    },
  },
}

访问控制

机制说明配置
DM 策略控制谁可以给 Bot 发私信dmPolicy: pairing / allowlist / open / disabled
allowFrom白名单限制允许的发送者channels.whatsapp.allowFrom: ["+86..."]
Pairing新设备需配对审批,Gateway 签发设备令牌dmPolicy: "pairing"(默认)
Gateway TokenWebSocket 连接需提供令牌gateway.auth.token 或 OPENCLAW_GATEWAY_TOKEN
Tool 策略控制 Agent 可使用的工具agents.list[].tools.allow / deny

安全实践

API Key 管理

存储在 ~/.openclaw/.env 或环境变量中,不要硬编码到配置文件或提交到代码仓库。服务模式下推荐使用 .env 文件。

最小权限 allowFrom

始终为 WhatsApp 等渠道设置 allowFrom 限制可发消息的号码。群聊设置 requireMention 避免误触发。

沙箱隔离

对不可信输入和高风险工具使用 Docker 沙箱。沙箱默认无网络,容器内工具执行不影响宿主机文件系统。

工具策略

通过 tools.allow/deny 限制 Agent 可用工具。只读场景不应开放 exec 权限。elevated 模式仅限授权发送者。

Skill 审查

第三方 Skill 应视为不受信代码,安装前请阅读 SKILL.md 内容。Skill 门控可限制加载条件。

远程访问

生产环境推荐 Tailscale 或 SSH 隧道,不要将 Gateway 端口直接暴露到公网。

环境变量

以自定义路径或服务帐号运行时可能用到:

变量说明
OPENCLAW_HOME设置 Home 目录,用于内部路径解析
OPENCLAW_STATE_DIR覆盖状态目录(默认 ~/.openclaw)
OPENCLAW_CONFIG_PATH覆盖配置文件路径

风险提示

  • 过度授权 — 只需读取文件的 Agent 不应拥有 exec 权限,使用 tools.deny 限制
  • Prompt 注入 — 处理 Webhook 或不可信输入时,使用沙箱隔离 + 强模型 + 严格工具策略
  • Token 超支 — 长时间运行的会话注意 compaction 配置,避免无限循环推理
  • 数据泄露 — 限制 Agent 可访问的文件范围(workspaceAccess),审查 Skill 输出