网络策略
NemoClaw 使用默认严格的网络策略运行。 沙箱只能访问明确允许的端点。 任何对未列出目标的请求都会被 OpenShell 拦截,操作员会通过 TUI 被提示实时审批或拒绝。
基线策略
基线策略定义在 nemoclaw-blueprint/policies/openclaw-sandbox.yaml 中。
文件系统
| 路径 | 访问权限 |
|---|---|
/sandbox, /tmp, /dev/null | 读写 |
/usr, /lib, /proc, /dev/urandom, /app, /etc, /var/log | 只读 |
沙箱进程以专用的 sandbox 用户和组运行。
Landlock LSM 强制执行按最佳效果应用。
网络策略
以下端点组默认被允许:
| 策略 | 端点 | 二进制程序 | 规则 |
|---|---|---|---|
claude_code | api.anthropic.com:443, statsig.anthropic.com:443, sentry.io:443 | /usr/local/bin/claude | 所有方法 |
nvidia | integrate.api.nvidia.com:443, inference-api.nvidia.com:443 | /usr/local/bin/claude, /usr/local/bin/openclaw | 所有方法 |
github | github.com:443 | /usr/bin/gh, /usr/bin/git | 所有方法,所有路径 |
github_rest_api | api.github.com:443 | /usr/bin/gh | GET, POST, PATCH, PUT, DELETE |
clawhub | clawhub.com:443 | /usr/local/bin/openclaw | GET, POST |
openclaw_api | openclaw.ai:443 | /usr/local/bin/openclaw | GET, POST |
openclaw_docs | docs.openclaw.ai:443 | /usr/local/bin/openclaw | 仅 GET |
npm_registry | registry.npmjs.org:443 | /usr/local/bin/openclaw, /usr/local/bin/npm | 仅 GET |
telegram | api.telegram.org:443 | 任何二进制程序 | 在 /bot*/** 上的 GET, POST |
所有端点使用 TLS 终止,并在端口 443 上强制执行。
推理
基线策略仅允许 local 推理路由。外部推理提供者通过 OpenShell gateway 访问,而非通过沙箱直接出站。
操作员审批流程
当代理尝试访问策略中未列出的端点时,OpenShell 拦截请求并在 TUI 中呈现给操作员审查:
- 代理向未列出的主机发起网络请求。
- OpenShell 阻止连接并记录该尝试。
- TUI 命令
openshell term显示被阻止的请求,包括主机、端口和请求二进制程序。 - 操作员审批或拒绝该请求。
- 如果审批,该端点在当前会话期间被添加到运行策略中。
要试用此功能,运行演练:
$ ./scripts/walkthrough.sh
这将打开一个分屏的 tmux 会话,左侧是 TUI,右侧是代理。
修改策略
静态更改
编辑 nemoclaw-blueprint/policies/openclaw-sandbox.yaml 并重新运行引导向导:
$ nemoclaw onboard
动态更改
将策略更新应用到运行中的沙箱而无需重启:
$ openshell policy set <policy-file>