哈喽,小伙伴们!我是小学子,今天要带大家深入了解 OpenClaw 的配置与安全机制。作为一个强大的 AI 网关,OpenClaw 不仅功能丰富,在安全方面也有不少精心设计。这篇文章会从配置基础讲起,再到各种安全策略,帮助你打造一个既好用又安全的 AI 助手。准备好了吗?让我们开始吧!🦞
OpenClaw 的配置都在 ~/.openclaw/openclaw.json 这个文件里。注意:官方用的是 JSON5 格式,这意味着你可以写注释!对于我们这些开发者来说简直是福音啊~
{
agents: { defaults: { workspace: "~/.openclaw/workspace" } },
channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}
只需要这几行,你就拥有了一个可以工作的 OpenClaw 实例!当然,随着需求增长,配置也会变得更丰富。
官方提供了四种修改配置的方式:
| 方式 | 命令 | 适用场景 |
|---|---|---|
| 交互式向导 | openclaw onboard 或 openclaw 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.bind、gateway.port、discovery这类 Gateway 服务器相关的配置改了是需要重启的,不是所有配置都能热生效哦!
在深入安全配置之前,我们先搞清楚 OpenClaw 的安全模型。官方文档明确指出:OpenClaw 是为个人助理场景设计的,采用的是 single-user trust boundary(单一用户信任边界)。
官方文档说得非常直白:
- 如果有人能修改 Gateway 主机的状态/配置(
~/.openclaw),就把他们当作可信操作员- 运行一个 Gateway 给多个互相不信任的用户使用不是推荐方案
- 对于混合信任团队,需要分离信任边界(使用独立网关)
这意味着: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 } } },
},
}
这个配置:
即使启用了工具,OpenClaw 还提供了执行审批机制,让某些高危操作需要你确认才能执行。
{
tools: {
exec: {
security: "deny", // 默认拒绝
ask: "always", // 每次都询问
},
},
}
执行审批的三种模式:
对于更安全的执行环境,可以启用 Docker 沙箱:
{
agents: {
defaults: {
sandbox: {
mode: "non-main", // off | non-main | all
scope: "agent", // session | agent | shared
},
},
},
}
沙箱模式会在隔离的 Docker 容器中运行 AI 会话,即使 AI 被攻破,损失也限于沙箱内部。
📦 使用沙箱前需要先构建镜像:
scripts/sandbox-setup.sh
这是最直观的安全层——谁能发消息给 AI?
| 策略 | 行为 | 适用场景 |
|---|---|---|
| pairing(默认) | 未知发送者收到配对码,需你批准 | 个人使用 |
| allowlist | 只有白名单用户能发消息 | 小团队 |
| open | 谁都能发(需配合 allowFrom: ["*"]) |
公共 bot |
| disabled | 完全忽略 DM | 不需要 DM |
{
channels: {
whatsapp: {
groups: { "*": { requireMention: true } },
groupPolicy: "allowlist",
groupAllowFrom: ["+15551234567"],
},
},
}
allowlist | open | disabled{
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 命令可以自动检查并修复权限问题。
了解凭证存储位置有助于安全审计:
| 渠道 | 凭证位置 |
|---|---|
~/.openclaw/credentials/whatsapp/<accountId>/creds.json |
|
| Telegram | channels.telegram.tokenFile 或环境变量 |
| Discord | channels.discord.token 或 SecretRef |
| 配对白名单 | ~/.openclaw/credentials/<channel>-allowFrom.json |
这是一个很容易被忽略的安全点!OpenClaw 会通过 mDNS 广播自己的存在,在完整模式下会暴露:
cliPath:CLI 二进制文件的完整路径(泄露用户名!)sshPort:SSH 端口displayName、lanHost:主机名信息建议:除非确实需要,否则使用最小模式:
{
discovery: {
mdns: { mode: "minimal" }, // 或直接 "off"
},
}
好啦,今天关于 OpenClaw 配置与安全的分享就到这里!让我们回顾一下重点:
~/.openclaw/openclaw.json,支持 JSON5 和热重载openclaw security audit 定期跑一跑tools.profile + tools.deny 把危险工具关掉tools.exec.ask: "always" 让高危操作经过你同意dmPolicy + allowFrom + 群组策略控制谁能联系 AIsession.dmScope 防止跨用户泄露chmod 700 ~/.openclaw🎯 小学子的建议:从最小权限开始,逐步放宽。先用安全基线配置,运行一段时间确认没问题后,再根据需要开启更多功能。安全这件事,宁可前期麻烦一点,也不要事后后悔!
参考来源: