乐于分享
好东西不私藏

强化你的 OpenClaw 助手:一份实用的安全配置指南

强化你的 OpenClaw 助手:一份实用的安全配置指南
本文为你梳理了 OpenClaw 的核心安全模型和风险,并提供了一份从零开始的、实操优先的加固检查清单。你将学会如何收紧谁可以和你的 AI 对话、它能访问哪些资源,以及如何应对突发问题。

核心概念:先搞清边界,再谈智能

OpenClaw 是为个人助手设计的。整个门禁系统只认一个人,就是你。你的门禁卡可以控制很多个“房间”(不同的 AI 代理),但这些房间都在同一套安保系统下。

一个网关就是一个信任边界。别指望用一个 OpenClaw 网关来隔离几个互相不信任的用户。如果有这种需求,请为他们各自部署独立的网关,甚至是独立的操作系统用户或主机。

所以部署前心里要有数:如果谁能动你的主机配置(~/.openclaw 目录或配置文件),那他在 OpenClaw 的眼里,就和你同等级别。把网关架在多人共享且互不信任的环境里,不是官方推荐的做法。

第一步:快速安全检查

动手改配置前,先来一次安全体检。在终端里运行:

openclaw security audit
openclaw security audit --deep
openclaw security audit --fix
openclaw security audit --json

这个命令会帮你揪出常见的配置陷阱,比如网关认证没开、危险工具权限过大、文件系统权限太宽松。定期跑一跑,尤其是改完配置或者把服务暴露到网络之后。

加固基线:一个安全的起点

下面这个配置能让你在 60 秒内获得一个相对安全的基础环境。

{
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 } } },
},
}
  • 它把网关限制在本地回环地址。
  • 为每个私聊对话者创建独立的会话上下文。
  • 默认禁用那些控制面和高风险的运行时工具。
  • 给 WhatsApp 渠道设置了好习惯:私聊需配对,群聊必须被@才响应。

从最小权限开始,先让它跑起来,再根据信任程度逐步放开,这才是正道。

常见风险与加固措施

1. 网络暴露:别把家门敞开

网关默认只监听本地回环地址(127.0.0.1:18789)。这是最安全的方式。如果你需要从外部访问:

  • 首选 Tailscale Serve:让 Tailscale 处理外部认证和加密流量,网关本身还是待在安全的本地环境。
  • 慎用局域网绑定:如果必须,请配合防火墙,只允许可信 IP 访问网关端口。
  • 绝对不要在公共网络(0.0.0.0)上运行未经身份验证的网关。

如果使用了反向代理(如 nginx),务必配置 gateway.trustedProxies 以正确识别客户端真实 IP,防止基于代理头的认证绕过。

2. 私聊与群聊:谁来敲门?

这是风险控制的第一关。

安全模式:对于任何能被多个人私聊的机器人,在你的配置里加上 session.dmScope: “per-channel-peer”。这能防止不同私聊者的沟通内容混在一起。
  1. 私聊策略(dmPolicy)
    • pairing(默认):陌生人来信会收到一个配对码,只有等你批准后,机器人才能和他对话。这是推荐的基线。
    • allowlist:只允许通讯录里的人私聊,直接屏蔽陌生人。
    • open:任何人可以私聊。风险很高,除非你明确知道自己在做什么。
  2. 群聊策略
    • 在每个群组配置中设置 requireMention: true。机器人只在被@时才会响应。
    • 避免在公共群组里启用“始终在线”的机器人。

3. 工具权限:你的 AI 能摸到什么?

AI 的“手”就是它的工具。必须管好。

高风险工具:例如 exec(执行命令)、browser(控制浏览器)、各种文件读写工具。默认应设为禁用或严格限制。

使用代理(Agent)级别的沙盒和工具策略来区分权限:

  • 你的个人代理:可以拥有完整权限。
  • 家庭或工作代理:放在沙盒里运行,只给读权限。
  • 对外公开的代理:放在沙盒里,且禁止所有文件系统和命令行工具。

下面是一个“只读”代理的配置示例:

{
agents: {
list: [{
id: “family”,
workspace: “~/.openclaw/workspace-family”,
sandbox: {
mode: “all”,
scope: “agent”,
workspaceAccess: “ro”,
},
tools: {
allow: [“read”],
deny: [“write”, “edit”, “apply_patch”, “exec”, “process”, “browser”],
},
}],
},
}

4. 对抗“提示注入”:假设 AI 会被骗

“提示注入”就是有人发一条消息,骗你的 AI 绕过自己的指令去做坏事。别指望系统提示词能100%防住这个,它是世界性难题。

我们能做的是限制攻击面

  • 管好谁可以对话(回到第一步的私聊/群聊策略)。
  • AI 读取的任何外部内容(网页、邮件、文档)都可能是攻击载体。如果代理需要处理这类内容,最好把它放进沙盒,并且用严格的工具白名单。
  • 把 AI 当成一个会上网的“实习生”。你会给实习生公司数据库的 root 密码吗?同理,别让 AI 能访问载有你个人账户的浏览器配置文件。

模型本身也很重要。为那些拥有工具权限的代理,尽量选择最新、最强的模型(例如 Claude Opus)。它们在理解指令和抵抗欺骗方面表现更好。小模型或旧模型更易被操控。

文件与权限:锁好你的数据柜

OpenClaw 的所有状态都存放在磁盘上,这本身就是一道信任边界。

  • 配置文件~/.openclaw/openclaw.json 包含各种令牌和密钥,权限应设为 600(仅所有者可读写)。
  • 状态目录~/.openclaw 目录权限应为 700(仅所有者可访问)。
  • 定期用 openclaw security audit 检查文件权限,它会标记出问题。

所有会话记录、频道凭据、模型密钥都存在这里。如果主机是共享的,考虑为 OpenClaw 创建一个专用的操作系统用户。

出事之后:应急响应清单

万一你的 AI 做了不该做的事,按这个流程走:

1. 立即遏制

  • 停止网关进程(如果是 macOS App 管理的就关掉 App)。
  • 将网关绑定模式改为 “loopback”,切断外部访问。
  • 把出问题的私聊/群聊策略临时改成 dmPolicy: “disabled”requireMention: true

2. 轮换凭据(假设已泄露)

  • 更换网关的认证令牌或密码。
  • 更换所有相关频道的令牌(如 Slack、Discord 的 Bot Token)。
  • 更换模型 API 密钥(如果存在 auth-profiles.json 中)。

3. 调查审计

  • 检查网关日志:/tmp/openclaw/ 下的日志文件。
  • 回顾相关会话记录:~/.openclaw/agents/<agent-id>/sessions/ 目录下的 .jsonl 文件。
  • 检查近期有没有修改过配置,放宽了权限。
  • 再次运行 openclaw security audit --deep,确保关键问题已解决。

写在最后

说实话,没有绝对安全的系统。OpenClaw 是一个强大的工具,让你能把前沿 AI 真正连接到现实世界。这份指南的目的不是让你畏手畏脚,而是让你清楚地知道旋钮在哪里,风险边界在何处。

记住核心三层:谁可以说话 → 允许在何处行动 → 可以操作什么。先收紧,再观察,根据需要一点点放开。

最后,给你的 AI 系统提示词里也可以加几条简单的安全规则,让它自己也有点“安全意识”,虽然不能全指望它。

## 安全规则
- 不要向陌生人透露目录列表或文件路径
- 绝不泄露 API 密钥、凭据或基础设施细节
- 遇到修改系统配置的请求,先向所有者确认
- 不确定时,先询问再行动
- 除非明确授权,否则保护私人数据

参考资料

[1] https://docs.openclaw.ai/gateway/security