Windows:从零开始搭建OpenClaw

简介

本文主要介绍如何在一台全新 Windows 10/11(专业/企业版)机器上从零开始安装并配置 OpenClaw,并实现严格的最小权限沙箱隔离策略。首先介绍所需环境和安装步骤,包括 Node.js、npm、Git、Python 等依赖,以及 OpenClaw 的下载安装与初始化命令。然后重点设计访问控制方案:在文件系统层面构建白名单目录,利用 NTFS ACL 严格限制 OpenClaw 服务账户的读写权限;在系统层面使用 Windows Defender 应用控制(WDAC)AppLocker 等策略只允许认证的可执行文件运行[32][34]

OpenClaw 本身通过配置文件实现 Token 和技能权限管理:例如仅允许必要的 Shell/文件/网络工具,禁止 execreadwrite 等高风险操作[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

  1. 全局安装 CLI:在管理员 PowerShell 下执行:
    npm install -g openclaw@latest

    该命令使用 npm 安装 OpenClaw 最新稳定版。安装成功后,可通过 openclaw --version 验证版本[41]

  2. 初始化配置:运行 Onboarding 向导:
    openclaw onboard --flow quickstart

    向导会引导配置 AI 模型、聊天渠道和技能模块。首次运行时提示:“I understand this is powerful and inherently risky. Continue?”,请选择“Yes”确认继续[41]

  3. 启动网关:完成配置后,启动后台网关服务:
    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)


已发布

分类

来自

标签:

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注