NanoClaw 마스터 가이드: 아키텍처부터 DooD 도커 가상화 설치까지 (1/3)

NanoClaw Core Sandbox Virtualization DooD Architecture Kernel Hardening Homelab Enterprise
Author Evan Lee
Target Environment Ubuntu Server & Docker v26+
Security Level Hardened Vault
현대 AI 오케스트레이션 프레임워크들은 수백 개의 불투명한 외부 종속성 패키지로 인해 호스트 자원 고갈 및 공급망 공격(Supply Chain Attack)이라는 잠재적 시스템 위협을 내포하고 있습니다. 특히 에이전트가 자율적으로 코드를 생성하고 실행하는 환경에서는 단 한 번의 프롬프트 주입 공격으로도 호스트 전체 커널 권한이 피탈될 수 있는 치명적인 위험이 존재합니다.

NanoClaw는 이러한 불필요한 추상화 구조를 전면 제거하고 오직 대화 상태 관리와 철저히 격리된 런타임 샌드박스만을 제공하는 초경량 엔터프라이즈 에이전트 엔진입니다. 본 백서는 NanoClaw의 내부 통신 아키텍처 메커니즘을 낱낱이 규명하고, 시스템 엔지니어가 베어메탈 인프라 혹은 선언형 컨테이너 오케스트레이션 환경 위에 자격 증명을 완벽히 은닉하여 안전하게 구동할 수 있도록 주석 제어 플래그를 결합한 실전 인프라 엔지니어링 가이드입니다.
SERIES TOC

NanoClaw 엔터프라이즈 로컬 AI — 3편 마스터 시리즈

01
🐳 NanoClaw 마스터 가이드 — 아키텍처 설계부터 DooD 가상화 배포까지 ← 현재 글
개념·아키텍처 CLI 수동 빌드 DooD 오케스트레이션 리소스 자원 튜닝 Vault 보안 하드닝
Pillar
02
🧠 코어 기능 딥다이브 — 메시징 I/O 파이프라인 및 격리형 지식 영속화
채널 그리드 명세 CLAUDE.md 지식층 프롬프트 가드레일 통합 가동 테스트
코어
03
⚡ 실전 엔터프라이즈 활용 — 비동기 작업 큐, 샌드박스 스킬 및 Swarm 군집 제어
Cron 비동기 큐 가상 샌드박스 Swarm 오케스트레이션 통합 검증 프로토콜
실전
1
개념 및 아키텍처: 왜 NanoClaw인가? (IPC 메커니즘 개요)
2
방법 A: CLI 기반 수동 빌드 및 디렉토리 권한 스키마 정의
3
방법 B: Docker Compose 기반 프로덕션 DooD 오케스트레이션
4
프로덕션 환경 상세 설정 및 하이퍼파라미터 리소스 자원 튜닝
5
커널 격리, systemd 데몬 등록 및 Vault 기반 보안 하드닝
STEP01

개념 및 아키텍처: 왜 NanoClaw인가?

네트워크 소켓 포트를 상시 개방하여 API 통신을 주고받는 대다수의 전통적인 에이전트 아키텍처와 달리, NanoClaw는 호스트의 중앙 제어 코어와 하위 가상 샌드박스가 JSON IPC 파일 폴링(Polling) 방식으로 데이터를 은밀하게 교환하도록 설계되었습니다. 사설망 내부라 할지라도 포트 노출 자체가 원천적으로 제거되기 때문에 외부 침투 시 흔히 발생하는 내부 포트 스캔 및 중간자 공격(MITM) 패킷 스니핑 경로가 시작점부터 무력화됩니다.

코어 프로세스간 통신(IPC) 및 자원 제어 플로우

Host Core Event Loop (index.ts) 비동기 런타임 이벤트 리스너 상시 대기 및 인바운드 스트림 감시
├── SQLite Engine (db.ts) 세션 데이터, 영구 대화 이력 상태값 원자적(Atomic) 기록 및 보존
└── Group Work Queue (group-queue.ts) 동시성 제어 및 메시지 유실 방지를 위한 FIFO 파이프라인 정렬
└── DooD Runner (container-runner.ts) 호스트 커널 자원과 완전히 단절된 독립 일회성(Ephemeral) 컨테이너 스폰
└── JSON IPC Volumes 포트 개방 없는 디스크 상태 변화 파일 트래킹 기반 양방향 데이터 교환

핵심 작동 매커니즘: 사용자의 요청에 따라 에이전트가 자율 연산 코드를 실행할 때, 호스트 파일 시스템과 완벽히 독립된 일회성 마이크로 컨테이너가 동적으로 생성됩니다. 상위 코어는 지정된 디렉토리의 JSON 파일 변경 사항을 0.2초 주기로 폴링하여 연산 결과값을 안전하게 회수하고 컨테이너를 즉시 파괴합니다. 이를 통해 영구적인 백도어 상주 가능성을 기술적으로 차단합니다.

STEP02

방법 A: CLI 기반 수동 빌드 및 디렉토리 스키마 정의

리눅스 호스트 네이티브 커널 환경에 서비스를 밀착시키고 정밀한 파일 시스템 권한 제어(DAC) 스키마를 단독으로 수립하려는 인프라 엔지니어를 위한 정석적인 수동 구축 경로입니다.

1
물리 디렉토리 구조도 하드코어 생성

보안 분리를 위해 에이전트 핵심 아티팩트, 상태 지속형 SQLite 스토리지, 가상 통신을 위한 임시 IPC 채널 레이아웃 공간을 각각 격리하여 분할 생성합니다.

2
리눅스 DAC(권한 제어) 하드닝 적용

모든 디렉토리의 소유권을 실행 전용 비루트 계정(UID: 1000)으로 강제 적용하고, 특히 Credential 저장소는 chmod 700으로 격리하여 일반 계정 및 웹 데몬을 통한 루트 탈취 리스크를 원천 봉쇄합니다.

3
의존성 트리 인스톨 및 프로덕션 컴파일

npm ci를 구동하여 락파일의 무결성을 100% 검증하면서 의존성을 설치하고, TypeScript 소스 코드를 호스트가 고속 실행할 수 있는 순수 JavaScript 산출물로 빌드합니다.

Target Environment Terminal (Root Scope)
Bash Shell (Annotated Installation)
# 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 .
STEP03

방법 B: Docker Compose 기반 프로덕션 오케스트레이션

기존에 안정적으로 운용 중인 홈랩 엔터프라이즈 인프라 가상화 레이어 위에 다중 마이크로서비스 형태로 통합 정착시킬 때 가장 가시성이 높고 강력히 추천되는 선언형 구축 경로입니다. DooD(Docker-outside-of-Docker) 가상화 구조를 채택하여, 컨테이너화된 NanoClaw 코어 엔진이 가상 에이전트 샌드박스를 호스트의 격리된 도커 데몬 커널 위에 하위 병렬 프로세스로 스폰할 수 있도록 바인딩합니다.

DooD 가상 인프라 서비스 아키텍처 명세
🐋
NanoClaw Core Engine Container (nanoclaw-core)
비동기 FIFO 작업 큐 처리, SQLite 트랜잭션 관리 및 외부 메신저 I/O 스트림 제어의 중앙 관제탑 역할을 수행합니다.
REQUIRED CPU-BOUND
Runtime Environment & Base OS
경량화 및 취약점 최소화를 위해 node:18-alpine 공식 이미지를 기반으로 하며 비루트 실행 계정을 강제 고정합니다.
Network Bindings
내부 가상 브리지 격리 가속망인 nanoclaw-net 단독 할당으로 호스트 외부망과의 불필요한 포트 간섭을 원천 차단합니다.

호스트 디렉토리 바인드 마운트 볼륨 상세 스키마

/opt/nanoclaw/storage
nanoclaw-core (Read/Write)
SQLite 데이터베이스 자산 및 각 단체 대화방, 채널별 장기 지속 컨텍스트 기억 소스 보존 매핑
Persistent Layer
/var/run/docker.sock
Host Docker Daemon (Socket)
DooD 환경 가동을 위해 상위 코어가 호스트의 도커 커널을 공유하여 하위 가상 샌드박스를 동적 스폰할 수 있는 특권 부여
Kernel Bridge
/opt/nanoclaw/core/docker-compose.yml
YAML Configuration (Line-by-Line Annotated)
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 게이트웨이 개방
STEP04

프로덕션 환경 상세 설정 및 하이퍼파라미터 리소스 자원 튜닝

대규모 멀티스레드 세션 트래픽 및 복잡한 자율 코드 연산 가동 시 발생하는 호스트 서버의 CPU/메모리 쓰레싱(Thrashing) 및 리소스 자원 고갈 현상을 방지하려면, 핵심 환경설정 프로필인 `.env` 단에서 하드웨어 슬롯 점유 임계 상한선을 하드하게 제어해야 합니다.

NanoClaw 하이퍼파라미터 변수 제어 명세표 /opt/nanoclaw/core/.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 제한)
/opt/nanoclaw/core/.env
Production .env Script Blueprint
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%를 넘지 못하도록 원천 제한
STEP05

커널 격리, systemd 데몬 등록 및 Vault 기반 보안 하드닝

자율형 에이전트는 사용자의 고도화된 시스템 의도나 파일 컨텍스트 상태에 기반하여 스스로 파이썬 소스 코드나 대규모 쉘 스크립트를 작성하고 샌드박스 내부에서 즉시 실행(Execution)하는 막강한 권한을 가집니다. 따라서 매우 삼엄한 수준의 호스트 보안 하드닝 레이어를 구축해야 합니다.

치명적인 아키텍처 결함 및 보안 위협 (Pitfalls)
  • 자율 코드를 직접 실행하는 하위 에이전트 내부 가상 컨테이너에는 호스트의 docker.sock 볼륨을 절대 마운트해서는 안 됩니다. 프롬프트 주입(Prompt Injection) 공격으로 컨테이너 탈옥이 발생할 경우, 호스트 베어메탈 전체 커널의 root 제어권이 완벽히 피탈되어 전체 인프라망이 붕괴될 수 있습니다.
  • 샌드박스 내부 런타임 메모리에 API 마스터 비밀키 직접 상주 금지: 환경변수로 클라우드 토큰을 직접 주입하면 탈옥 스크립트 printenv 혹은 cat /proc/self/environ 단 한 줄에 마스터 토큰이 외부로 영구 유출됩니다.
추천 보안 하드닝 및 대응 전략 (Best Practices)
  • Vault 파일 가로채기(Intercept) 격리 아키텍처 운영: API 인증 및 외부 통신은 오직 인터넷망이 허용되고 외부와 철저히 단절된 호스트 세이프존 영역의 상위 코어 엔진에서만 수행하고, 연산 결과 패킷 데이터만 JSON 파일 교환소(IPC Volume)를 통해 에이전트에 공급하는 2-Tier 구조를 고수하십시오.
  • 에이전트 컨테이너의 아웃바운드 네트워크 스택 원천 차단: 실시간 웹 검색 스킬이 요구되지 않는 대다수의 코드 실행 세션의 경우 도커 컴포즈 실행 플래그에 --network none 옵션을 강제 고정하여 사설망 내부의 타 스토리지(NAS)나 하드웨어 노드로 웜 바이러스 및 횡적 이동(Lateral Movement) 위협이 전파되는 시도를 차단하십시오.

호스트 백그라운드 영속 구동을 위한 systemd 서비스 유닛 정의

/etc/systemd/system/nanoclaw.service
Systemd Service Unit Configuration
[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
✔️
1편 인프라 구축 점검 완료 가이드

상기 명시된 systemd 백그라운드 관리 데몬 등록 명령(sudo systemctl enable --now nanoclaw.service) 혹은 선언형 Compose 가동 명령을 통해 완전 무결한 샌드박스 가상망 배포가 모두 성공적으로 종결되었습니다. 이로써 외부 공격에 완벽히 면역력을 갖춘 코어 컴퓨팅 기반이 마련되었습니다. 이어지는 2편 백서에서는 본 인프라망을 실전 상용 메신저 클라이언트 허브와 물리 결합하고, 벡터 DB 없이 컨텍스트를 유지하는 고속 지식 레이어를 설계하는 단계로 진입합니다.

📚 시리즈 다른 글 보기

Leave a reply

Please enter your comment!
Please enter your name here