乐于分享
好东西不私藏

OpenClaw安全指南(一·认知篇):你的AI助手有多危险?

OpenClaw安全指南(一·认知篇):你的AI助手有多危险?

OpenClaw 安全指南(一·认知篇):你的 AI 助手有多危险?

这是「OpenClaw 安全指南」系列的第 1 篇。在开始配置之前,我们先搞清楚一件事:你给 AI 助手开了多大的权限,它就有多大的破坏力。

适用版本:OpenClaw ≥ 2026.3.2(推荐 2026.3.31+)

1. 你的 AI 助手能做什么?

很多人装完 OpenClaw 就开始用,压根没想过一个问题:这个 AI 到底能在你的电脑上干什么? 

答案可能会吓你一跳:

能力
具体行为
风险等级
最坏情况
执行命令
运行任意 shell 命令(PowerShell、bash)
🔴 极高
删库、装后门、挖矿
读写文件
读取、创建、修改、删除任意文件
🔴 极高
泄露密钥、篡改配置
网络访问
发起 HTTP 请求、抓取网页
🟠 高
数据外泄、SSRF 攻击
发送消息
通过 Discord/WhatsApp/Telegram 发消息
🟠 高
冒充你发消息、社工攻击
定时任务
创建 cron 任务,定期执行
🟡 中
持久化后门
浏览器控制
自动化操作浏览器
🟠 高
窃取 cookie、自动登录

简单说:不加限制的 AI 助手 ≈ 一个拥有你所有权限的远程用户

你给它 root 权限,它就是 root。你给它你的聊天账号,它就能以你的名义说话。

2. OpenClaw 的安全哲学

2.1 个人助手不是多租户

OpenClaw 的定位是个人 AI 助手,不是企业级多租户平台。

这意味着:

  • 你是唯一的管理员,不需要复杂的 RBAC 角色体系
  • 信任边界很清晰:你信任自己,但不一定信任所有能跟 AI 对话的人
  • 安全重点不同:不是防内部员工,而是防外部入侵和 AI 失控

这个定位决定了 OpenClaw 的安全模型–简单但有效

2.2 三层安全模型

OpenClaw 的安全防护分三层,从外到内:

┌─────────────────────────────┐│  第一层:访问控制          │ ← 谁能连上来?│  Gateway 绑定 / 认证 / 配对  │├─────────────────────────────┤│  第二层:范围限制          │ ← 连上来之后能干什么?│  工具权限 / Exec 策略 / 沙箱  │├─────────────────────────────┤│  第三层:模型防护          │ ← AI 自己会不会被骗?│  提示注入防护 / 系统提示护栏  │└─────────────────────────────┘

每一层都独立生效。就算第一层被突破(有人拿到了你的 token),第二层还能限制他只能用安全的工具。就算第二层也没挡住,第三层的模型护栏还能兜底。

2.3 默认 fail-closed

OpenClaw 遵循一个核心原则:没有明确允许的,默认拒绝

  • 没配置 exec?→ 默认 deny(沙箱)或 allowlist(gateway/node),不能随意执行命令
  • 没配置工具权限?→ 使用最严格的预设
  • 没配置网络绑定?→ 默认只监听 127.0.0.1
  • 没有沙箱时请求 host=sandbox?→ fail-closed,拒绝执行(2026.3.31 起)

这比大多数工具都安全。但问题是:很多人为了”方便”会主动放开限制,然后忘了收回来。

这就是为什么你需要这份指南。

3. 60 秒硬化基线

不废话,直接上配置。把下面这段 JSON 放进你的 openclaw.json:

{  "gateway": {    "mode": "local",    "bind": "loopback",    "auth": {      "mode": "token",      "token": "你的随机强密码-至少32位"    },    "trustedProxies": []  },  "session": {    "dmScope": "per-channel-peer"  },  "tools": {    "profile": "messaging",    "deny": ["group:automation", "group:runtime", "group:fs", "sessions_spawn", "sessions_send"],    // 注:messaging profile 本身包含 sessions_send,这里额外 deny 是为了基线最严格;按需从 deny 中移除    "fs": { "workspaceOnly": true },    "exec": {      "security": "deny",      "ask": "always"    },    "elevated": { "enabled": false }  },  "channels": {    "defaults": {      "dmPolicy": "pairing",      "groupPolicy": "allowlist"    }  },  "discovery": {    "mdns": {      "mode": "minimal"    }  }}

这是最严格的起点–禁用命令执行、文件操作、自动化工具,仅保留消息通信能力。然后根据实际需要逐步放开:

  • 需要文件读写?→ 把 profile 改为 "coding",移除 deny 中的 "group:fs"
  • 需要执行命令?→ 把 exec.security 改为 "allowlist",ask 改为 "on-miss"(⚠️ Windows 用户见下方说明)
  • 需要定时任务?→ 移除 deny 中的 "group:automation"

各配置项说明:

配置项
说明
可选值
引入版本
gateway.bind loopback
只监听本机,外部无法访问;custom 需配合 customBindHost 指定具体地址
auto / loopback / lan / tailnet / custom
2026.1.21
gateway.auth.mode token
认证模式(2026.1.29 起必须配置;2026.3.31 起 trusted-proxy 拒绝混合 token 配置)
none/ token / password / trusted-proxy
2026.1.29
gateway.auth.token
强随机
保护 API 端口的长随机 token
任意字符串(建议 32+ 位)
早期
gateway.trustedProxies []
不信任任何代理,防止 IP 伪造
IP 地址数组,如 ["127.0.0.1"]
2026.2.21
session.dmScope per-channel-peer
每个通道+用户独立会话,防止跨用户上下文泄露
main / per-channel-peer
2026.1.15
tools.profile messaging
最严基线用 messaging,日常开发用 coding
full/ coding / messaging / minimal
2026.1.12
tools.deny
多个工具组
基线禁用 automation/runtime/fs/spawn/send
工具名或 group:*
2026.1.5
tools.fs.workspaceOnly true
文件操作限制在 workspace 目录内
true/ false
2026.1.12
tools.exec.security deny
基线完全禁用命令执行,按需改为 allowlist
deny/ allowlist / full
2026.1.20
tools.exec.ask always
基线每条命令都要审批
off/ on-miss / always
2026.1.20
tools.elevated.enabled false
基线禁用提权模式
true/ false
2026.2.22
channels.defaults.dmPolicy pairing
只允许已配对用户发送 DM
pairing/ allowlist / open / disabled
2026.1.8
channels.defaults.groupPolicy allowlist
只响应明确配置的群组
allowlist / open / disabled
2026.1.8
discovery.mdns.mode minimal
控制 mDNS 广播内容
full / minimal / off
2026.1.29

配置完之后,跑一下安全审计:

openclaw security audit

如图,总结:CRITICAL(严重):0 ● WARN(警告):5● INFO(信息):。一般对于WARN,可按需对待,对于CRITICAL,请谨慎对待,需要修复的按FIX(提示)修复。

4. Gateway 网络安全

Gateway 是 OpenClaw 的”大门”。所有请求–不管是你自己的、手机 App 的、还是 Discord Bot 的–都要经过这道门。

门没锁好,后面的安全措施全白搭。

4.1 绑定模式

Gateway 的 bind 参数决定了谁能连上来:

绑定模式
实际监听
谁能访问
适用场景
安全等级
引入版本
loopback(默认) 127.0.0.1:18789
仅本机
本地使用
🟢 最安全
2026.1.21
lan 0.0.0.0:18789
所有网络接口
局域网/需要外部访问
🔴 危险
2026.1.21
tailnet
Tailscale IP
Tailscale 网络
远程访问
🟢 安全
2026.1.21
auto
自动选择
视环境而定
一般场景
🟡 中等
2026.1.21
custom
自定义 IP/主机名
取决于 customBindHost 配置
特殊网络环境(如指定网卡、Docker 容器内)
🟡 取决于配置
2026.1.21

黄金法则:能用 loopback 就不用 lan

4.2 认证配置

Gateway 支持 token 认证。配了 token,所有请求都必须在 Header 里带上它:

{  "gateway": {    "auth": {      "mode": "token",      "token": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"    }  }}

生成一个强 token 的方法:

# PowerShell[System.Convert]::ToBase64String((1..32 | ForEach-Object { Get-Random -Maximum 256 }) -as [byte[]])# 或者用 opensslopenssl rand -hex 32

请求时这样带 token:

curl -H "Authorization: Bearer a1b2c3d4e5f6..." http://localhost:18789/api/chat

不配 token = 裸奔。 谁都能调你的 API,让你的 AI 干任何事。

4.3 反向代理配置

如果你用 Nginx 做反向代理,需要配置 trustedProxies,否则 OpenClaw 拿不到真实客户端 IP:

{  "gateway": {    "trustedProxies": ["127.0.0.1", "10.0.0.0/8"]  }}

对应的 Nginx 配置:

server {    listen 443 ssl;    server_name openclaw.example.com;    ssl_certificate     /etc/ssl/certs/openclaw.pem;    ssl_certificate_key /etc/ssl/private/openclaw.key;    location / {        proxy_pass http://127.0.0.1:18789;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_set_header X-Forwarded-Proto $scheme;        # WebSocket 支持        proxy_http_version 1.1;        proxy_set_header Upgrade $http_upgrade;        proxy_set_header Connection "upgrade";    }}

⚠️ trustedProxies 千万别设成 ["0.0.0.0/0"],那等于信任所有人,任何人都能伪造 IP。

4.4 Tailscale 接入

Tailscale 是远程访问 OpenClaw 最安全的方式之一。两种模式对比:

特性
Tailscale Serve
Tailscale Funnel
访问范围
仅 Tailnet 内部
公网可达
需要认证
Tailscale 身份认证
无额外认证
HTTPS
自动
自动
适用场景
自己的设备互访
需要给外部服务用
安全等级
🟢 安全
🟡 需额外加固
配置命令
tailscale serve 18789 tailscale funnel 18789
引入版本
2026.1.12
2026.1.12

推荐用 Serve,不用 Funnel。 除非你有明确的理由需要公网暴露。

4.5 mDNS 信息泄露

OpenClaw 默认会通过 mDNS 在局域网广播自己的存在,方便手机 App 发现。但这也意味着同一网络的任何人都能看到你跑了 OpenClaw

在公共网络(咖啡厅、酒店)或者对安全要求高的环境,建议关掉或者改成最小模式:

{  "discovery": {    "mdns": {      "mode": "minimal"    }  }}
mDNS 模式
广播内容
适用场景
引入版本
full
服务名 + 端口 + CLI 路径 + SSH 端口
家庭网络,方便发现
2026.1.29
minimal(默认)
仅服务名 + 端口
需要发现但减少信息
2026.1.29
off
不广播
公共网络、高安全环境
2026.1.29

4.6 Docker 网络隔离

如果你在 Docker 里跑 OpenClaw,别忘了 Docker 默认会绕过 iptables/ufw 规则直接暴露端口。

用 DOCKER-USER 链来限制:

# 只允许局域网访问 OpenClaw 的 18789 端口iptables -I DOCKER-USER -p tcp --dport 18789 -s 192.168.0.0/16 -j ACCEPTiptables -I DOCKER-USER -p tcp --dport 18789 -j DROP

或者更简单的方法:不映射端口到 0.0.0.0

# docker-compose.ymlservices:  openclaw:    ports:      - "127.0.0.1:18789:18789"  # ✅ 只映射到本机      # - "18789:18789"           # ❌ 别这样,等于暴露给所有人

5. Windows vs Linux 安全差异

OpenClaw 的安全配置在两个平台上大部分一致(Gateway 绑定、认证、通道策略、工具权限、会话隔离、mDNS、定时任务、密钥管理等),但有几个关键差异必须注意:

差异点
Windows
Linux/macOS
影响
涉及篇章
exec allowlist 模式
❌ 不支持(无法解析二进制路径)
✅ 正常工作
最大差异!Windows 只能用 deny 或 full + ask
第三篇
safe bins
❌ 默认的 cut/wc/head/tail 等不存在
✅ 系统自带
Windows 上 safe bins 功能基本无用
第三篇
Shell 环境
PowerShell(pwsh 优先,回退 5.1)
bash/sh
审批时命令解析方式不同,脚本语法不通用
第三篇
沙箱 Docker
需要 Docker Desktop + WSL2
原生 Docker
Windows 上沙箱配置复杂度更高
第三篇
文件权限
NTFS ACL,无 chmod
Unix 权限模型(chmod 600)
security audit --fix

 收紧权限的行为不同
第四篇
环境变量 $env:VAR

 / 系统环境变量
export VAR=...

 / .env
设置方式不同,但 OpenClaw 读取逻辑一致
第四篇
生成强 token [System.Convert]::ToBase64String(...) openssl rand -hex 32
命令不同,效果一样
第一篇
防火墙
Windows Defender 防火墙
iptables/ufw/firewalld
封端口的命令完全不同
第四篇
Docker 网络隔离
Docker Desktop 管理,不涉及 iptables
DOCKER-USER

 链 / ufw
Linux 特有的 Docker 绕过 iptables 问题
第一篇

核心结论:如果你用 Windows,最大的影响是 exec allowlist 不可用。建议用 deny(最安全)或 full + ask: "always"(每条审批)替代。其他配置项两个平台通用。

后续篇章中涉及平台差异的地方,会用 ⚠️ 标注。

6. 小结

这篇讲的是”认知”–先搞清楚风险在哪,然后把最基础的防线拉起来。

关键动作
做了没?
了解 AI 助手的六大能力和风险
理解三层安全模型
应用 60 秒硬化基线配置
Gateway 绑定到 loopback 或 tailnet 模式
配置了强 token 认证
跑了 openclaw security audit
关闭或限制了 mDNS 广播
Docker 用户检查了端口映射

下一篇我们聊入口控制–就算 Gateway 锁好了,谁能跟你的 AI 说话,说了之后能干什么,也得管起来。


系列导航:

  • ✅ OpenClaw 安全指南(一·认知篇):你的 AI 助手有多危险?
  • OpenClaw 安全指南(二·入口篇):谁能跟你的 AI 说话?
  • OpenClaw 安全指南(三·执行篇):让 AI 在笼子里干活
  • OpenClaw 安全指南(四·进阶篇):密钥、注入与应急

_👋 我是路人甲甲,公众号「AI 打怪升级」,专注 AI 工具实战。_

_觉得有用?点个在看,分享给需要的朋友。_