<style>.toc-chapters{max-height:none!important}.copy-btn,#sidebar-toggle,#fullscreen-toggle{display:none!important}@media(max-width:768px){.tutorial-app{display:flex;height:auto;overflow:visible;flex-direction:column}.tutorial-main{order:0;overflow:visible}.tutorial-content{overflow:visible}.tutorial-sidebar{order:1;position:static!important;width:100%!important;min-width:0!important;max-height:none!important;display:flex!important;transform:none!important}.sidebar-toc{overflow:visible}}</style>

第 19 章 安全与权限

给 AI 装个安全带,再聪明也不能乱来。

朋友们好呀,我是当当老师 🐾!前面我们把 AI 助理武装到了牙齿——能读文件、能跑命令、能拍照、能发通知。但能力越大,责任越大!

这一章我们学习怎么给 OpenClaw 上锁,防止 AI 乱来,或者别人偷用你的 AI。


19.1 OpenClaw 的安全模型

先记住一个重要原则:OpenClaw 是为个人(或个人团队)设计的,不是给几千人用的网站。

它的安全模型假设:

  • 运行 OpenClaw 的机器是可信的
  • 能改配置的人是可信的(就是你自己)
  • 如果你的机器被入侵了,AI 也不安全

听起来简单?但就算是单人使用,也有很多需要注意的地方。

19.2 Policy 系统(策略系统)

Policy(策略)就像是给 AI 制定的"家规"——告诉它能做什么、不能做什么。

工具执行模式

这是最重要的安全设置,控制了 AI 能不能在你的电脑上跑命令:

# openclaw.yaml 中的工具执行设置
tools:
  exec:
    mode: "allowlist"  # 默认是 allowlist

五种模式从严到松:

模式 说人话 适合场景
deny AI 不准执行任何命令 只聊天,绝对安全
allowlist 只在白名单里的命令可以自动跑,其他的要问你我 ⭐ 推荐新手使用
ask 所有命令都要问我同意 最稳妥,但比较烦
auto 白名单内的自动跑,其他的自动审核 进阶用户
full AI 想干什么都行 只给你自己信任的环境用

设置白名单

tools:
  exec:
    mode: "allowlist"
    allowlist:
      - "ls"
      - "cat"
      - "pwd"
      - "git status"
      - "python3"
      - "node"

这样 AI 就只能执行这些命令。如果 AI 想执行 rm -rf /(删库跑路🚫),会被直接拒绝。

文件访问权限

你还可以限制 AI 能读写哪些文件夹:

agents:
  defaults:
    fileAccess:
      allowedPaths:
        - "/Users/wubin/Documents"
        - "/Users/wubin/Projects"
      deniedPaths:
        - "/Users/wubin/Documents/secret"

[截图:配置文件中的 tools.exec 设置]

19.3 沙箱(Sandbox)

沙箱是把 AI 关在一个"隔离箱子"里运行。就算 AI 在里面搞破坏,也影响不到外面的系统。

开启沙箱

agents:
  defaults:
    sandbox: "require"

沙箱做了什么?

  • 文件隔离:AI 只能在沙箱目录里读写文件
  • 进程隔离:AI 跑的命令在独立环境里执行
  • 网络限制:可以限制 AI 能不能访问外网

沙箱模式说明

模式 效果
off 不隔离,AI 直接操作你的电脑
isolate 基本隔离,限制文件访问
require ⭐ 严格隔离,推荐开发和测试用

用 Docker 做沙箱

如果你想让沙箱更严格,可以用 Docker:

# 以只读方式运行 Docker
docker run --read-only --cap-drop=ALL \
  --security-opt=no-new-privileges \
  openclaw/openclaw

这基本上就是"放进铁箱子里再锁三道锁"的程度了 🔐

检查沙箱状态

openclaw sandbox explain

这个命令会告诉你当前沙箱的生效情况。

19.4 工具权限

除了命令执行,AI 还用各种工具(Skills)。每个工具都需要权限。

最小权限原则

核心思想:只给 AI 它需要的东西,不多给。

比如你的 AI 只是用来写文章的,那就不要给它访问 GitHub 的权限。

配置工具权限

tools:
  # 列出允许使用的工具
  allowed:
    - web_search
    - web_fetch
    - write
    - read
    
  # 明确禁止的工具
  denied:
    - exec              # 不准执行命令
    - memory_delete     # 不准删记忆
    - file_trash        # 不准扔文件

Skills 的权限

从 ClawHub 安装的每个 Skill 都可以声明自己需要的权限。安装时会提示你:

正在安装 skill: "github-manager"
该 skill 需要以下权限:
✓ 读写 /Users/wubin/Projects
✓ 执行 git 命令
✗ 网络访问外网

是否允许?(y/n) >

[截图:安装 Skill 时显示权限请求的提示]

⚠️ 安全提示:从 ClawHub 安装技能时,把它当"陌生人给的软件"——验证来源可靠再安装。

19.5 Tailscale 远程访问

如果你需要从外面访问家里的 OpenClaw,千万不要直接暴露端口到公网!用 Tailscale 吧。

为什么用 Tailscale?

  • 🔒 加密通信(WireGuard 协议)
  • 🚪 不用开放任何端口
  • ✅ 零配置
  • 📱 手机也能连

设置 Tailscale

第一步:安装 Tailscale

# macOS
brew install tailscale
sudo tailscale up --ssh

# Linux
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --ssh

第二步:在 OpenClaw 中启用

# openclaw.yaml
tailscale:
  mode: "serve"    # 在 Tailscale 网络中暴露服务
  funnel: false     # 不要暴露到公网

第三步:从外部访问

你手机的 Tailscale 连上同一账号后,就可以用 Tailscale 地址访问了:

https://openclaw.your-tailnet-name.ts.net/

[截图:Tailscale 管理界面显示已连接的设备]

加固 VPS

如果你把 OpenClaw 部署在云服务器上:

# 用 UFW 防火墙,只允许 Tailscale 流量
sudo ufw default deny incoming
sudo ufw allow in on tailscale0
sudo ufw enable

这样外面的人根本扫不到你的端口。完美隐身 👻

19.6 审计(Audit)

OpenClaw 自带了审计工具,可以检查你的安全配置有没有漏洞。

运行安全审计

openclaw security audit

运行后你会看到类似这样的输出:

🔍 OpenClaw 安全审计报告
━━━━━━━━━━━━━━━━━━━━━━━━
✓ Gateway 未暴露到公网
✓ 工具执行模式为 allowlist
✓ 文件隔离已启用
⚠ 沙箱未开启 (建议开启)
✗ 配置文件权限为 755 (建议 600)
━━━━━━━━━━━━━━━━━━━━━━━━━━
建议修复的问题:
1. 运行 chmod 600 openclaw.yaml
2. 开启沙箱:sandbox: "require"

深度审计

# 更深入的检查
openclaw security audit --deep

# 自动修复一些问题(谨慎使用)
openclaw security audit --fix

# 输出 JSON 格式结果
openclaw security audit --json

Doctor 诊断

# 自动检测并修复常见问题
openclaw doctor

我们第 22 章会详细讲这个。

审计报告里的常见问题

检查项目 说明
gateway.bind_no_auth 网关没有认证,非常危险
tools.exec.security_full_configured 执行权限未配置
state.file_perms 配置文件权限过松
sandbox.not_enabled 沙箱未开启

19.7 安全最佳实践清单

✅ 日常安全检查表:

□ 工具执行模式不是 full
□ 已经开启沙箱
□ 配置文件权限是 600
□ 没有暴露端口到公网
□ 定期运行 openclaw security audit
□ 从 ClawHub 安装前验证技能来源
□ 手机配对了?确认只连自己的
□ 不要用 root 账号跑 OpenClaw
□ 给 AI 的 API key 是只读的(如果支持)

19.8 本章小结

安全不是一次性的,而是持续的习惯:

功能 做什么 一句话口诀
Policy 系统 给 AI 定规矩 能做什么不能做什么
沙箱 隔离运行环境 关起来更安全
工具权限 限制工具使用 只给需要的
Tailscale 安全远程访问 别开端口用 VPN
审计 检查安全漏洞 定期体检

记住:AI 再聪明,也要拴根绳子。

下一章我们来整点硬核的——自动化!🚀


系统教程,帮你把工具用好,再回到任务中。 浏览任务方案 →