NanoClaw는 이러한 불필요한 추상화 구조를 전면 제거하고 오직 대화 상태 관리와 철저히 격리된 런타임 샌드박스만을 제공하는 초경량 엔터프라이즈 에이전트 엔진입니다. 본 백서는 NanoClaw의 내부 통신 아키텍처 메커니즘을 낱낱이 규명하고, 시스템 엔지니어가 베어메탈 인프라 혹은 선언형 컨테이너 오케스트레이션 환경 위에 자격 증명을 완벽히 은닉하여 안전하게 구동할 수 있도록 주석 제어 플래그를 결합한 실전 인프라 엔지니어링 가이드입니다.
NanoClaw 엔터프라이즈 로컬 AI — 3편 마스터 시리즈
개념 및 아키텍처: 왜 NanoClaw인가?
네트워크 소켓 포트를 상시 개방하여 API 통신을 주고받는 대다수의 전통적인 에이전트 아키텍처와 달리, NanoClaw는 호스트의 중앙 제어 코어와 하위 가상 샌드박스가 JSON IPC 파일 폴링(Polling) 방식으로 데이터를 은밀하게 교환하도록 설계되었습니다. 사설망 내부라 할지라도 포트 노출 자체가 원천적으로 제거되기 때문에 외부 침투 시 흔히 발생하는 내부 포트 스캔 및 중간자 공격(MITM) 패킷 스니핑 경로가 시작점부터 무력화됩니다.
코어 프로세스간 통신(IPC) 및 자원 제어 플로우
핵심 작동 매커니즘: 사용자의 요청에 따라 에이전트가 자율 연산 코드를 실행할 때, 호스트 파일 시스템과 완벽히 독립된 일회성 마이크로 컨테이너가 동적으로 생성됩니다. 상위 코어는 지정된 디렉토리의 JSON 파일 변경 사항을 0.2초 주기로 폴링하여 연산 결과값을 안전하게 회수하고 컨테이너를 즉시 파괴합니다. 이를 통해 영구적인 백도어 상주 가능성을 기술적으로 차단합니다.
방법 A: CLI 기반 수동 빌드 및 디렉토리 스키마 정의
리눅스 호스트 네이티브 커널 환경에 서비스를 밀착시키고 정밀한 파일 시스템 권한 제어(DAC) 스키마를 단독으로 수립하려는 인프라 엔지니어를 위한 정석적인 수동 구축 경로입니다.
보안 분리를 위해 에이전트 핵심 아티팩트, 상태 지속형 SQLite 스토리지, 가상 통신을 위한 임시 IPC 채널 레이아웃 공간을 각각 격리하여 분할 생성합니다.
모든 디렉토리의 소유권을 실행 전용 비루트 계정(UID: 1000)으로 강제 적용하고, 특히 Credential 저장소는 chmod 700으로 격리하여 일반 계정 및 웹 데몬을 통한 루트 탈취 리스크를 원천 봉쇄합니다.
npm ci를 구동하여 락파일의 무결성을 100% 검증하면서 의존성을 설치하고, TypeScript 소스 코드를 호스트가 고속 실행할 수 있는 순수 JavaScript 산출물로 빌드합니다.
# 1. 시스템 핵심 보안 디렉토리 스키마 레이아웃 선언 sudo mkdir -p /opt/nanoclaw/{core,storage,ipc,vault} # 2. UID/GID 1000 전용 서비스 계정에 소유권을 할당하여 호스트 root 권한 장악 위험 무력화 sudo chown -R 1000:1000 /opt/nanoclaw sudo chmod 700 /opt/nanoclaw/vault # Vault 보안 민감 정보 저장소는 타 계정 접근을 전면 차단 sudo chmod 770 /opt/nanoclaw/ipc # 가상 컨테이너 스택과의 고속 통신을 위해 그룹 쓰기 권한만 제한적 개방 # 3. 소스 리포지토리 동기화 및 클린 락파일 프로덕션 인스톨 cd /opt/nanoclaw/core git clone https://github.com/alexwbaumann/nanoclaw.git . npm ci --only=production # 4. TypeScript 소스코드를 프로덕션 구동용 JavaScript 산출물로 변환 npm run build # 5. 자율 코드가 실행될 격리 전용 마이크로 샌드박스 도커 이미지 레이어 빌드 docker build -t autoclawn/sandbox:latest -f ./docker/Dockerfile.sandbox .
방법 B: Docker Compose 기반 프로덕션 오케스트레이션
기존에 안정적으로 운용 중인 홈랩 엔터프라이즈 인프라 가상화 레이어 위에 다중 마이크로서비스 형태로 통합 정착시킬 때 가장 가시성이 높고 강력히 추천되는 선언형 구축 경로입니다. DooD(Docker-outside-of-Docker) 가상화 구조를 채택하여, 컨테이너화된 NanoClaw 코어 엔진이 가상 에이전트 샌드박스를 호스트의 격리된 도커 데몬 커널 위에 하위 병렬 프로세스로 스폰할 수 있도록 바인딩합니다.
node:18-alpine 공식 이미지를 기반으로 하며 비루트 실행 계정을 강제 고정합니다.nanoclaw-net 단독 할당으로 호스트 외부망과의 불필요한 포트 간섭을 원천 차단합니다.호스트 디렉토리 바인드 마운트 볼륨 상세 스키마
version: '3.8'
services:
nanoclaw-core:
image: node:18-alpine
container_name: nanoclaw-core
restart: always
user: "1000:1000" # 호스트 커널 보안 위협 및 컨테이너 탈옥을 방지하기 위한 비루트 계정 고정
working_dir: /opt/nanoclaw/core
volumes:
- /opt/nanoclaw/core:/opt/nanoclaw/core
- /opt/nanoclaw/storage:/opt/nanoclaw/storage
- /opt/nanoclaw/ipc:/opt/nanoclaw/ipc
- /var/run/docker.sock:/var/run/docker.sock # DooD 구현을 위해 호스트 도커 소켓 바인딩 (주의 요망)
environment:
- NODE_ENV=production
env_file:
- /opt/nanoclaw/core/.env
command: sh -c "node dist/index.js"
logging:
driver: "json-file"
options:
max-size: "10m" # 대규모 트래픽 가동 시 디스크 공간 고갈 예방을 위한 10MB 로그 롤링 설정
max-file: "3"
networks:
- nanoclaw-net
networks:
nanoclaw-net:
driver: bridge
internal: false # Anthropic Claude 3.5 Sonnet 외부 공식 API 인프라와의 통신을 위한 WAN 게이트웨이 개방프로덕션 환경 상세 설정 및 하이퍼파라미터 리소스 자원 튜닝
대규모 멀티스레드 세션 트래픽 및 복잡한 자율 코드 연산 가동 시 발생하는 호스트 서버의 CPU/메모리 쓰레싱(Thrashing) 및 리소스 자원 고갈 현상을 방지하려면, 핵심 환경설정 프로필인 `.env` 단에서 하드웨어 슬롯 점유 임계 상한선을 하드하게 제어해야 합니다.
| 환경 변수 키값 | 상태 타입 | 추천 구성 스펙값 | 기능 설명 및 리소스 조율 목적 |
|---|---|---|---|
| ANTHROPIC_API_KEY | REQUIRED | sk-ant-api03… | Claude 최상위 추론 모델 연동 및 대화 파싱을 위한 마스터 핵심 인증 토큰 |
| MAX_CONCURRENT_CONTAINERS | OPTIONAL | 4 | 동시 스폰 가능한 하위 에이전트 가상 샌드박스의 절대적인 개수 제한 (컨텍스트 폭주 방지) |
| CONTAINER_TIMEOUT_SEC | OPTIONAL | 120 | 에이전트가 자율 작성한 스크립트의 악성 무한 루프 진입 시 프로세스를 강제 차단하는 임계 시간 |
| SANDBOX_MEMORY_LIMIT | OPTIONAL | 512m | 단일 에이전트 샌드박스가 점유 가능한 최대 호스트 메모리 할당 캡핑 (Cgroup 제한) |
NODE_ENV=production STORAGE_PATH=/opt/nanoclaw/storage IPC_DIR_PATH=/opt/nanoclaw/ipc DATABASE_URL=file:/opt/nanoclaw/storage/nanoclaw.db # [Homelab 하드웨어 CPU / 디스크 I/O 자원 방어 프로필 세팅] MAX_CONCURRENT_CONTAINERS=4 CONTAINER_TIMEOUT_SEC=120 IPC_POLLING_INTERVAL_MS=200 # [하위 샌드박스 Micro-Container 제어 하이퍼바이저 Cgroup 캡 제한] SANDBOX_MEMORY_LIMIT=512m SANDBOX_CPU_QUOTA=50000 # 단일 컨테이너가 호스트 CPU 코어 자원의 최대 50%를 넘지 못하도록 원천 제한
커널 격리, systemd 데몬 등록 및 Vault 기반 보안 하드닝
자율형 에이전트는 사용자의 고도화된 시스템 의도나 파일 컨텍스트 상태에 기반하여 스스로 파이썬 소스 코드나 대규모 쉘 스크립트를 작성하고 샌드박스 내부에서 즉시 실행(Execution)하는 막강한 권한을 가집니다. 따라서 매우 삼엄한 수준의 호스트 보안 하드닝 레이어를 구축해야 합니다.
- 자율 코드를 직접 실행하는 하위 에이전트 내부 가상 컨테이너에는 호스트의
docker.sock볼륨을 절대 마운트해서는 안 됩니다. 프롬프트 주입(Prompt Injection) 공격으로 컨테이너 탈옥이 발생할 경우, 호스트 베어메탈 전체 커널의 root 제어권이 완벽히 피탈되어 전체 인프라망이 붕괴될 수 있습니다. - 샌드박스 내부 런타임 메모리에 API 마스터 비밀키 직접 상주 금지: 환경변수로 클라우드 토큰을 직접 주입하면 탈옥 스크립트
printenv혹은cat /proc/self/environ단 한 줄에 마스터 토큰이 외부로 영구 유출됩니다.
- Vault 파일 가로채기(Intercept) 격리 아키텍처 운영: API 인증 및 외부 통신은 오직 인터넷망이 허용되고 외부와 철저히 단절된 호스트 세이프존 영역의 상위 코어 엔진에서만 수행하고, 연산 결과 패킷 데이터만 JSON 파일 교환소(IPC Volume)를 통해 에이전트에 공급하는 2-Tier 구조를 고수하십시오.
- 에이전트 컨테이너의 아웃바운드 네트워크 스택 원천 차단: 실시간 웹 검색 스킬이 요구되지 않는 대다수의 코드 실행 세션의 경우 도커 컴포즈 실행 플래그에
--network none옵션을 강제 고정하여 사설망 내부의 타 스토리지(NAS)나 하드웨어 노드로 웜 바이러스 및 횡적 이동(Lateral Movement) 위협이 전파되는 시도를 차단하십시오.
호스트 백그라운드 영속 구동을 위한 systemd 서비스 유닛 정의
[Unit] Description=NanoClaw Enterprise Agent Core Service After=network.target docker.service Requires=docker.service [Service] Type=simple User=1000 Group=1000 WorkingDirectory=/opt/nanoclaw/core Environment=NODE_ENV=production ExecStart=/usr/bin/node dist/index.js Restart=always RestartSec=5 StandardOutput=journal StandardError=journal [Install] WantedBy=multi-user.target
상기 명시된 systemd 백그라운드 관리 데몬 등록 명령(sudo systemctl enable --now nanoclaw.service) 혹은 선언형 Compose 가동 명령을 통해 완전 무결한 샌드박스 가상망 배포가 모두 성공적으로 종결되었습니다. 이로써 외부 공격에 완벽히 면역력을 갖춘 코어 컴퓨팅 기반이 마련되었습니다. 이어지는 2편 백서에서는 본 인프라망을 실전 상용 메신저 클라이언트 허브와 물리 결합하고, 벡터 DB 없이 컨텍스트를 유지하는 고속 지식 레이어를 설계하는 단계로 진입합니다.
