网络策略

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_codeapi.anthropic.com:443, statsig.anthropic.com:443, sentry.io:443/usr/local/bin/claude所有方法
nvidiaintegrate.api.nvidia.com:443, inference-api.nvidia.com:443/usr/local/bin/claude, /usr/local/bin/openclaw所有方法
githubgithub.com:443/usr/bin/gh, /usr/bin/git所有方法,所有路径
github_rest_apiapi.github.com:443/usr/bin/ghGET, POST, PATCH, PUT, DELETE
clawhubclawhub.com:443/usr/local/bin/openclawGET, POST
openclaw_apiopenclaw.ai:443/usr/local/bin/openclawGET, POST
openclaw_docsdocs.openclaw.ai:443/usr/local/bin/openclaw仅 GET
npm_registryregistry.npmjs.org:443/usr/local/bin/openclaw, /usr/local/bin/npm仅 GET
telegramapi.telegram.org:443任何二进制程序/bot*/** 上的 GET, POST

所有端点使用 TLS 终止,并在端口 443 上强制执行。

推理

基线策略仅允许 local 推理路由。外部推理提供者通过 OpenShell gateway 访问,而非通过沙箱直接出站。

操作员审批流程

当代理尝试访问策略中未列出的端点时,OpenShell 拦截请求并在 TUI 中呈现给操作员审查:

  1. 代理向未列出的主机发起网络请求。
  2. OpenShell 阻止连接并记录该尝试。
  3. TUI 命令 openshell term 显示被阻止的请求,包括主机、端口和请求二进制程序。
  4. 操作员审批或拒绝该请求。
  5. 如果审批,该端点在当前会话期间被添加到运行策略中。

要试用此功能,运行演练:

$ ./scripts/walkthrough.sh

这将打开一个分屏的 tmux 会话,左侧是 TUI,右侧是代理。

修改策略

静态更改

编辑 nemoclaw-blueprint/policies/openclaw-sandbox.yaml 并重新运行引导向导:

$ nemoclaw onboard

动态更改

将策略更新应用到运行中的沙箱而无需重启:

$ openshell policy set <policy-file>