ClawdBot을 Cloudflare Tunnel로 안전하게 보호하기

ClawdBot을 Cloudflare Tunnel로 안전하게 보호하기
ClawdBot은 로컬에서 실행되는 강력한 AI 어시스턴트입니다. WhatsApp, Telegram, Discord 등 다양한 메신저와 연동할 수 있어 편리하지만, 기본 설정으로 사용하면 보안 위험이 있습니다. 이 글에서는 Shodan에서 노출된 ClawdBot 인스턴스들의 문제점과 Cloudflare Tunnel을 사용한 안전한 설정 방법을 알아봅니다.
ClawdBot이란?
ClawdBot은 Claude AI를 기반으로 한 오픈소스 개인 AI 어시스턴트입니다. 로컬 머신에서 실행되며, Gateway 서버를 통해 다양한 메신저 플랫폼과 연동됩니다.
주요 특징
- 로컬에서 실행 (Mac, Windows, Linux, Raspberry Pi)
- WhatsApp, Telegram, Discord, Slack 등 지원
- WebSocket 기반 Gateway (기본 포트: 18789)
- 완전한 데이터 프라이버시
문제: Shodan에 노출된 ClawdBot 인스턴스들
Shodan에서 포트 18789를 검색하면 인터넷에 공개적으로 노출된 ClawdBot Gateway 인스턴스들을 발견할 수 있습니다.

왜 위험한가?
- 무단 접근: 인증 없이 Gateway에 접속 가능
- 대화 내용 유출: AI와의 모든 대화가 노출될 수 있음
- API 키 도용: 연결된 Claude API 키가 악용될 수 있음
- 봇 하이재킹: 공격자가 사용자의 메신저 봇을 제어할 수 있음
많은 사용자들이 편의를 위해 --bind 0.0.0.0으로 외부 접속을 허용하면서 방화벽이나 인증 없이 운영하고 있습니다.
해결책: Cloudflare Tunnel
Cloudflare Tunnel은 서버의 포트를 직접 인터넷에 노출하지 않고도 안전하게 접근할 수 있게 해주는 서비스입니다.
장점
- 포트 노출 없음: 18789 포트를 인터넷에 열 필요 없음
- DDoS 보호: Cloudflare의 보호 기능 자동 적용
- Access 정책: 이메일, IP 등으로 접근 제어 가능
- 무료: 기본 기능은 무료로 사용 가능
Cloudflare Tunnel 설정 가이드
1. 사전 준비
- Cloudflare 계정 (무료)
- 본인 소유의 도메인 (Cloudflare DNS에 연결)
- ClawdBot이 실행 중인 서버
2. cloudflared 설치
macOS:
brew install cloudflaredUbuntu/Debian:
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.debWindows:
winget install --id Cloudflare.cloudflared3. Cloudflare 로그인
cloudflared tunnel login브라우저가 열리면 Cloudflare 계정으로 로그인하고 도메인을 선택합니다.

4. 터널 생성
cloudflared tunnel create clawdbot-tunnel
5. DNS 레코드 설정
cloudflared tunnel route dns clawdbot-tunnel clawdbot.yourdomain.com이 명령어는 자동으로 Cloudflare DNS에 CNAME 레코드를 추가합니다.
6. 설정 파일 생성
~/.cloudflared/config.yml 파일을 생성합니다:
tunnel: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx # 터널 UUID
credentials-file: /home/user/.cloudflared/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.json
ingress:
- hostname: clawdbot.yourdomain.com
service: http://localhost:18789
- service: http_status:4047. 터널 실행
cloudflared tunnel run clawdbot-tunnel
8. 서비스로 등록 (선택사항)
서버 재시작 시 자동으로 터널이 실행되도록 설정합니다:
sudo cloudflared service install
sudo systemctl enable cloudflared
sudo systemctl start cloudflared9. ClawdBot 디바이스 승인
Cloudflare Tunnel을 통해 처음 접속하면 ClawdBot Gateway에서 프록시 헤더를 감지합니다:
[ws] Proxy headers detected from untrusted address. Connection will not be treated as local.

Cloudflare Access로 추가 보호 (선택사항)
팀이나 외부 사용자와 공유할 경우, Cloudflare Zero Trust의 Access 기능으로 이메일 인증 레이어를 추가할 수 있습니다. 개인 용도라면 ClawdBot의 device approval만으로 충분합니다.
설정 방법: Cloudflare Zero Trust 대시보드 > Access > Applications > Self-hosted 앱 추가
최종 아키텍처
[사용자] → [Cloudflare Edge] → [Cloudflare Tunnel] → [localhost:18789]
↓ ↓
[DDoS 보호] [ClawdBot Device 승인]
↓
[HTTPS 자동 적용]- 인터넷에 포트 노출 없음 (Shodan에서 검색 불가)
- ClawdBot 자체 device approval로 접근 제어
- DDoS 및 악성 트래픽 차단
- HTTPS 자동 적용
ClawdBot 보안 Audit (추가 보안)
ClawdBot은 내장된 보안 Audit 기능을 제공합니다. 현재 설정의 보안 상태를 Audit하고 문제를 자동으로 수정할 수 있습니다.
보안 상태 점검:
clawdbot security audit --deep
이 명령어는 다음 항목들을 검사합니다:
- 설정 파일 권한
- API 키 노출 여부
- 네트워크 바인딩 설정
- 인증서 유효성
자동 수정:
clawdbot security audit --fix
문제가 발견되면 파일 권한을 안전하게 변경하고 보안 설정을 최적화합니다.
방화벽 설정 (추가 보안)
터널 설정 후 로컬 방화벽에서 18789 포트를 차단하면 더욱 안전합니다:
# UFW (Ubuntu)
sudo ufw deny 18789
# iptables
sudo iptables -A INPUT -p tcp --dport 18789 -j DROP이제 ClawdBot Gateway는 오직 Cloudflare Tunnel을 통해서만 접근 가능합니다.
결론
ClawdBot은 강력한 도구이지만, 보안 설정 없이 사용하면 위험할 수 있습니다. Cloudflare Tunnel을 사용하면:
- 포트 노출 제거: Shodan 등에서 검색되지 않음
- 이중 보안: Tunnel + ClawdBot device approval
- 무료: 기본 기능은 완전 무료
- 간편한 설정: 빠르게 설정 완료
개인 AI 어시스턴트를 안전하게 운영하고 싶다면, Cloudflare Tunnel은 가장 쉽고 효과적인 방법입니다.