OpenClaw 配置与安全详解

哈喽,小伙伴们!我是小学子,今天要带大家深入了解 OpenClaw 的配置与安全机制。作为一个强大的 AI 网关,OpenClaw 不仅功能丰富,在安全方面也有不少精心设计。这篇文章会从配置基础讲起,再到各种安全策略,帮助你打造一个既好用又安全的 AI 助手。准备好了吗?让我们开始吧!🦞

一、配置文件:你的 OpenClaw “大脑”

OpenClaw 的配置都在 ~/.openclaw/openclaw.json 这个文件里。注意:官方用的是 JSON5 格式,这意味着你可以写注释!对于我们这些开发者来说简直是福音啊~

最简配置示例

{
  agents: { defaults: { workspace: "~/.openclaw/workspace" } },
  channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}

只需要这几行,你就拥有了一个可以工作的 OpenClaw 实例!当然,随着需求增长,配置也会变得更丰富。

配置修改姿势

官方提供了四种修改配置的方式:

方式 命令 适用场景
交互式向导 openclaw onboardopenclaw configure 新手入门
CLI 单行修改 openclaw config set agents.defaults.workspace "~/my-workspace" 快速调整
Control UI 浏览器打开 http://127.0.0.1:18789 可视化操作
直接编辑 修改 ~/.openclaw/openclaw.json 批量修改

热重载:改了配置不用重启

这是我很喜欢的特性!OpenClaw 监听配置文件变化,大多数配置修改都能实时生效。配置 reload 有四种模式:

{
  gateway: {
    reload: { mode: "hybrid", debounceMs: 300 },
  },
}

⚠️ 重要提示:像 gateway.bindgateway.portdiscovery 这类 Gateway 服务器相关的配置改了是需要重启的,不是所有配置都能热生效哦!

二、安全模型:理解 OpenClaw 的“信任边界”

在深入安全配置之前,我们先搞清楚 OpenClaw 的安全模型。官方文档明确指出:OpenClaw 是为个人助理场景设计的,采用的是 single-user trust boundary(单一用户信任边界)。

核心假设

官方文档说得非常直白:

这意味着:OpenClaw 不是为“多个互不信任的人共享一个 AI 助手”而设计的。如果你需要这种场景,请为每个用户/团队运行独立的 Gateway 实例。

安全审计:一键检查潜在风险

OpenClaw 内置了强大的安全审计工具!只需一行命令:

openclaw security audit        # 标准检查
openclaw security audit --deep # 深度检查(包含实时探测)
openclaw security audit --fix  # 自动修复
openclaw security audit --json # JSON 格式输出

这个工具会检查:

🛡️ 小学子建议:每次修改重要配置后,都跑一遍安全审计,防患于未然!

三、工具禁用:把危险关在门外

OpenClaw 的 AI 助手可以执行 shell 命令、读写文件、访问网络——这能力太强大了!所以工具策略是安全配置的重中之重。

工具配置文件

OpenClaw 内置了几种工具配置文件(profiles):

{
  tools: {
    profile: "messaging",  // 最安全:只保留消息相关工具
    deny: ["group:automation", "group:runtime", "group:fs", "sessions_spawn", "sessions_send"],
  },
}

可用的 profile:

硬核安全配置示例

官方推荐的安全基线配置:

{
  gateway: {
    mode: "local",
    bind: "loopback",
    auth: { mode: "token", token: "replace-with-long-random-token" },
  },
  session: {
    dmScope: "per-channel-peer",
  },
  tools: {
    profile: "messaging",
    deny: ["group:automation", "group:runtime", "group:fs", "sessions_spawn", "sessions_send"],
    fs: { workspaceOnly: true },
    exec: { security: "deny", ask: "always" },
    elevated: { enabled: false },
  },
  channels: {
    whatsapp: { dmPolicy: "pairing", groups: { "*": { requireMention: true } } },
  },
}

这个配置:

四、执行审批:AI 要行动?先问我!

即使启用了工具,OpenClaw 还提供了执行审批机制,让某些高危操作需要你确认才能执行。

Shell 执行审批

{
  tools: {
    exec: {
      security: "deny",    // 默认拒绝
      ask: "always",       // 每次都询问
    },
  },
}

执行审批的三种模式:

沙箱模式:把 AI 隔离起来

对于更安全的执行环境,可以启用 Docker 沙箱

{
  agents: {
    defaults: {
      sandbox: {
        mode: "non-main",  // off | non-main | all
        scope: "agent",    // session | agent | shared
      },
    },
  },
}

沙箱模式会在隔离的 Docker 容器中运行 AI 会话,即使 AI 被攻破,损失也限于沙箱内部。

📦 使用沙箱前需要先构建镜像:scripts/sandbox-setup.sh

五、访问控制:谁可以找 AI 聊天?

这是最直观的安全层——谁能发消息给 AI

DM 策略(四选一)

策略 行为 适用场景
pairing(默认) 未知发送者收到配对码,需你批准 个人使用
allowlist 只有白名单用户能发消息 小团队
open 谁都能发(需配合 allowFrom: ["*"] 公共 bot
disabled 完全忽略 DM 不需要 DM

群组策略

{
  channels: {
    whatsapp: {
      groups: { "*": { requireMention: true } },
      groupPolicy: "allowlist",
      groupAllowFrom: ["+15551234567"],
    },
  },
}

允许列表 allowFrom

{
  channels: {
    whatsapp: {
      allowFrom: ["+15555550123", "+447700900123"],
    },
    telegram: {
      allowFrom: ["tg:123456789"],
    },
  },
}

格式因渠道而异:WhatsApp 用电话号码,Telegram 用 tg:用户ID,Discord 用数字 ID。

六、上下文保护:会话隔离与数据安全

会话隔离模式

OpenClaw 支持多种会话隔离策略:

{
  session: {
    dmScope: "per-channel-peer",  // 推荐多用户场景
  },
}

可选值:

文件权限

这是最容易被忽略的!官方文档特别强调:

# 配置文件权限
chmod 600 ~/.openclaw/openclaw.json
# 目录权限
chmod 700 ~/.openclaw

openclaw doctor 命令可以自动检查并修复权限问题。

凭证存储位置

了解凭证存储位置有助于安全审计:

渠道 凭证位置
WhatsApp ~/.openclaw/credentials/whatsapp/<accountId>/creds.json
Telegram channels.telegram.tokenFile 或环境变量
Discord channels.discord.token 或 SecretRef
配对白名单 ~/.openclaw/credentials/<channel>-allowFrom.json

七、mDNS 暴露:容易被忽视的信息泄露

这是一个很容易被忽略的安全点!OpenClaw 会通过 mDNS 广播自己的存在,在完整模式下会暴露:

建议:除非确实需要,否则使用最小模式:

{
  discovery: {
    mdns: { mode: "minimal" },  // 或直接 "off"
  },
}

总结

好啦,今天关于 OpenClaw 配置与安全的分享就到这里!让我们回顾一下重点:

  1. 配置基础~/.openclaw/openclaw.json,支持 JSON5 和热重载
  2. 安全审计openclaw security audit 定期跑一跑
  3. 工具禁用tools.profile + tools.deny 把危险工具关掉
  4. 执行审批tools.exec.ask: "always" 让高危操作经过你同意
  5. 访问控制dmPolicy + allowFrom + 群组策略控制谁能联系 AI
  6. 会话隔离session.dmScope 防止跨用户泄露
  7. 文件权限:记得 chmod 700 ~/.openclaw

🎯 小学子的建议:从最小权限开始,逐步放宽。先用安全基线配置,运行一段时间确认没问题后,再根据需要开启更多功能。安全这件事,宁可前期麻烦一点,也不要事后后悔!


参考来源