你装好了OpenClaw,它能帮你写代码、处理文件、执行命令,非常好用。但你有没有想过:它安全吗?我该怎么检查?又该怎么防护?
OpenClaw给了AI直接访问你电脑的能力——能执行shell命令,能读写文件。这种能力很强大,但也带来了安全风险。今天我们就来一步步说清楚,怎么给你的OpenClaw做安全检查,又该做哪些防护措施。
一步到位:先用内置命令做审计
OpenClaw自带了安全审计工具,别着急手动改配置,先跑一遍它:
# 基础审计(推荐先用这个)openclaw security audit# 深度审计(探测当前Gateway状态,更全面)openclaw security audit --deep# 自动修复发现的问题(权限收紧等)openclaw security audit --fix这一步一定要做。它会自动帮你检查:
--fix参数会自动帮你修复这些常见问题:
• 把放开的群组策略从 open收紧成allowlist• 恢复敏感日志脱敏开启 • 收紧 ~/.openclaw目录权限到700• 把配置文件、凭证文件权限改成 600
跑完这一遍,你就已经解决了80%的常见问题。
安全检查清单:逐项核对
我整理了一份可操作的检查清单,你可以对着一项一项过:
✅ 1. 访问控制:谁能找你的AI说话?
这是第一道防线,也是最重要的一道。绝大多数安全问题都出在这里。
检查要点:
// 你的配置应该大概长这样{ "channels": { "whatsapp": { "dmPolicy": "pairing", // 陌生人需要配对批准 "groups": { "*": { "requireMention":true } // 群聊必须@才响应 } } }}核对清单:
• [ ] 私信策略是不是 pairing(默认)?不要用open除非你真的知道在做什么• [ ] 群聊是不是开了 requireMention?不@不响应,防止陌生人误触发• [ ] 白名单是不是只有你信任的人?不要写 "*"放开所有人
危险❌:
"dmPolicy": "open" // 任何人都能发私信给AI"groupPolicy": "open" // 任何群里任何人都能触发AI"groupAllowFrom": ["*"] // 所有群组都允许正确✅:
"dmPolicy": "pairing" // 陌生人要配对批准"groupPolicy": "allowlist" // 只允许白名单群组"dm.allowFrom": ["你的ID"] // 只允许你自己✅ 2. 网络暴露:Gateway绑定对了吗?
OpenClaw Gateway默认绑定在loopback(127.0.0.1),只有本机能访问。这是最安全的。
检查配置:
{ "gateway": { "bind": "loopback", // ✅ 默认就是这个,最安全 "auth": { "mode": "token", "token": "你的长随机令牌" // ✅ 一定要设置令牌 } }}核对清单:
• [ ] 默认就是 loopback,不要乱改• [ ] 如果用Tailscale Serve,Gateway仍然保持 loopback绑定,Tailscale处理访问控制• [ ] Gateway一定要设置认证令牌,不要开无认证访问 • [ ] 绝对不要绑定到 0.0.0.0暴露在公网上
mDNS发现设置:
{ "discovery": { "mdns": { "mode": "minimal" } // ✅ 默认,不泄露敏感信息 // "mdns": { "mode": "off" } // ✅ 完全禁用更安全 }}不要用
full模式,它会把你的完整文件路径、SSH端口都广播出去,局域网里任何人都能看到。
✅ 3. 文件权限:配置和凭证锁好了吗?
OpenClaw把你的API密钥、渠道凭证都存在~/.openclaw下面,一定要确保只有你能读。
检查命令(macOS/Linux):
# 检查目录权限ls -ld ~/.openclaw# 应该显示:drwx------ 也就是700权限# 检查配置文件权限ls -l ~/.openclaw/openclaw.json# 应该显示:-rw------- 也就是600权限如果不对,手动修复:
chmod 700 ~/.openclawchmod 600 ~/.openclaw/openclaw.jsonchmod 600 ~/.openclaw/credentials/*/*.json 2>/dev/null || trueopenclaw security audit --fix会自动帮你做好这一步。
✅ 4. 模型选择:小模型开工具要小心
不是所有模型对提示词注入的抵抗力都一样。
建议:
记住: 如果你要用小模型+工具,必须:
• 开启沙箱隔离 • 严格工具白名单,只允许必要的工具 • 禁用 exec、write、browser这些高危工具• 不要让小模型访问不受信任的内容(网页搜索、浏览器)
✅ 5. 插件安全:只装你信任的来源
插件和Gateway同进程运行,插件代码有漏洞,直接影响你的整个OpenClaw。
检查清单:
• [ ] 只从ClawdHub或官方GitHub安装插件 • [ ] 启用插件前用 skill-vetter做安全检查• [ ] 尽量用显式 plugins.allow白名单,不要全放开• [ ] 装完插件后可以简单看一眼代码,有没有可疑行为
从npm安装插件要注意:
• npm安装过程会运行生命周期脚本,理论上可以执行任意代码 • 优先用固定版本 openclaw plugins install pkg@1.2.3• 安装后 cd ~/.openclaw/extensions/插件ID,快速review一下代码
✅ 6. 沙箱隔离:高危操作放在沙箱里跑
OpenClaw支持工具级沙箱隔离,用Docker把危险工具限制在容器里。
推荐配置(在agents.defaults里加):
{ "sandbox": { "mode": "all", // 所有工具都跑在沙箱里 "scope": "agent", // 每个智能体一个沙箱,隔离性好 "workspaceAccess": "ro" // 工作区只读,防止改坏东西 }}如果你是个人使用,只有你自己能用AI,可以不开沙箱方便使用。但如果有其他人能触发你的AI,一定要开沙箱。
不同场景建议:
✅ 7. 浏览器控制:不要暴露给公网
浏览器控制让AI能真的上网点开网页,能力很强,但风险也不小——AI能访问你浏览器里已经登录的所有网站。
安全建议:
• [ ] 用专用的Chrome配置文件给AI用,不要用你日常登录的那个 • [ ] 专用配置文件不要存密码,不要同步你的账号 • [ ] Gateway和节点主机都放在Tailscale内网里,不要暴露给公网 • [ ] 不用的时候关掉 gateway.nodes.browser.mode• [ ] 不要用Tailscale Funnel暴露浏览器控制端口
✅ 8. 日志脱敏:别把敏感信息记在日志里
OpenClaw默认开启了工具摘要脱敏,千万别关。
检查配置:
{ "logging": { "redactSensitive": "tools" // ✅ 默认就是这个,保持开着 }}如果你有自定义的敏感模式(比如内部域名、特定令牌格式),可以加上:
{ "logging": { "redactSensitive": "tools", "redactPatterns": [ "internal\\.example\\.com", "my-org-\\w+-token" ] }}不同场景的安全配置模板
我整理了几个常见场景,你可以直接复制改一改用:
📌 场景一:个人单机使用(最常见)
只有你自己能用,追求方便,适度安全。
{ "gateway": { "bind": "loopback", "auth": { "mode": "token", "token": "生成的长令牌" }, "discovery": { "mdns": { "mode": "minimal" } } }, "channels": { "whatsapp": { "dmPolicy": "pairing", "groups": { "*": { "requireMention": true } } } }, "agents": { "defaults": { "sandbox": { "mode": "off" } // 个人用方便起见关掉 } }}📌 场景二:VPS公网部署(需要严格防护)
在VPS上跑OpenClaw,能从外网访问,必须从严防护。
{ "gateway": { "bind": "loopback", "port": 18789, "auth": { "mode": "token", "token": "你的长随机令牌" }, "discovery": { "mdns": { "mode": "off" } } }, "channels": { "whatsapp": { "dmPolicy": "allowlist", "dm": { "allowFrom": ["你的ID"] }, "groups": { "*": { "requireMention": true } }, "groupPolicy": "allowlist" } }, "agents": { "defaults": { "sandbox": { "mode": "all", "scope": "agent", "workspaceAccess": "ro" } } }}另外,VPS上还要做好:
• 系统防火墙只开放必要端口 • SSH禁用密码登录,只用密钥 • 开启自动安全更新 • 使用Tailscale访问,不要直接暴露端口公网
📌 场景三:公共机器人(多人可用)
任何人都能来和机器人说话,必须做到最小权限。
{ "gateway": { "bind": "loopback", "auth": { "mode": "token", "token": "..." } }, "agents": { "list": [ { "id": "public", "sandbox": { "mode": "all", "scope": "session", // 每个会话一个沙箱,彻底隔离 "workspaceAccess": "none" // 不能访问主机工作区 }, "tools": { // 只允许真正需要的工具 "allow": ["read", "web_fetch", "web_search", "summary"], // 高危工具全部禁用 "deny": ["write", "edit", "exec", "process", "browser"] } } ] }}如果怀疑出问题了:事件响应步骤
万一你觉得可能被入侵了,按这个顺序来:
1️⃣ 先遏制,缩小影响范围
# 先停掉Gatewayopenclaw gateway stop# 或者如果是手动运行,直接Ctrl+C杀掉进程• 如果有公网暴露,先关掉Tailscale Funnel或者防火墙规则 • 把开放的私信/群组策略切回 pairing/allowlist
2️⃣ 轮换所有密钥
• 轮换 gateway.auth.token(Gateway认证令牌)• 轮换各个渠道的API令牌/凭证(WhatsApp、Telegram、Discord等) • 轮换各个模型提供商的API密钥 • 撤销所有可疑的节点配对
3️⃣ 审计日志
• 查看Gateway日志: /tmp/openclaw/openclaw-YYYY-MM-DD.log• 查看最近的会话记录: ~/.openclaw/agents/<agentId>/sessions/• 检查最近有没有可疑的工具调用
4️⃣ 重新跑安全审计
openclaw security audit --deep确认没有问题了再启动Gateway。
养成好习惯:定期做安全检查
安全是一个过程,不是一劳永逸的事情。我建议:
1. 每次更新完OpenClaw:跑一遍 openclaw security audit2. 每次改完配置:特别是网络、访问控制那块,记得跑审计 3. 定期(比如每月):完整跑一遍 openclaw security audit --deep4. 可以开定时审计:用OpenClaw内置的cron做定期检查
设置定时审计的示例:
# 每周日凌晨跑一次安全审计openclaw cron add --name "healthcheck:security-audit" --schedule "0 0 * * 0" "openclaw security audit --deep"总结:核心安全原则
OpenClaw的安全设计遵循一个核心思路:
身份优先,范围其次,模型最后
1. 先决定谁能来找AI说话——配对+白名单锁住入口 2. 再决定AI能做什么——工具白名单+沙箱缩小影响范围 3. 最后才是模型选择——就算模型被操纵,影响也有限
记住这几句话,你的OpenClaw就安全了一大半:
✅ 先跑审计:装完第一件事openclaw security audit --fix✅ 默认拒绝:不是明确信任的,都不让进✅ 最小权限:只给AI刚好够用的权限✅ 定期检查:每月跑一遍审计,出问题早发现✅ 沙箱隔离:多人共享一定要开沙箱
安全这东西,就是把该做的功课做在前面。你今天花10分钟过一遍这个清单,未来少很多麻烦。
你平时怎么用OpenClaw?是个人单机还是公网部署?交流一下你的安全经验,做好这些能抗得住吗?
夜雨聆风