📋 文章目录
简介
本文主要介绍如何在一台全新 Windows 10/11(专业/企业版)机器上从零开始安装并配置 OpenClaw,并实现严格的最小权限和沙箱隔离策略。首先介绍所需环境和安装步骤,包括 Node.js、npm、Git、Python 等依赖,以及 OpenClaw 的下载安装与初始化命令。然后重点设计访问控制方案:在文件系统层面构建白名单目录,利用 NTFS ACL 严格限制 OpenClaw 服务账户的读写权限;在系统层面使用 Windows Defender 应用控制(WDAC)和 AppLocker 等策略只允许认证的可执行文件运行[32][34]。
OpenClaw 本身通过配置文件实现 Token 和技能权限管理:例如仅允许必要的 Shell/文件/网络工具,禁止 exec、read、write 等高风险操作[11][22]。针对浏览器下载策略,只允许 HTTP GET 搜索与下载,禁止上传行为,并使用独立的干净浏览器配置隔离密码和 Cookie。Local Python 脚本在隔离环境中执行,依赖离线方式安装,同时通过防火墙规则阻止脚本联网。全局启用审计日志,记录关键操作事件并集中留存 30 天[46]。
1. 环境准备与前提条件
- 操作系统:Windows 10/11(建议 Pro/Enterprise 版,推荐 Windows 11),需 64 位,且系统账户须具有管理员权限[43][46]。
- 硬件配置:至少 4GB 内存、1GB 以上可用硬盘空间;网络环境能够访问
openclaw.ai和 npm 镜像源(国内可通过配置代理加速)。 - 必要软件:安装 Node.js(建议 22.x LTS 以上),以及 Git、Python(可选,用于运行 Python 技能)。建议通过 NodeSource 或 Windows 安装包安装 Node.js。
- PowerShell:后续操作以管理员身份运行 PowerShell。可以使用
winget install或手动下载安装包。 - 环境配置:由于网络限制,安装前可配置 npm 镜像源加速依赖下载[41][43]:
npm config set registry https://registry.npmmirror.com如有需要,可临时设置 HTTP 代理:
$env:http_proxy="http://127.0.0.1:7890" $env:https_proxy="http://127.0.0.1:7890"
2. 安装 OpenClaw
- 全局安装 CLI:在管理员 PowerShell 下执行:
npm install -g openclaw@latest该命令使用 npm 安装 OpenClaw 最新稳定版。安装成功后,可通过
openclaw --version验证版本[41]。 - 初始化配置:运行 Onboarding 向导:
openclaw onboard --flow quickstart向导会引导配置 AI 模型、聊天渠道和技能模块。首次运行时提示:“I understand this is powerful and inherently risky. Continue?”,请选择“Yes”确认继续[41]。
- 启动网关:完成配置后,启动后台网关服务:
openclaw gateway start运行
openclaw gateway status确认网关已在本地端口 18789 运行。此时可打开浏览器访问http://127.0.0.1:18789/查看控制台[41]。
3. 访问控制与沙箱隔离设计
3.1 文件系统白名单与 NTFS 权限
为确保安全,我们需要在 Windows 层面限制进程权限:
- 专用服务账户:为 OpenClaw 创建专用低权限 Windows 用户(例如“
OpenClawUser”),置于标准用户组,不赋予管理员权限[11][46]。 - 白名单目录:预先创建一个目录(如
C:\OpenClaw)作为工作目录,赋予读写权限;拒绝其对其他敏感目录的访问。New-LocalUser OpenClawUser -NoPassword -AccountNeverExpires Add-LocalGroupMember -Group "Users" -Member OpenClawUser # 允许访问工作目录 icacls C:\OpenClaw /grant OpenClawUser:(OI)(CI)M # 拒绝访问用户个人目录和系统盘根 icacls C:\Users /deny OpenClawUser:(OI)(CI)F icacls C:\ /deny OpenClawUser:F
沙箱与应用控制策略对比
| 控制领域 / 工具 | 描述及示例 | 优缺点分析 |
|---|---|---|
| NTFS ACL | 基于用户/组的文件夹权限控制。icacls C:\ /deny OpenClawUser:F |
简单直接;但管理复杂,若进程提权可被绕过[11]。 |
| WDAC | 系统级应用白名单,强制执行签名验证[32]。 | 极其严格;配置 XML 策略复杂,限企业版。 |
| AppLocker | 允许/拒绝规则,支持针对特定用户的限制[34]。 | 细粒度高;需要企业版/教育版,需定期更新。 |
| OpenClaw 沙箱 | 配置文件内禁用 read, write, exec 等工具[11][22]。 |
配置灵活;但仅在进程内生效,对系统外攻击无效。 |
权限与数据流示意图
flowchart LR
subgraph Sys ["Windows系统"]
Admin["Windows管理员"]
WDAC["WDAC/AppLocker策略"]
FW["防火墙/网络过滤"]
end
subgraph OC ["OpenClaw环境"]
direction TB
User["OpenClaw低权限用户"]
AllowDir["文件系统白名单(允许读写)"]
DenyDir["其他文件夹(拒绝访问)"]
Skills["技能工具(浏览器/Python/Shell)"]
Log["日志审计记录"]
end
Admin --> User
WDAC -.-> User
FW -.-> Skills
User --> AllowDir
User -.-> DenyDir
Skills --> AllowDir
Skills -.-> DenyDir
Skills --> Internet["互联网(限制出站)"]
Internet -.-> User
User --> Log
图:OpenClaw 进程下权限和数据流示意。
3.2 Token 与技能权限模型
采用“刺猬原则”处理所有 API Token。将 .env 文件权限锁定为仅 OpenClawUser 可读,并在 openclaw.json 中严格限制 技能工具权限。示例配置如下[22][46]:
{
"agents": {
"public": {
"tools": {
"allow": ["sessions_list", "browser.search", "browser.download"],
"deny": ["read", "write", "exec", "browser.fill_password", "browser.upload"]
}
}
},
"security": {
"shell": {
"allowed_commands": ["git", "npm", "python", "ls", "cat"],
"blocked_patterns": ["rm -rf", "> /dev/", "curl ", "powershell Add-"],
"working_directory": "C:\\OpenClaw\\sandbox",
"run_as_user": "OpenClawUser"
}
}
}
3.3 浏览器和下载策略
- 独立浏览器配置:使用专用浏览器实例,禁用密码同步、自动填充和扩展,隔离敏感信息[44]。
- 下载目录隔离:所有 AI 下载文件存放于
C:\OpenClaw\downloads,防止被自动同步或备份。 - 网络上传限制:通过 Windows 防火墙阻断无关出站请求:
# 允许 Node.exe 访问指定 IP New-NetFirewallRule -DisplayName "OpenClaw_Outbound" -Direction Outbound ` -Program "C:\Program Files\nodejs\node.exe" -RemoteAddress 1.2.3.4 -Action Allow # 阻止 Python 的所有出站网络 New-NetFirewallRule -DisplayName "Block_Python_Out" -Program "C:\Python39\python.exe" -Direction Outbound -Action Block
3.4 本地 Python 脚本执行与依赖管理
禁用 Python 的联网能力,采用离线方式安装依赖库[38]:
# 联网机器上下载
pip download flask -d C:\OfflinePackages
# 离线主机上安装
pip install --no-index --find-links C:\OfflinePackages flask
4. 日志与审计
在配置文件中开启高等级审计并设定日志保留 30 天。日志以 JSON 格式记录,便于集中化管理和追踪[46]:
{"timestamp":"2026-03-11T12:34:56Z","agent":"public","action":"shell.execute",
"command":"del C:\\OpenClaw\\data\\file.txt","result":"denied","user":"OpenClawUser"}
5. 风险与缓解措施
- 提示词注入:在应用层增加输入过滤中间件,屏蔽
rm\s+-rf等危险指令模式。 - Token 泄露:严禁将 Token 粘贴到聊天中,使用凭据管理器或严控配置文件读取权限。
- 技能越权:利用
tools.deny封锁高危操作,对异常行为配置监控告警。 - 系统逃逸:通过 WDAC/AppLocker 与 NTFS ACL 建立深度防御,定期打系统补丁。
参考来源
- OpenClaw 官方文档:《安装指南》和《安全指南》
- OpenClaw 中文安装教程(博客园、CSDN)
- OpenClaw 安全配置案例(DAMO 资深开发者博客)
- Windows 安全文档:微软官方对 WDAC 和 AppLocker 的介绍
- Python 离线安装指南(CSDN)
发表回复