开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

开启沙箱隔离

技能执行需与主机系统完全隔离,禁止沙箱内操作访问主机核心资源。启动沙箱时应严格限制沙箱权限,确保遵循最小化权限原则。

操作步骤

  • 方式一:

    需要确保已安装Docker,并且构建或拉取镜像openclaw-sandbox:bookworm-slim

    1. 设置沙箱模式为all,即所有会话都沙箱化。
      openclaw config set agents.defaults.sandbox.mode "all"
    2. (可选)设置沙箱作用域,默认session。
      openclaw config set agents.defaults.sandbox.scope "session"
    3. (可选)设置工作区访问权限。
      openclaw config set agents.defaults.sandbox.workspaceAccess "none"
    4. 重启OpenClaw网关。
      openclaw gateway restart
  • 方式二
    1. 打开配置文件。
      vim ~/.openclaw/openclaw.json
    2. 按“i”进入编辑模式,请添加如下内容。
      {
        "agents": {
          "defaults": {
            "sandbox": {
              "mode": "all",
              "scope": "session",
              "workspaceAccess": "none"
            }
          }
        }
      }
      表1 参数说明

      参数

      说明

      mode

      • off:关闭沙箱隔离功能。
      • non-main:仅群组/渠道会话进沙箱。
      • all:所有会话进沙箱。

      scope

      • session:每会话独立容器。
      • agent:每Agent共用容器。
      • shared:所有会话共享容器。

      workspaceAccess

      • none:完全隔离。
      • ro:只读挂载工作区。
      • rw:可以修改文件。

      以下为推荐的最低安全配置,沙箱配置根据实际应用情况进行配置。

      {
        "agents": {
          "defaults": {
            "sandbox": {
              "mode": "all",
              "workspaceAccess": "none",
              "scope": "session",
              "docker": {
                "image": "openclaw-sandbox:bookworm-slim",
                "readOnlyRoot": true,
                "network": "none",
                "binds": [
                  "/home/username/workspace:/workspace:ro"
                ]
              }
            }
          }
        }
      }
      表2 workspaceAccess参数说明

      可选值

      说明

      适用场景

      none(推荐)

      沙箱只能访问~/.openclaw/sandboxes下的临时工作区。

      完全隔离,最安全。

      ro

      以只读方式挂载Agent工作区到/agent。

      需要读取代码但不应修改。

      rw

      以读写方式挂载到/workspace。

      需要持久化写入的场景(风险高)。

      禁止配置以下高危选项。

      危险配置

      禁止值

      风险

      docker.network

      host

      绕过网络隔离,直接访问宿主机网络。

      docker.seccompProfile

      unconfined

      禁用Seccomp安全策略。

      docker.apparmorProfile

      unconfined

      禁用AppArmor安全策略。

      docker.binds

      挂载/etc、/proc、/sys、/dev、Docker socket

      敏感路径暴露,可能导致容器逃逸。

    3. 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
    4. 重启OpenClaw网关。
      openclaw gateway restart