OpenClaw 유저 2,000명이 보안 뚫렸어요. Docker 안전 설치법

OpenClaw 기본값이 0.0.0.0 바인딩이라 다 노출돼요. 5단계 보안 Docker 가이드, 흔한 에러 해결, 비용 0원.

@KanikaBK (275 좋아요, 2.58만 조회)가 직설적으로 말했어요: “이번 달에만 2,000명 이상이 API 키, 파일, 명령어를 노출하고 있다.”

OpenClaw 기본값이 0.0.0.0:18789에 바인딩돼요. 모든 네트워크 인터페이스, 공용 인터넷 포함이에요. SecurityScorecard가 13만 5천 개 이상 노출된 인스턴스를 발견했어요. Docker가 이걸 고쳐줘요.

이 가이드는 Docker를 한 번도 만져본 적 없어도 10분 안에 보안된 OpenClaw 에이전트를 돌릴 수 있게 해줘요.


왜 Docker인가 (베어메탈 말고)

세 가지 이유예요:

  1. 격리. 에이전트가 컨테이너 안에서 돌아가요. 폭주해도 호스트 시스템에 접근 못 해요.
  2. 보안 기본값. Docker로 capability 드롭, 네트워크 제한, 읽기 전용 파일시스템 강제가 가능해요.
  3. 재현성. 어떤 머신이든 같은 셋업. “내 맥에서는 되는데” 문제 없어요.

@johann_sath (251 좋아요, 1.4만 조회)가 핵심을 짚었어요: “메인 에이전트 = 루트 컨테이너. 서브에이전트 = 격리된 컨테이너. 대부분 1일 차에 봇한테 풀 액세스를 줘요.” 대부분이 되지 마세요.


준비물

세 가지만 있으면 돼요:

  • Docker Desktop (Mac/Windows) 또는 Docker Engine (Linux)
  • LLM API 키 (Claude, GPT, Gemini, 또는 로컬 모델)
  • 10분

Windows 사용자: WSL2 Ubuntu를 쓰세요. @BerzafTe가 확인했어요: “CMD 안 돼요. Git Bash 안 돼요. WSL2 Ubuntu가 유일한 방법이에요.”


1단계: 프로젝트 디렉토리 생성

mkdir ~/openclaw && cd ~/openclaw

2단계: docker-compose.yml 생성

version: '3.8'

services:
  openclaw:
    image: openclaw/openclaw:latest
    container_name: openclaw
    restart: unless-stopped

    # 보안: localhost에만 바인딩 — 절대 0.0.0.0 안 됨
    ports:
      - "127.0.0.1:18789:18789"

    # 보안: 모든 capability 드롭, 비루트 실행
    user: "1000:1000"
    cap_drop:
      - ALL
    security_opt:
      - no-new-privileges:true

    # 보안: 읽기 전용 파일시스템 + 특정 경로만 쓰기 허용
    read_only: true
    tmpfs:
      - /tmp

    # 보안: 네트워크 접근 제한
    # 에이전트가 인터넷이 필요하면 (API 호출용) 이 부분 제거
    # networks:
    #   - openclaw-net

    volumes:
      - ./data:/data
      - ./config:/config:ro

    environment:
      - GATEWAY_HOST=127.0.0.1
      - GATEWAY_PORT=18789
      - GATEWAY_TOKEN=${GATEWAY_TOKEN}

    env_file:
      - .env

3단계: .env 파일 생성

# 강력한 게이트웨이 토큰 생성
GATEWAY_TOKEN=$(openssl rand -hex 32)
echo "GATEWAY_TOKEN=$GATEWAY_TOKEN" > .env

# LLM API 키 추가
echo "ANTHROPIC_API_KEY=sk-ant-..." >> .env
# 또는: echo "OPENAI_API_KEY=sk-..." >> .env

# 퍼미션 잠금
chmod 600 .env

중요: .env를 git에 절대 커밋하지 마세요. 즉시 .gitignore에 추가하세요.

4단계: 실행

docker compose up -d

실행 확인:

docker logs openclaw --tail 20

게이트웨이가 127.0.0.1:18789에서 시작되는 게 보여야 해요. 0.0.0.0이라고 뜨면 — 멈추고, 돌아가서 바인딩 주소를 고치세요.

5단계: 보안 확인

# 인터넷에 노출 안 됐는지 확인
curl http://localhost:18789/health  # 되어야 함
curl http://내_공인_IP:18789/health  # 안 되어야 함 (타임아웃)

5단계 보안 하드닝

@johann_sath (251 좋아요)와 @LyashchMaxim이 추천하는 설정이에요. 어떤 레이어도 건너뛰지 마세요.

레이어 1: Localhost 바인딩

위 compose 파일에서 이미 적용됐어요. 가장 중요한 보안 단계. 공격 표면의 90%를 차단해요.

ports:
  - "127.0.0.1:18789:18789"  # "18789:18789" 절대 안 됨

레이어 2: 비루트 실행

user: "1000:1000"
cap_drop:
  - ALL
security_opt:
  - no-new-privileges:true

에이전트가 탈취돼도 권한 상승을 막아요.

레이어 3: 읽기 전용 파일시스템

read_only: true
tmpfs:
  - /tmp
volumes:
  - ./data:/data          # 유일한 쓰기 가능 경로
  - ./config:/config:ro   # 설정은 읽기 전용

에이전트가 /data/tmp에만 쓸 수 있어요. 나머지는 전부 잠김.

레이어 4: 네트워크 제한

에이전트가 API 하나하고만 통신하면:

# docker-compose.yml에 추가:
networks:
  openclaw-net:
    driver: bridge
    internal: true  # 인터넷 접근 차단

# 특정 아웃바운드는 iptables나 프록시로 허용

대부분의 경우 더 간단한 방법: 방화벽으로 포트 18789의 외부 접근을 차단하세요.

# UFW (Ubuntu)
sudo ufw deny in 18789
sudo ufw allow from 127.0.0.1 to any port 18789

레이어 5: 강력한 게이트웨이 토큰

.env의 토큰이 인증이에요. 길고 랜덤하게 만드세요:

# 64자 hex 토큰
openssl rand -hex 32

매월 변경하세요. 환경 간에 재사용하지 마세요.


흔한 에러 & 해결법

에러원인해결
포트 18789 이미 사용 중다른 서비스나 기존 컨테이너docker stop openclaw && docker rm openclaw
/data 퍼미션 거부볼륨 소유권 불일치sudo chown -R 1000:1000 ./data
Windows에서 빌드 실패WSL2 안 쓰고 있음WSL2 Ubuntu 설치, WSL 안에서 전부 실행
API 키 안 먹힘.env 로드 안 됨docker compose config로 키 확인
에이전트가 API에 접속 못 함네트워크 너무 제한적네트워크 설정에서 internal: true 제거
CVE-2026-24763 경고Docker PATH 인젝션v2026.3.1+로 업데이트 (docker pull openclaw/openclaw:latest)

@moritzkremb (1.1K 좋아요, 26.8만 조회)가 “설치 후 바로 해야 할 10가지” 가이드를 올렸는데, 커뮤니티에서 “포스트인스톨 바이블"이라 불려요. 가장 큰 고통 포인트: Windows 호환성, 볼륨 퍼미션, 게이트웨이 토큰 잠금 잊어버리기.


비용

셋업월 비용
집 컴퓨터 (Mac/Linux)0원 (전기세만)
Oracle Cloud 무료 티어0원 (ARM 인스턴스, 24GB RAM)
Hetzner CAX11~$4.49/월 (ARM, 4GB RAM)
DigitalOcean 드롭렛$6/월 (1GB RAM)
API 비용$5-30/월 (사용량에 따라)

총 비용: 24/7 AI 에이전트에 월 0~35달러. Perplexity Computer $200/월이나 Claude Max $200/월이랑 비교하면요.

한국에서는 Oracle Cloud 무료 티어가 특히 인기 있어요. 서울 리전이 있어서 레이턴시도 괜찮고, 24GB RAM이면 OpenClaw 돌리기에 충분하거든요. 카페에서 개인 서버 구축하는 느낌이에요 ㅋㅋ

참고: Hetzner가 2026년 4월 1일부터 가격 인상해요 (CAX11: $3.29 → $4.49). 그 전에 잠그세요.


설치 후: 첫 작업

에이전트가 돌아가면 간단한 것부터 시작하세요:

  1. 읽기 전용 작업부터. “이 파일 요약해줘.” “다운로드 폴더 목록 보여줘.” 쓰기 권한 주기 전에 신뢰를 쌓으세요.
  2. skills-vetter 스킬 설치. ClawHub 스킬 추가하기 전에 안전하게 검증하세요.
  3. SOUL.md 규칙 설정. “확인 없이 이메일 절대 보내지 마. 파일 절대 삭제하지 마. /data 밖에 절대 접근하지 마.”
  4. 보안 감사 실행. openclaw security audit --deep — 매주 습관으로, 또는 cron job으로 설정하세요.

원격 접근 (필요한 경우)

포트 18789을 인터넷에 노출하지 마세요. 대신:

옵션 A: Tailscale (추천)

# 서버에 Tailscale 설치
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up
# Tailscale 네트워크 내 어디서든 접근

옵션 B: SSH 터널

# 내 노트북에서
ssh -L 18789:localhost:18789 내-서버
# 이제 노트북의 localhost:18789 → 서버

둘 다 게이트웨이를 공용 인터넷에서 떼어놓으면서 원격 접근을 줘요.


더 배우기

무료 강좌:

관련 글:


출처: OpenClaw Docker 문서, Docker 블로그, SecurityScorecard, X/Twitter 커뮤니티 리서치 via Grok (143 소스). Docker 설정 2026년 3월 22일 검증.

Build Real AI Skills

Step-by-step courses with quizzes and certificates for your resume