ネットワークポリシー
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
左にTUI、右にエージェントが表示される分割tmuxセッションが開きます。
ポリシーの変更
静的変更
nemoclaw-blueprint/policies/openclaw-sandbox.yamlを編集し、オンボードウィザードを再実行:
$ nemoclaw onboard
動的変更
サンドボックスを再起動せずにポリシー更新を適用:
$ openshell policy set <policy-file>