6.绑定挂载BindMounts6.1配置方式配置位置agents.defaults.sandbox.docker.binds{agents: {defaults: {sandbox: {docker: {binds: [/home/user/source:/source:ro, // 只读挂载/var/data/myapp:/data:ro]}}}}}格式host_path:container_path:mode6.2安全限制OpenClaw 自动阻止危险的绑定挂载源阻止的路径原因/var/run/docker.sockDocker 逃逸风险/etc系统配置泄露/proc进程信息泄露/sys内核信息泄露/dev设备访问风险最佳实践{// ✅ 推荐只读挂载binds: [/home/user/source:/source:ro]// ❌ 避免读写挂载敏感目录binds: [/home/user/.ssh:/ssh:rw]// ⚠️ 谨慎仅在必要时使用读写binds: [/tmp/sandbox:/tmp:rw]}7.执行流程7.1容器生命周期图 - 沙箱容器生命周期7.2工具执行流程步骤详解策略决策检查沙箱模式mode确定目标容器scope验证工具策略allow/deny容器准备检查容器是否存在如不存在创建新容器应用配置网络、挂载、环境变量工具执行在容器内执行工具捕获 stdout/stderr应用输出限制200KB结果返回返回执行结果给 GatewayGateway 转发给 AI 模型8.沙箱浏览器隔离8.1架构{agents: {defaults: {sandbox: {browser: {autoStart: true, // 自动启动autoStartTimeoutMs: 30000, // 启动超时network: openclaw-sandbox-browser, // 专用网络cdpSourceRange: 172.21.0.1/32, // CDPChrome DevTools Protocol 访问限制allowHostControl: false // 禁止控制主机浏览器}}}}}8.2 Chromium安全参数--remote-debugging-address127.0.0.1--remote-debugging-portCDP_PORT--user-data-dir${HOME}/.chrome--no-first-run--no-default-browser-check--disable-3d-apis--disable-gpu--disable-dev-shm-usage--disable-background-networking--disable-extensions--no-zygote--no-sandbox--disable-setuid-sandbox9.安全加固配置9.1最小权限配置{agents: {defaults: {sandbox: {mode: non-main,scope: session,workspaceAccess: none,docker: {image: openclaw-sandbox:bookworm-slim,network: none,binds: [],setupCommand: }}}},tools: {sandbox: {tools: {allow: [group:messaging, read],deny: [group:runtime, group:fs, group:ui]}}}}9.2生产环境配置{agents: {defaults: {sandbox: {mode: non-main,scope: session,workspaceAccess: ro,docker: {image: openclaw-sandbox-common:bookworm-slim,network: none,binds: [/home/user/source:/source:ro,/var/data/app:/data:ro]}}}},tools: {exec: {security: allowlist,ask: on-miss,allowlist: [{pattern: ~/Projects/**/bin/**,description: 项目构建工具}]}}}10.调试与诊断10.1诊断命令# 查看沙箱配置openclaw sandbox explain# 查看特定会话openclaw sandbox explain--sessionagent:main:main# 查看特定代理openclaw sandbox explain--agentwork# JSON 输出openclaw sandbox explain--json10.2常见问题问题原因解决方案工具被阻止沙箱工具策略拒绝检查 tools.sandbox.tools网络访问失败network: none更改网络配置谨慎挂载失败路径被阻止使用允许的路径容器创建失败Docker 未运行启动 Docker 服务11.总结11.1安全架构层次┌─────────────────────────────────────────┐│ L1: Gateway 策略决策 │├─────────────────────────────────────────┤│ L2: Docker 容器隔离 ││ - Namespaces (PID/Mount/Network) ││ - Cgroups (资源限制) ││ - Capabilities (权限控制) │├─────────────────────────────────────────┤│ L3: 绑定挂载控制 ││ - 阻止危险路径 ││ - 只读优先原则 │├─────────────────────────────────────────┤│ L4: 网络隔离 ││ - 默认无网络 ││ - 专用网络浏览器 │└─────────────────────────────────────────┘11.2最佳实践实践说明✅ 启用沙箱至少使用 non-main 模式✅ 会话隔离使用 scope: session✅ 最小权限workspaceAccess: none 或 ro✅ 网络限制默认 network: none✅ 只读挂载绑定挂载使用 :ro 模式✅ 定期审计运行 openclaw security audit