네트워크 정책
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>