首页 / OpenClaw 教程 / 安全加固与日常运维最佳实践

OpenClaw 教程

安全加固与日常运维最佳实践

本教程共 26 篇 · 第 23 篇 · 更新于 2026-07-27 · 约 6 分钟阅读

OpenClaw安全加固运维备份暴露面审计

23. 安全加固与日常运维最佳实践

本节目标:掌握 OpenClaw 自托管场景下的安全与运维基线——会做安全审计、会备份、会收窄暴露面,并且出问题时能一键收回。

OpenClaw 跑在你自己的机器上,能力很强:能读文件、跑命令、连各种聊天软件。能力强意味着”被乱用”的后果也重。这一章不堆术语,只给你一套能直接落地的做法。

Note

本书基于 2026.7.1-2 版本。安全相关命令以官方文档为准;拿不准的配置项,先 openclaw security audit 看报告。

先做安全审计:security audit

OpenClaw 自带安全审计,能扫出一批配置隐患:

openclaw security audit
openclaw security audit --deep
openclaw security audit --fix

--deep 额外做实时网关探测和插件代码扫描;--fix 会自动修掉”安全且确定”的问题,比如:

  • groupPolicy="open" 翻成 groupPolicy="allowlist"
  • 收紧 ~/.openclaw 及其下配置文件、凭据目录的权限。
Tip

审计报告里标 critical 的,优先处理。常见的致命项:状态目录被其他用户可写(fs.state_dir.perms_world_writable)、非回环绑定却没鉴权(gateway.bind_no_auth)、鉴权模式是 none 却暴露了 HTTP API(gateway.http.no_auth)。

备份配置:最便宜的保险

你的 ~/.openclaw/openclaw.jsoncredentials/ 目录,存着网关设置和各渠道的登录态。弄丢了就得重新配一遍渠道。定期备份就两条命令的事:

cp -r ~/.openclaw/openclaw.json ~/backups/openclaw-config-$(date +%F).json
cp -r ~/.openclaw/credentials ~/backups/openclaw-creds-$(date +%F)
Note

凭据目录里是登录态和令牌,备份文件别丢到网盘同步目录(iCloud / Dropbox / Drive),那会扩大暴露面。本地加密盘或不联网的位置更合适。

最小权限:该关的关掉

自托管默认是”个人助手”模型——一个人操作,不是多租户隔离。如果你要让不止一个人给机器人发消息,就得主动收窄:

  • 把开放 DM 改成 dmPolicy: "pairing" 或严格 allowFrom 名单。
  • 关掉不需要的工具:execelevatedcrongateway 这些高危能力,没用就别开。
  • 小模型(参数 <=300B)没开沙箱却开着浏览器/网页工具时,审计会警告,建议要么换大模型,要么开沙箱。
{
  "tools": {
    "exec": { "security": "deny", "ask": "always" },
    "elevated": { "enabled": false }
  }
}

控制暴露面:别直接公网

能不暴露到公网,就别暴露。官方给的暴露模式,从窄到宽:

模式适合必要条件
回环 + SSH 隧道个人用、管理、调试gateway.bind: "loopback",隧道到 127.0.0.1:18789
回环 + Tailscale Serve个人 tailnet 内访问控制台网关只回环,Tailscale 只鉴控制台
Tailnet / LAN 绑定私有网络、已知设备网关鉴权 + 防火墙白名单,不要公网转发
可信反向代理组织 SSO / OIDC 前置trusted-proxy 鉴权 + 严格 trustedProxies
公网罕见、高风险身份感知代理 + TLS + 限流 + 严格白名单
Warning

避免把网关直接做公网端口转发。必须公网时,在它前面放一个身份感知代理,让代理成为唯一可达路径。

一个最小安全基线(暴露部署的起点):

{
  "gateway": {
    "bind": "loopback",
    "auth": { "mode": "token", "token": "换成一个够长的随机串" }
  },
  "session": { "dmScope": "per-channel-peer" },
  "agents": { "defaults": { "sandbox": { "mode": "non-main" } } },
  "tools": { "profile": "messaging", "exec": { "security": "deny", "ask": "always" }, "elevated": { "enabled": false } }
}

一次只放宽一项:先加渠道白名单,再考虑放开写权限工具;先上反向代理,再接受远程控制台流量。

聊天渠道的入口要收拢

聊天渠道是不可信的输入面。开放前记住几条:

  • DM 优先用 pairing 或严格 allowFrom,别用 open
  • 群里除非环境很可控,否则要求 @ 提及(requireMention)。
  • 多人能发私信时,设 session.dmScope: "per-channel-peer",让每个人会话不共享上下文。
  • 共享频道只路由到”工具最少、没有个人凭据”的 agent。
Note

配对只是”批准这个人能触发机器人”,不等于给他在主机上开了隔离边界。别把配对当成安全隔离。

工具与沙箱:远程发信人最危险

把网关暴露给远程发信人之前,确认清楚:

  • 哪些会话跑在宿主机、哪些跑在沙箱。
  • 主机 exec 要拒绝或要求审批。
  • elevated 工具默认关,除非某个你信任的发信人确实需要。
  • 浏览器、画布、节点、cron、gateway 这些控制面工具,别对开放/半开放消息面开放。
  • 绑定挂载要窄,别挂凭据、home、Docker socket、系统路径。

不同信任边界,就用不同的网关、不同的系统用户或不同的主机来分隔。光靠提示词或会话标签,挡不住不信任的用户。

回退方案:出问题能一键收

万一觉得暴露过头了,先收口:

{
  "gateway": { "bind": "loopback" },
  "channels": {
    "whatsapp": { "dmPolicy": "disabled" },
    "telegram": { "dmPolicy": "disabled" },
    "discord": { "dmPolicy": "disabled" },
    "slack": { "dmPolicy": "disabled" }
  },
  "tools": { "exec": { "security": "deny", "ask": "always" }, "elevated": { "enabled": false } }
}

然后停掉公网转发 / Tailscale Funnel / 反向代理,轮换网关令牌和受影响渠道凭据,复查近期日志与工具调用,最后再 openclaw security audit --deep 确认。

小结

安全运维四件事:定期 security audit 看报告、备份配置和凭据、暴露面能窄则窄、出事有回退。OpenClaw 能力越强,越要把”谁能动它、能动到什么程度”想清楚——这比任何单条命令都重要。