高可用架构

不交出敏感权限也能跑:我是如何安全配置 OpenClaw (Clawdbot) 的

内容提要(TL;DR): 使用专用机器、Tailscale 网络(无公网端口)、命令白名单、只读 Token 以及单向数据流。完整命令集请见配套 :Gist[1]

适用人群

本指南适用于那些希望安全地实验 OpenClaw,而不是"蒙头狂奔,撞得头破血流"的人。 如果你打算在第一个月就给你的 AI 代理银行访问权限,那这篇文章不适合你。你不是"早期采用者",你只是在为未来的"反面典型案例"提供素材。 如果你想循序渐进地构建、在扩展功能前先验证稳定性,并希望在睡觉时不必担心一个"提示词注入攻击"就会掏空你的钱包——请继续读下去。

狂热 vs. 现实

所有人都在为 OpenClaw 疯狂。代理一夜之间赚了大钱、机器人给你打电话、人们给 AI 银行权限并"移除所有防护栏"。 我也想参与其中,但我不想在醒来时发现钱包空空或服务器被黑。事实是: 我在加密货币行业工作多年。这意味着我已经是黑客的目标——钓鱼、SIM 卡劫持、社会工程学,不一而足。 我最不需要的就是一个 24 小时在线、且对任何敏感数据拥有写入权限的 AI 代理。一次提示词注入攻击,我就彻底玩完了。 所以我花了一周时间阅读了所有能找到的指南和教训。大部分是炒作,有些很有用,还有一些简直是伪装成"灵感"的鲁莽建议。 这就是我开始时最希望拥有的一份安全第一配置指南。

多数指南的问题

OpenClaw 社区发展迅速,令人兴奋。但大多数指南都有同一个问题:安全要么是事后补救,要么被完全忽略。

  • 一篇文章展示了 20 种"游击营销策略",本质上就是自动化垃圾邮件。
  • 另一个人公开宣布他给了代理银行权限并移除了所有限制。
  • 有人记录了他们的代理因为收到一封带有"提示词注入"指令的邮件,而删光了整个收件箱。一个拥有邮件访问权限的 AI 收到恶意信息后执行了隐藏指令,一切都化为乌有。

这绝非假设,而是真实发生过的事情。 如果你从事加密、金融科技或任何易受攻击的行业,这应该令你感到恐惧。攻击者已经在使用 AI 制作更具迷惑性的钓鱼信息,现在想象一下,他们可以直接向你 AI 代理的上下文中注入指令。

我的配置目标

我想实验 OpenClaw,但必须有明确的界限:

  1. 初始阶段仅限只读监控。 不发帖、不主动向外接触、不操作外部服务。
  2. Telegram 为唯一接口。 单一频道,仅限所有者(我)访问。
  3. 最小化攻击面。 如果出事,限制受损范围(爆炸半径)。
  4. 单向系统集成。 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 失控,最坏的情况也只是收件箱里多了一些文件。我的核心系统保持完好。


第五阶段:安全校验

在上线前,运行安全审计命令。如果审计失败,不要继续。修复所有标记的问题。

然后测试:

  1. 关闭手机 Tailscale,尝试连接机器(应失败)。
  2. 尝试从 Tailnet 外部 SSH 登录(应失败)。
  3. 用另一个 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 从你的笔记本电脑执行停止命令。

如果怀疑被入侵

  1. 立即停止网关
  2. 撤销所有 API Token(Claude、Twitter,全部)
  3. 审查日志中的未授权操作
  4. 更换 Telegram 机器人 Token
  5. 审计哪些文件被修改过
  6. 在你搞清楚发生了什么之前,不要重启

给今天刚开始的人的建议

  1. 从只读开始。 不发帖、不主动联系、不访问财务。先证明它能安全运行。
  2. 一个代理,一个频道。 不要一夜之间从零跳到十个代理。
  3. Tailscale 是底线。 绝不开放公网端口。
  4. 使用命令白名单,而非开放 Shell。 如果你给 AI 不受限的 Shell 访问权限,你就是在指望提示词注入防御是完美的。它不是。
  5. 限制每个 Token 的权限范围。 能用只读就不用读写。记录每个 Token 能做什么。
  6. 在需要之前就开启远程访问。 Tailscale SSH 救了我的命。
  7. 设定扩展的门槛。 我在没有安全问题的情况下稳定运行 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 代理安全配置是什么样的?我遗漏了什么?欢迎私信或回复——我真的很好奇其他人是怎么做的。

参考阅读

原文:https://x.com/JordanLyall/status/2019594755370545168[2]

References

  1. Gist: https://gist.github.com/jordanlyall/8b9e566c1ee0b74db05e43f119ef4df4
  2. https://x.com/JordanLyall/status/2019594755370545168