1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Windows 環境で Ollama を安全に運用するための実践的セットアップ

1
Posted at

はじめに

ローカル LLM を触る人が、

  • ollama serve をそのまま実行する
  • 0.0.0.0 に bind する
  • shell tool を無防備に許可する
  • Docker socket を agent に渡す

といった危険な構成も非常に多く見かけます。

しかし、本当に危険なのは「LLM」そのものではありません。

危険なのは:

LLM + 自動実行権限 + ネットワーク露出

です。

今回は Windows + WSL2 + Ollama 環境で、最低限やっておくべき安全対策を整理します。


危険な状態とは?

最も危険なのは:

0.0.0.0:11434

で Ollama を listen してしまうことです。

これは:

LAN 内の他端末から API にアクセス可能

を意味します。

まず確認:

netstat -ano | findstr 11434

安全な状態:

127.0.0.1:11434

危険な状態:

0.0.0.0:11434

localhost のみに bind する

PowerShell:

$env:OLLAMA_HOST="127.0.0.1:11434"
ollama serve

起動ログ:

Listening on 127.0.0.1:11434

これで外部アクセスは遮断されます。


Windows Firewall で二重防御

localhost bind のみでは不十分です。

将来:

  • 設定変更
  • GUI wrapper
  • plugin
  • 更新

などで accidentally 0.0.0.0 になる可能性があります。

そのため Firewall で TCP 11434 を block します。

管理者 PowerShell:

New-NetFirewallRule `
  -DisplayName "Block Ollama 11434 Inbound" `
  -Direction Inbound `
  -LocalPort 11434 `
  -Protocol TCP `
  -Action Block

これで仮に誤設定しても外部から接続されにくくなります。


OLLAMA_ORIGINS を誤解しない

ログに:

OLLAMA_ORIGINS:[http://0.0.0.0 ...]

が表示されることがあります。

これは:

CORS 設定

であり、listen address ではありません。

つまり:

項目 意味
OLLAMA_HOST 実際の bind address
OLLAMA_ORIGINS Browser JS の許可 origin

です。

127.0.0.1 bind が本当の隔離境界です。


永続的に OLLAMA_MODELS を設定

一時変数ではなく User Environment Variable を設定します。

[Environment]::SetEnvironmentVariable(
  "OLLAMA_MODELS",
  "D:\ollama\models",
  "User"
)

本当に危険なのは Agent 化

ここが最重要です。

単なる chat UI はそこまで危険ではありません。

しかし以下は一気に攻撃面が広がります:

  • Continue.dev
  • Cline
  • RooCode
  • Open Interpreter
  • browser-use
  • LangChain Agent
  • MCP tool

理由は:

自然言語
→ shell command
→ system execution

が発生するためです。


絶対に避けるべき構成

1. model output をそのまま実行

危険:

subprocess.run(model_output)

さらに危険:

exec(model_output)

LLM output は:

trusted code ではなく untrusted input

として扱うべきです。


2. Docker socket を agent に渡す

絶対に避ける:

-v /var/run/docker.sock

これは実質:

host root access

です。


3. 管理者 PowerShell で agent 実行

LLM runtime に admin 権限は不要です。

agent は低権限ユーザーで動かすべきです。


推奨構成

Windows Host
    ↓
WSL2 Ubuntu
    ↓
non-sudo user
    ↓
Ollama
    ↓
sandboxed projects

まとめ

AI runtime を「ただの chat tool」として扱うのではなく、

潜在的に system execution capability を持つ runtime

として設計する必要があります。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?