首页 资讯 下载 教程 Skills 社群

OpenClaw 安全加固实战指南

为什么安全很重要

OpenClaw 不同于普通的聊天应用——它是一个拥有执行能力的 AI 代理,可以操作文件、执行命令、控制浏览器。这意味着一旦安全配置不当,攻击者可能通过你的 AI 助手获取系统权限。

OpenClaw 官方建议遵循最小权限原则:先以最严格的权限启动,再根据实际需要逐步放开。

第一步:网络绑定与暴露控制

OpenClaw 网关默认绑定到 loopback(仅本地),这是最安全的模式:

{
  gateway: {
    bind: "loopback"  // 默认值,仅本地连接
  }
}

如果你需要局域网访问,可以改为 lan,但务必同时配置认证:

{
  gateway: {
    bind: "lan",
    auth: {
      token: "your-strong-random-token"
    }
  }
}

如需远程访问,推荐使用 Tailscale 组建私有网络,而不是直接暴露到公网。

第二步:私信访问策略

OpenClaw 提供四种私信处理策略,控制谁能与你的 AI 助手交互:

策略 行为 适用场景
pairing 陌生人收到配对码,审批后才能对话 默认推荐
allowlist 仅允许白名单用户 严格控制
open 允许任何人对话 公开服务
disabled 忽略所有私信 仅群组使用

建议保持默认的 pairing 模式,通过 CLI 管理配对请求:

# 查看待审批的配对请求
openclaw pairing list whatsapp

# 审批某个用户
openclaw pairing approve whatsapp abc123

第三步:沙箱隔离

沙箱是 OpenClaw 的重要安全特性,可以将工具执行限制在隔离的容器环境中。配置方式:

{
  agents: {
    defaults: {
      sandbox: {
        mode: "non-main",     // off | non-main | all
        scope: "session",     // session | agent | shared
        workspaceAccess: "ro" // none | ro | rw
      }
    }
  }
}

三种模式说明:

  • off:不使用沙箱,工具直接在宿主机执行
  • non-main:除主会话外的所有会话使用沙箱(推荐)
  • all:所有会话都在沙箱中执行

工作区访问权限也有三个级别:

  • none:工具只能访问沙箱内部
  • ro:只读挂载宿主机工作区
  • rw:读写访问(需谨慎使用)

第四步:工具权限控制

你可以精细控制 AI 助手能使用哪些工具:

{
  tools: {
    allow: ["group:web", "group:fs"],  // 允许的工具组
    deny: ["exec", "browser"]          // 禁止的工具
  }
}

OpenClaw 提供以下工具组快捷方式:

  • group:fs:文件系统操作
  • group:runtime:运行时命令执行
  • group:sessions:会话管理
  • group:web:网络请求
  • group:ui:界面交互

对于多代理场景,可以为不同代理配置不同权限:

{
  agents: {
    list: [
      {
        id: "personal",
        sandbox: { mode: "off" }  // 个人代理完全信任
      },
      {
        id: "public",
        sandbox: { mode: "all", workspaceAccess: "none" },
        tools: { deny: ["exec", "browser", "group:fs"] }
      }
    ]
  }
}

第五步:文件权限加固

确保 OpenClaw 的配置文件和凭证文件具有正确的权限:

# 自动修复文件权限
openclaw security audit --fix

该命令会自动执行以下操作:

  • 配置文件设置为 600(仅所有者可读写)
  • 状态目录设置为 700(仅所有者可访问)
  • 凭证文件设置为 600
  • 群组策略从 open 收紧为 allowlist

建议在每次修改配置或网络环境变化后运行:

# 深度安全审计
openclaw security audit --deep

第六步:日志脱敏

OpenClaw 默认会对工具输出中的敏感信息进行脱敏处理:

{
  logging: {
    redactSensitive: "tools",  // 脱敏工具输出
    redactPatterns: [
      "sk-[a-zA-Z0-9]{48}",   // 自定义脱敏规则
      "ghp_[a-zA-Z0-9]{36}"
    ]
  }
}

分享诊断信息时,使用预脱敏的命令:

openclaw status --all  # 自动脱敏后的状态输出

安全事件响应

如果你怀疑 AI 助手被入侵,按以下步骤处理:

  1. 遏制影响:禁用高危工具或停止网关
  2. 锁定访问:将私信策略切换为 disabled
  3. 轮换密钥:更新网关令牌和模型 API 密钥
  4. 审查记录:检查日志和会话记录中的异常工具调用
  5. 重新审计:运行完整安全审计确认环境已清理

安全最佳实践总结

  • 保持 loopback 绑定,需要远程访问时使用 Tailscale
  • 使用 pairingallowlist 控制消息来源
  • 为非主会话启用沙箱隔离
  • 限制高危工具(execbrowser)的使用范围
  • 定期运行 openclaw security audit --deep
  • 使用环境变量存储敏感令牌,不要硬编码在配置文件中