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. このマシンだけで使う場合: 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 に接続できないを参照してください。ノート PC やスマートフォンから接続するために設定したのなら、別のコンピューターやスマートフォンから 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
    }
}

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 は、ブラウザがどの Web ページに Ollama との通信を許すかを決めます。既定ではローカルのオリジンだけが許可されています。* に設定すると、あなたが訪れたどの Web サイトでもローカルの Ollama にリクエストを送り、その応答を読めるようになります。必要なオリジンだけを追加してください。たとえば chrome-extension://* ではなく、特定のブラウザ拡張機能 1 つの ID を指定します。ワンクリックのブラウザチェック(英語)で、いま Web サイトがあなたの 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 がパスワード、キー、リモートアクセスを求めることはありません。