< 返回

    OpenClaw 安全配置指南

    2026-03-07 11:01 作者:技术部 阅读量:5

    OpenClaw 是一个功能强大的开源 AI 代理框架,但其“真正执行”能力(文件读写、Shell 执行、浏览器自动化、git 操作等)也带来了显著安全风险。官方安全模型是 personal assistant(单一可信操作者边界),不是 多租户共享系统。在生产环境(VPS、云服务器、企业内网)部署时,必须主动加固,否则极易导致数据泄露、横向移动、API 费用爆炸或成为攻击跳板。

    本文基于官方文档(docs.openclaw.ai/gateway/security)、GitHub SECURITY.md、2026年社区硬化指南(Repello、SlowMist、Nebius、Hostinger 等)+ 真实生产案例,整理出分层、可操作的生产安全建议。优先级从高到低排序。

    一、核心安全原则(必须理解)

    1. 隔离优先:永远不要在日常主力机或企业生产服务器上直接运行。
    2. 最小权限:默认拒绝一切高危操作,只显式允许。
    3. 不暴露:Gateway 端口(默认 18789)绝不 直连公网。
    4. 信任边界:假设所有渠道消息都可能被恶意伪造(prompt injection、越权)。
    5. 监控 & 回滚:部署后要有快速销毁/重建能力。

    二、生产环境推荐部署架构(由安全到最安全)

    级别 推荐方式 隔离强度 适用场景 主要风险降低点
    Tier 0 本地 Mac mini / 台式机 个人测试
    Tier 1 专用 VPS + Docker + localhost bind 个人生产、轻量自动化 网络隔离 + 非 root
    Tier 2 专用 VM(KVM/Proxmox)+ Docker 小团队、多用户测试 完整 OS 隔离
    Tier 3 专用物理机 / Air-gapped VM + Sandbox 全开 极高 企业敏感数据、合规场景 最大化 runtime 隔离
     
     

    最常见生产选择:Tier 1(VPS + Docker + SSH 隧道 / Tailscale 访问)

    三、核心安全配置清单(逐项检查)

    1. 网络与暴露控制(最高优先级)

    • Gateway 必须 bind 到 localhost 或内网 IP
      JSON
       
      // ~/.openclaw/openclaw.json
      {
        "gateway": {
          "bind": "loopback",          // 或 "127.0.0.1" / "192.168.x.x"
          "port": 18789
        }
      }
       
       
    • 绝不 开放 18789 到 0.0.0.0:公网
    • 访问方式(选一种):
      • SSH 动态隧道:ssh -L 18789:localhost:18789 user@服务器
      • Tailscale / ZeroTier / WireGuard 内网
      • Nginx/Caddy 反代 + HTTP Basic Auth + IP 白名单 + HTTPS(自签或 Let's Encrypt)
    • 防火墙:ufw / firewalld 只允许 SSH + 必要出站
      Bash
       
      sudo ufw allow from 你的IP to any port 22
      sudo ufw deny 18789
      sudo ufw enable
       
       

    2. 身份认证与渠道控制

    • 强制 Gateway Token 认证(onboarding 后自动生成)
      Bash
       
      openclaw token create --name production --expires-in 90d --scopes full
       
       
    • 渠道严格白名单(尤其是 Telegram/WhatsApp)
      JSON
       
      {
        "channels": {
          "telegram": {
            "allowFrom": ["+852你的号码", "另一个备用号"]
          },
          "whatsapp": {
            "allowFrom": ["+852xxxxxxxxxx"]
          }
        }
      }
       
       
    • 多用户场景:每个用户独立 Gateway 或严格 session 分离 + sandbox mode="all"

    3. 权限与沙箱(Sandbox)配置

    • 永远开启 read-only 起步(新手/生产初期)
      Bash
       
      openclaw config set read_only true
      # 生产后期逐步关闭特定 session
       
       
    • 启用 Sandbox(推荐 mode: "all" 或 "non-main")
      JSON
       
      {
        "agents": {
          "defaults": {
            "sandbox": {
              "mode": "all",                  // 或 "non-main"(主会话免沙箱)
              "workspaceAccess": "none"       // 最严格:每个 session 独立临时 workspace
            }
          }
        }
      }
       
       
    • 文件系统限制:只允许 workspace 内操作
      JSON
       
      {
        "tools": {
          "fs": {
            "workspaceOnly": true,
            "allowPaths": ["~/projects", "~/.openclaw/workspace"]
          }
        }
      }
       
       
    • 高危工具显式禁用/需 PIN
      JSON
       
      {
        "security": {
          "requirePinFor": ["shell", "file_write", "exec", "email_send", "browser.navigate"]
        }
      }
       
       
      设置 PIN:onboarding 时或 openclaw security set-pin

    4. 密钥与秘密管理

    • 绝不 把 API Key 硬编码进 Memory.md / 会话
    • 使用环境变量 + 外部管理
      • Docker:通过 .env 或 secrets
      • VPS:systemd EnvironmentFile 或 HashiCorp Vault / AWS Secrets Manager
    • 避免 config 中明文:用 ${ENV_VAR_NAME} 占位符

    5. 其他生产硬化项

    • 非 root 运行(Docker 官方镜像默认 node 用户)
    • 只读文件系统(Docker --read-only + tmpfs 覆盖 /tmp)
    • 限制工具调用次数/轮次:maxToolCallsPerTurn: 6
    • 启用记忆摘要 & 定期清理:memory.summarization.enabled: true
    • 监控 API 花费:设置预算警报(Claude/GPT 控制台)
    • 定期备份 & 快照:只备份 ~/.openclaw(含 Memory.md、config)
    • 技能安装审核:plugins.allow 只 pin 信任插件 ID

    四、生产部署检查清单(上线前跑一遍)

    • Gateway bind 仅 localhost / 内网
    • 18789 端口未暴露公网(nmap / online port scan 检查)
    • 所有渠道白名单配置完成
    • Sandbox mode ≠ off(至少 non-main)
    • read_only 或 workspaceOnly 开启
    • 高危工具需 PIN
    • API Key 通过 env / secrets 注入
    • 非 root 用户 / Docker 非 root
    • SSH 密钥登录 + 禁用密码
    • UFW / firewalld 严格规则
    • 首次测试只用 read-only + 低危指令

    五、如果出事了怎么办?

    1. 立即 systemctl --user stop openclaw-gateway
    2. 断开所有渠道 Token
    3. 检查 ~/.openclaw/logs / journalctl 日志
    4. 销毁 VPS 快照重建(推荐 15 分钟内完成)
    5. 报告漏洞:GitHub Security 或 security@openclaw.ai

    安全是持续过程。建议每季度复盘一次配置 + 更新到最新版(openclaw update 已修复大量 sandbox / path traversal 问题)。

    更多参考:

     

     

    联系我们
    返回顶部