내 Ollama가 외부에 노출되어 있을까? 잠그기 위한 체크리스트

Munim, Inc.의 MV2 작성. 설정은 2026년 10월 12일에 Ollama FAQ와 대조해 확인했습니다. 본인의 컴퓨터에만 사용하세요. 이 페이지는 영어 원문을 AI로 번역한 것입니다. 내용이 다를 경우 원문이 우선합니다.

왜 중요한가: Ollama API에는 로그인이 없습니다. 11434 포트에 닿을 수 있는 사람은 누구나 모델을 조회·다운로드·생성·삭제하고, 여러분의 GPU를 쓰고, 올해 CVE가 발견된 모든 엔드포인트에 접근할 수 있습니다(Ollama CVE(영어) 참고). Ollama는 기본적으로 127.0.0.1:11434에 바인드되며 이 상태는 안전합니다. 노출은 대개 나중에 생깁니다. 다른 컴퓨터나 Docker 컨테이너가 접속할 수 있도록 OLLAMA_HOST=0.0.0.0을 설정했을 때(또는 앱의 "Expose Ollama to the network" 설정을 켰을 때), 혹은 Docker가 포트를 공개했을 때입니다.

1. 어디서 대기하고 있는지 확인하기

127.0.0.1:11434로 나오면 이 컴퓨터만 접속할 수 있으니 이 단계는 끝입니다. 0.0.0.0:11434, *:11434, [::]:11434, 또는 0.0.0.0:11434->11434/tcp 같은 Docker 포트가 나오면 다른 컴퓨터도 접속할 수 있습니다. 확인하려면 본인의 다른 기기에서 curl http://<this machine's LAN IP>:11434/api/version(이 컴퓨터의 LAN IP로 바꿔서)을 실행해 보세요. 응답에 버전 번호가 있으면 포트가 네트워크에 열려 있는 것입니다.

무료 스크립트 local-ai-checkup이 이 확인을 아래의 버전, OLLAMA_ORIGINS, Docker 포트 확인과 함께 대신 해 줍니다. 읽기 전용이며 컴퓨터 밖으로 아무것도 보내지 않습니다.

2. 이 컴퓨터에서만 Ollama를 쓴다면: localhost에 바인드하기

OLLAMA_HOST를 삭제하거나 127.0.0.1:11434로 설정하고, 앱 설정에서 "Expose Ollama to the network"가 켜져 있다면 끄세요:

Docker 컨테이너가 접속할 수 있게 하려고 OLLAMA_HOST=0.0.0.0을 설정했다면, Ollama를 네트워크에 내놓지 않고도 해결할 수 있습니다. Docker의 Open WebUI나 n8n이 Ollama에 연결되지 않을 때를 참고하세요. 노트북이나 휴대폰에서 접속하려고 설정했다면 다른 컴퓨터나 휴대폰에서 Ollama 쓰기를 참고하세요.

3. Ollama를 Docker에서 실행한다면

-p 11434:11434는 모든 인터페이스에 포트를 공개합니다. Linux에서는 Docker가 자체 방화벽 규칙을 쓰기 때문에 ufw나 firewalld로는 막히지 않습니다. 대신 다음 중 하나를 쓰세요:

docker run -d --gpus=all -v ollama:/root/.ollama -p 127.0.0.1:11434:11434 --name ollama ollama/ollama

Open WebUI(또는 n8n, Dify, Flowise)가 같은 Compose 파일에서 돌아간다면 Ollama는 포트를 공개할 필요조차 없습니다. 다른 컨테이너가 서비스 이름으로 Ollama에 닿습니다:

services:
  ollama:
    image: ollama/ollama
    volumes: [ "ollama:/root/.ollama" ]
    # no "ports:" here - only containers on this network can reach it
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    ports: [ "127.0.0.1:3000:8080" ]
    volumes: [ "open-webui:/app/backend/data" ]
volumes:
  ollama: {}
  open-webui: {}

(파일 안의 주석은 "여기에는 ports:를 쓰지 않는다. 이 네트워크의 컨테이너만 닿을 수 있다"라는 뜻입니다.) 수정한 뒤에는 컨테이너를 다시 만들고(docker compose up -d) 1단계를 반복하세요.

4. 다른 컴퓨터에서 꼭 써야 한다면: 앞에 로그인을 두기

2단계처럼 Ollama를 127.0.0.1에 바인드하고, 인증이 있는 리버스 프록시를 유일한 출입구로 만드세요. 최소한의 Caddy 예시입니다(해시는 caddy hash-password로 만듭니다):

ollama.home.example {
    basic_auth {
        alice <hash from caddy hash-password>
    }
    reverse_proxy 127.0.0.1:11434 {
        header_up Host localhost:11434
    }
}

(위의 <hash from caddy hash-password> 자리에는 그 명령으로 만든 해시를 넣습니다.) Host 줄이 중요합니다. Ollama FAQ의 프록시 예시는 Host 헤더를 localhost:11434로 바꾸며, 다른 Host 값을 가진 요청은 거부될 수 있습니다. Tailscale이나 WireGuard 같은 사설 네트워크도 방법입니다. 본인의 기기만 포트에 닿고 인터넷에는 아무것도 공개되지 않습니다. Ollama 원격으로 쓰기에서 SSH 터널, Tailscale(Ollama 앞에 tailscale serve를 두면 403이 나는 이유 포함), LAN 전용 방화벽 규칙을 차례로 설명합니다.

사람이 아니라 앱이 쓴다면? Open WebUI, n8n, OpenAI 방식 클라이언트는 API 키를 Authorization: Bearer로 보내므로 Basic 인증에서 거부됩니다. Ollama API 키에 키를 검사하는 Caddy와 nginx 설정, 그리고 각 클라이언트의 설정이 있습니다.

터널: FAQ에는 ngrok와 cloudflared 명령도 나옵니다. 그것만 쓰면 여러분의 Ollama가 로그인 없이 인터넷 전체에 공개됩니다. 터널 서비스의 접근 제어를 켠 경우에만 쓰세요.

5. OLLAMA_ORIGINS는 좁게 유지하기

OLLAMA_ORIGINS는 브라우저가 어떤 웹 페이지에 Ollama와의 통신을 허용할지 정합니다. 기본적으로는 로컬 오리진만 허용됩니다. *로 설정하면 여러분이 방문하는 모든 웹사이트가 로컬 Ollama에 요청을 보내고 응답을 읽을 수 있게 됩니다. 필요한 오리진만 추가하세요. 예를 들어 chrome-extension://* 대신 특정 브라우저 확장 프로그램 하나의 ID를 지정합니다. 클릭 한 번으로 끝나는 브라우저 점검(영어)으로 지금 웹사이트가 내 Ollama(또는 LM Studio)를 읽을 수 있는지 알 수 있습니다.

6. 앞단에서 Open WebUI를 운영한다면

7. 최신 상태로 유지하기

무료 CVE 검사기(영어)로 버전을 확인하세요. vLLM, n8n, Dify, RAGFlow, AnythingLLM, Langflow, Flowise, LiteLLM도 다루며 CVE 번호가 없는 보안 권고도 포함합니다. Atom 피드에 이 사이트의 모든 업데이트가 올라옵니다.

대신 점검받고 싶다면

Munim, Inc.의 MV2는 컴퓨터 1대를 위한 로컬 AI 상태 점검(49달러)과, 최대 5대 또는 공유 Ollama·Open WebUI 서버 1대를 위한 소규모 사무실 점검(199달러)을 제공합니다. 무엇이 노출되어 있고 무엇이 위험하거나 느린지, 무엇부터 고쳐야 하는지를 여러분의 OS에 맞는 정확한 명령, GPU에 맞는 모델 추천과 함께 보고서로 드립니다. 보고서는 영어로 작성됩니다. 보고서 샘플을 보세요. Stripe에서 49달러 결제 또는 199달러 결제 후, munimversion2@gmail.com으로 python3 local_ai_checkup.py --json의 출력, 사용 중인 OS, 용도를 이메일로 보내 주세요. MV2는 비밀번호, 키, 원격 접속을 절대 요청하지 않습니다.