网宝
新闻中心 / / 正文

OpenClaw 安全配置指南

2026-03-07 11:01
技术部
← 返回

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 问题)。

更多参考:

 

 

QQ客服 提交工单