不交出敏感权限也能跑:我是如何安全配置 OpenClaw (Clawdbot) 的
内容提要(TL;DR): 使用专用机器、Tailscale 网络(无公网端口)、命令白名单、只读 Token 以及单向数据流。完整命令集请见配套 :Gist[1]
适用人群
本指南适用于那些希望安全地实验 OpenClaw,而不是"蒙头狂奔,撞得头破血流"的人。 如果你打算在第一个月就给你的 AI 代理银行访问权限,那这篇文章不适合你。你不是"早期采用者",你只是在为未来的"反面典型案例"提供素材。 如果你想循序渐进地构建、在扩展功能前先验证稳定性,并希望在睡觉时不必担心一个"提示词注入攻击"就会掏空你的钱包——请继续读下去。
狂热 vs. 现实
所有人都在为 OpenClaw 疯狂。代理一夜之间赚了大钱、机器人给你打电话、人们给 AI 银行权限并"移除所有防护栏"。 我也想参与其中,但我不想在醒来时发现钱包空空或服务器被黑。事实是: 我在加密货币行业工作多年。这意味着我已经是黑客的目标——钓鱼、SIM 卡劫持、社会工程学,不一而足。 我最不需要的就是一个 24 小时在线、且对任何敏感数据拥有写入权限的 AI 代理。一次提示词注入攻击,我就彻底玩完了。 所以我花了一周时间阅读了所有能找到的指南和教训。大部分是炒作,有些很有用,还有一些简直是伪装成"灵感"的鲁莽建议。 这就是我开始时最希望拥有的一份安全第一配置指南。
多数指南的问题
OpenClaw 社区发展迅速,令人兴奋。但大多数指南都有同一个问题:安全要么是事后补救,要么被完全忽略。
- 一篇文章展示了 20 种"游击营销策略",本质上就是自动化垃圾邮件。
- 另一个人公开宣布他给了代理银行权限并移除了所有限制。
- 有人记录了他们的代理因为收到一封带有"提示词注入"指令的邮件,而删光了整个收件箱。一个拥有邮件访问权限的 AI 收到恶意信息后执行了隐藏指令,一切都化为乌有。
这绝非假设,而是真实发生过的事情。 如果你从事加密、金融科技或任何易受攻击的行业,这应该令你感到恐惧。攻击者已经在使用 AI 制作更具迷惑性的钓鱼信息,现在想象一下,他们可以直接向你 AI 代理的上下文中注入指令。
我的配置目标
我想实验 OpenClaw,但必须有明确的界限:
- 初始阶段仅限只读监控。 不发帖、不主动向外接触、不操作外部服务。
- Telegram 为唯一接口。 单一频道,仅限所有者(我)访问。
- 最小化攻击面。 如果出事,限制受损范围(爆炸半径)。
- 单向系统集成。 OpenClaw 可以向一个收件箱文件夹写入数据,由我的其他工具进行后续处理,不允许可能导致系统损坏的双向同步。
第一阶段的目标: 在扩展功能前,证明系统可以安全运行。
认识 TARS
我把我的代理命名为 TARS(致敬《星际穿越》里的机器人),希望它的"诚实度"设置得更高一些。 TARS 运行在一台闲置的 Mac Mini 上。专用硬件意味着代理无法访问我主机的文件、凭据或浏览器会话。 任何 Mac Mini、Linux 服务器或树莓派都可以。有人使用云端 VPS,关键在于隔离。
第一阶段:加固机器
在安装任何软件之前,我先锁定了 Mac Mini。
- 专用用户账户: 我创建了一个名为
openclaw的非管理员用户。这隔离了代理对文件的访问。它读不到我的主目录,也碰不到其空间之外的任何东西。 - 防火墙: 开启 macOS 内置防火墙,开启隐身模式(不响应 ping),并默认阻止所有传入连接。
- SSH 加固: 配置 SSH 禁用密码登录(仅限密钥)、禁用 root 登录、限制登录尝试,并仅允许
openclaw用户登录。即使有人找到这台机器,也无法暴力破解登录。 - Tailscale 网络访问(重头戏): Tailscale 在设备间创建私有 VPN。配置后,Mac Mini 只能通过我的 MacBook 和 iPhone 访问。没有公网端口,不暴露在互联网上。 我可以从任何地方通过 Tailscale IP 登录,但其他人连门都找不到。
- 禁用所有其他服务: 关闭远程管理、屏幕共享、文件共享和 AirDrop。每一个开启的服务都是一个潜在的攻击点。从"全部关闭"开始。
第二阶段:安装 OpenClaw
在机器加固完成后,我安装了 OpenClaw。
- API 密钥安全: Claude API 密钥是最敏感的。锁定文件权限,使只有所有者能读取配置文件。并设置日历提醒,每月更换密钥。
- 仅限所有者访问: 在配置中将机器人限制为仅允许我的 Telegram 用户 ID。千万不要把机器人拉进群聊。 群里的每个人都能通过机器人向你的服务器下达指令。
- 沙盒模式(Sandbox Mode): 开启 OpenClaw 的沙盒模式,在容器中运行风险操作。如果出问题,爆炸半径是可控的。
- 命令白名单(至关重要): 默认情况下,代理可以运行任意 Shell 命令。这很强大但也极其危险。我配置了一个白名单,仅允许:
curl,cat,ls,echo,node,npx。严禁rm,sudo,ssh。 即便代理被劫持,它也只能执行这些有限的操作。
第三阶段:配置代理
SOUL 文件
OpenClaw 使用 SOUL.md 文件定义代理的身份和约束。我将其范围缩小:
- TARS 负责: 监控 Twitter/X 关键词、追踪行业新闻、发现机会、发送每日总结和实时告警。
- TARS 不做: 在任何平台发帖、给除我之外的人发信息、进行采购或财务交易、修改工作区外的文件、未经批准安装新技能。
"不做清单"与"功能清单"同样重要。
其他设置
- 心跳频率: 多数指南建议 15 分钟。我从 30 分钟开始,更保守意味着更低的 API 成本和更少的出错机会。
- API 权限限制(Scoping): 每一个外部集成都赋予最小权限。Twitter API:仅限只读。Google 日历:仅限只读。邮件:第一阶段禁止发送。记录每个 Token、其权限范围以及过期时间。
第四阶段:现有系统集成
我已经有一套个人知识管理系统。我不想让 OpenClaw 取代它或与之竞争。
解决方案:单向数据流。
TARS 将监控总结写入一个收件箱文件夹,我现有的系统会像处理其他文件一样处理它。没有双向同步,就没有系统漂移或损坏的风险。
如果 TARS 失控,最坏的情况也只是收件箱里多了一些文件。我的核心系统保持完好。
第五阶段:安全校验
在上线前,运行安全审计命令。如果审计失败,不要继续。修复所有标记的问题。
然后测试:
- 关闭手机 Tailscale,尝试连接机器(应失败)。
- 尝试从 Tailnet 外部 SSH 登录(应失败)。
- 用另一个 Telegram 账号给机器人发信息(应被忽略)。
经验教训:出了什么问题?
坦白说:我犯了一些错误。以下是我学到的教训。
旅行中失联
TARS 遇到了频率限制(rate limits)和上下文溢出而停止响应。因为我没开启 Tailscale SSH,我在外地无法远程修复,盯了 3 天死寂的 Telegram,明知道 TARS 可能只是在那里等我修一个 30 秒就能搞定的配置。
修复: 出发前务必开启 Tailscale SSH。不要像我一样吃了亏才学乖。
上下文溢出
几天对话后,TARS 报错"context overflow: prompt too large for the model"。会话历史变得太长了。
修复: 定期重置会话,配置内存修剪或最大上下文限制以应对长期运行。
频率限制
30 分钟心跳加上活跃对话,我比预期更快地耗尽了 API 频率限制。
修复: 使用更便宜的模型进行心跳检查。把昂贵的模型留给真正的工作。
成本估算
- Claude API(30 分钟心跳):约 $30-100/月
- Tailscale(免费层):$0
- Twitter/X API(基础读取):$100/月
- 第一阶段总计:约 $130-200/月
应急程序
紧急停止开关
立即停止网关。或者通过 Tailscale SSH 从你的笔记本电脑执行停止命令。
如果怀疑被入侵
- 立即停止网关
- 撤销所有 API Token(Claude、Twitter,全部)
- 审查日志中的未授权操作
- 更换 Telegram 机器人 Token
- 审计哪些文件被修改过
- 在你搞清楚发生了什么之前,不要重启
给今天刚开始的人的建议
- 从只读开始。 不发帖、不主动联系、不访问财务。先证明它能安全运行。
- 一个代理,一个频道。 不要一夜之间从零跳到十个代理。
- Tailscale 是底线。 绝不开放公网端口。
- 使用命令白名单,而非开放 Shell。 如果你给 AI 不受限的 Shell 访问权限,你就是在指望提示词注入防御是完美的。它不是。
- 限制每个 Token 的权限范围。 能用只读就不用读写。记录每个 Token 能做什么。
- 在需要之前就开启远程访问。 Tailscale SSH 救了我的命。
- 设定扩展的门槛。 我在没有安全问题的情况下稳定运行 2 周之前,不会添加新功能。
目标不是为了偏执,而是为了有条理。OpenClaw 很强大,这种力量值得尊重。
如果你在加密货币或任何高知名度领域工作,你已经是攻击目标。不要通过运行一个不安全的、能访问你系统的 AI 代理,给攻击者一个新的攻击向量。
想跟着一起做?
专业提示: 把这份指南复制到你的 Claude Code 上下文中。它可以引导你完成每一步,发现错误,并根据你的具体设置调整命令。这就是我构建这套系统的方式——用 AI 辅助配置 AI 代理。
配套 Gist(包含所有命令):https://gist.github.com/jordanlyall/8b9e566c1ee0b74db05e43f119ef4df4[1]
致谢
感谢以下这些人,他们的指南和经验教训塑造了我的思路:
- @shelpid 的安全加固清单成为了我的基础
- @ClaireSuworkin 解释了心跳架构
- @NatEliason 的内存系统概念
- @PixelArtArtist 展示了健康监控的可能性
下一步计划
一旦第一阶段稳定,我计划探索:
- 餐厅预订检查
- 机票和商品价格监控
- 市场监控(地板价、重要交易)
- 用于不同领域的第二个代理
但现在还不是时候。首先,证明基础是稳固的。
总结
最后,高可用架构编辑提供了本文的一个 checklist ,供大家搭建安全 OpenClaw 参考。
🛠️ 安全配置自查清单 (Checklist)
- ☐ 计算环境: 是否已隔离(专用机器/虚拟机/容器)?
- ☐ 身份限制: 是否使用了非 Admin 用户运行进程?
- ☐ 网络层: 是否关闭了所有公网端口并使用 Tailscale?
- ☐ 权限层: API Token 是否为只读?是否存在命令白名单?
- ☐ 交互层: Telegram Bot 是否绑定了唯一的 Owner ID?
你的 OpenClaw 代理安全配置是什么样的?我遗漏了什么?欢迎私信或回复——我真的很好奇其他人是怎么做的。
参考阅读
编程范式的更迭:Andrej Karpathy 对 “Vibe coding” 一周年回顾 OpenClaw 架构设计:SOUL、USER、MEMORY 与主动机制 从代码助手到AI工程师:Claude Code创始人亲授 10 条进阶秘籍 Clawdbot (OpenClaw): 架构与实现解析
原文:https://x.com/JordanLyall/status/2019594755370545168[2]
References
- Gist: https://gist.github.com/jordanlyall/8b9e566c1ee0b74db05e43f119ef4df4
- https://x.com/JordanLyall/status/2019594755370545168