OpenClaw 是一个功能强大的开源 AI 代理框架,但其“真正执行”能力(文件读写、Shell 执行、浏览器自动化、git 操作等)也带来了显著安全风险。官方安全模型是 personal assistant(单一可信操作者边界),不是 多租户共享系统。在生产环境(VPS、云服务器、企业内网)部署时,必须主动加固,否则极易导致数据泄露、横向移动、API 费用爆炸或成为攻击跳板。
本文基于官方文档(docs.openclaw.ai/gateway/security)、GitHub SECURITY.md、2026年社区硬化指南(Repello、SlowMist、Nebius、Hostinger 等)+ 真实生产案例,整理出分层、可操作的生产安全建议。优先级从高到低排序。
一、核心安全原则(必须理解)
- 隔离优先:永远不要在日常主力机或企业生产服务器上直接运行。
- 最小权限:默认拒绝一切高危操作,只显式允许。
- 不暴露:Gateway 端口(默认 18789)绝不 直连公网。
- 信任边界:假设所有渠道消息都可能被恶意伪造(prompt injection、越权)。
- 监控 & 回滚:部署后要有快速销毁/重建能力。
二、生产环境推荐部署架构(由安全到最安全)
| 级别 | 推荐方式 | 隔离强度 | 适用场景 | 主要风险降低点 |
|---|---|---|---|---|
| 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
设置 PIN:onboarding 时或 openclaw security set-pinJSON
{ "security": { "requirePinFor": ["shell", "file_write", "exec", "email_send", "browser.navigate"] } }
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 + 低危指令
五、如果出事了怎么办?
- 立即 systemctl --user stop openclaw-gateway
- 断开所有渠道 Token
- 检查 ~/.openclaw/logs / journalctl 日志
- 销毁 VPS 快照重建(推荐 15 分钟内完成)
- 报告漏洞:GitHub Security 或 security@openclaw.ai
安全是持续过程。建议每季度复盘一次配置 + 更新到最新版(openclaw update 已修复大量 sandbox / path traversal 问题)。
更多参考:
- 官方:https://docs.openclaw.ai/gateway/security
- GitHub SECURITY.md:https://github.com/openclaw/openclaw/security
- 社区硬化 Ansible:https://github.com/Next-Kick/openclaw-hardened-ansible