レッスン 3 15分

安全なインストール(唯一の正しい方法)

Docker隔離でOpenClawを安全にインストール。既知の脆弱性からコンピューターを守るセキュリティ強化付きのステップバイステップ手順。

なぜ135,000人が間違えたのか

🔄 Quick Recall: 前のレッスンで、135,000以上のOpenClawインスタンスがインターネットに露出していると述べた。それは理論上のリスクではない——デフォルトのインストール方法のせいで実際に起きたこと。

何が起きたか:OpenClawのデフォルト設定は0.0.0.0:18789にバインドする。わかりやすく言えば「どのネットワーク上の誰でも接続してください」という意味。クイックスタートガイドに従い、この設定を変更しなかった人たちが、自分のAIエージェント——メール、カレンダー、ファイルごと——をインターネット全体に公開してしまった。

このレッスンは、あなたが135,001人目にならないためにある。

このレッスンの終わりまでにできるようになること:

  • コンピューターにDockerをインストールする
  • セキュアなDockerコンテナ内でOpenClawを動かす
  • 最も一般的な攻撃ベクターをブロックするセキュリティ強化を適用する

Dockerとは?(60秒バージョン)

家の部屋を賃貸に出すと想像してほしい。2つの選択肢がある:

選択肢A:フリーアクセス。 入居者が寝室に入り、金庫を開け、郵便を読み、クレジットカードを使える。これがOpenClawをコンピューターに直接インストールすること。

選択肢B:密封されたアパート。 入居者は自分の部屋にとどまる。独自の入口、独自のインフラがあり、家の他の部分にはアクセスできない。汚したら、数分でアパートを取り壊して建て直せる。これがDocker。

Dockerはコンテナを作る——コンピューター上で動くが、個人ファイル、パスワード、他のアプリケーションには触れない密封された隔離環境。Docker内でOpenClawが侵害されても、攻撃者はコンテナの中に閉じ込められる。

完璧か? いいえ。CVE-2026-24763では、高度な攻撃者がPATH操作でDockerから脱出できることが示された。しかしDockerはハードルを劇的に上げる——玄関のドアを開けっ放しにするのと、デッドボルト付きの鍵をかけるくらいの違い。鍵をピッキングする人はいるかもしれないが、ほとんどの脅威は止められる。

Quick Check: アパートのたとえで、「数分でアパートを取り壊して建て直す」は何を表す?(答え:Dockerコンテナの破棄と再作成——潜在的な侵害を消去し、ゼロから始めること。)

ステップ1:Dockerをインストール

Macの場合:

  1. docker.comでDocker Desktop for Macをダウンロード
  2. ダウンロードしたファイルを開き、Dockerをアプリケーションフォルダにドラッグ
  3. アプリケーションからDocker Desktopを起動
  4. メニューバーにクジラアイコンが表示されるのを待つ——Dockerが動いている証拠

Windowsの場合:

  1. docker.comでDocker Desktop for Windowsをダウンロード
  2. インストーラーを実行(「WSL 2」の有効化が必要な場合がある——インストーラーが案内)
  3. プロンプトが出たらコンピューターを再起動
  4. Docker Desktopを起動

Linuxの場合: docs.docker.comの公式インストール手順に従う。

動作確認: ターミナル(Mac/Linux)またはコマンドプロンプト(Windows)を開いて入力:

docker --version

Docker version 27.x.xのような表示が出れば成功。エラーが出たらDockerが起動していない。

ステップ2:OpenClawをDockerにインストール(安全な方法)

OpenClawはDockerセットアップスクリプトを提供している。安全なアプローチはこうだ:

# 1. OpenClaw用のフォルダを作成
mkdir ~/openclaw && cd ~/openclaw

# 2. Docker Composeファイルをダウンロード
curl -fsSL https://openclaw.ai/docker-compose.yml -o docker-compose.yml

何も実行する前に、次のセクションを読むこと。 デフォルト設定は十分にセキュアではない。

ステップ3:セキュリティ強化(重要)

ここがほとんどのガイドが終わる地点であり、ほとんどの人が侵害される地点。5つのセキュリティレイヤーを適用する:

レイヤー1:ローカルホストのみにバインド

docker-compose.ymlファイルを開いてポートセクションを見つけ、変更する:

# 危険なデフォルト:
ports:
  - "0.0.0.0:18789:18789"

# 安全:
ports:
  - "127.0.0.1:18789:18789"

この1つの変更で、OpenClawは自分のコンピューターからの接続のみを受け付けるようになる——インターネットからはアクセスできなくなる。

レイヤー2:非rootユーザーで実行

公式Dockerイメージはすでに非rootのnodeユーザーで動く(良いこと!)。Composeファイルに入っているか確認:

user: "node"

rootになっていたり、ユーザーが指定されていなければ、上の行を追加する。

レイヤー3:すべての権限を剥奪

コンテナ定義にこれらのセキュリティフラグを追加:

security_opt:
  - no-new-privileges:true
cap_drop:
  - ALL

何をするか: cap_drop: ALLはすべての特別なシステム権限を剥奪。no-new-privilegesはコンテナが新しい権限を獲得することを防止。合わせて、コンテナは基本的で危険でない操作しかできなくなる。

レイヤー4:読み取り専用ファイルシステム

read_only: true
tmpfs:
  - /tmp:rw,noexec,nosuid,size=64M

コンテナのファイルシステムを読み取り専用にする——小さな制限付き一時フォルダ以外、新しいファイルの作成や既存ファイルの変更ができない。攻撃者が侵入しても、マルウェアをインストールできない。

レイヤー5:強力なゲートウェイトークンを設定

オンボーディングプロセスでOpenClawがゲートウェイトークンを生成する。これがパスワードだ。強力に:

  • ランダムパスワードジェネレーターを使用(最低32文字)
  • 絶対に共有しない
  • 他で使っているパスワードと同じにしない

Quick Check: 5つのハードニングレイヤーのうち、OpenClawへのインターネット経由のアクセスを防ぐのはどれ?(答え:レイヤー1——0.0.0.0ではなく127.0.0.1にバインドすること。)

ステップ4:オンボーディングウィザードを実行

コンテナを起動してセットアップを実行:

# コンテナを起動
docker compose up -d

# オンボーディングウィザードを実行
docker exec -it openclaw openclaw onboard --install-daemon

ウィザードは以下を行う:

  1. AIプロバイダーの選択(Claude、GPT、DeepSeek)
  2. そのプロバイダーのAPIキーの入力
  3. ゲートウェイトークンの生成
  4. http://127.0.0.1:18789/にコントロールインターフェースをセットアップ

重要: メッセージチャネルについて聞かれたら、今はスキップ。レッスン4ですべてが動作することを確認してからセットアップする。

完成したハードニング済みdocker-compose.yml

5つのセキュリティレイヤーすべてを適用した最終ファイルはこうなる:

version: '3.8'
services:
  openclaw:
    image: openclaw/openclaw:latest
    container_name: openclaw
    user: "node"
    ports:
      - "127.0.0.1:18789:18789"
    volumes:
      - openclaw-data:/app/data
    environment:
      - NODE_ENV=production
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    read_only: true
    tmpfs:
      - /tmp:rw,noexec,nosuid,size=64M
    restart: unless-stopped

volumes:
  openclaw-data:

やらなかったこと(と、その理由)

ウェブサイトのワンライナーでインストールしなかったことに気づいたかもしれない:

# これをやるな:
curl -fsSL https://openclaw.ai/install.sh | bash

このコマンドはDockerなしでOpenClawをコンピューターに直接インストールする。ファイル、パスワード、メール、その他すべてへのフルアクセスを与えてしまう。アパートのたとえを思い出そう? これが選択肢A——入居者が家中を歩き回る。

セキュリティ研究者サイモン・ウィリソンは明確に言った:「Macで直接OpenClawを動かす勇気は私にはない。」

彼に従おう。Dockerのみ。

何かうまくいかないとき

コンテナが起動しない: docker logs openclawでエラーメッセージを確認。ほとんどの問題はAPIキーの間違いかポートの競合。

コントロールパネルにアクセスできない: Dockerが動いていることを確認(クジラアイコンをチェック)し、http://127.0.0.1:18789/にアクセス——localhostではなく。一部のシステムでは異なる解決をする場合がある。

最初からやり直す: これがDockerの美点。次を実行:

docker compose down -v
docker compose up -d

コンテナを破棄して新しく作り直す。アパートを取り壊して30秒で新しく建てるようなもの。

Key Takeaways

  • 常にDockerを使う——OpenClawをコンピューターに直接インストールしてはいけない
  • 127.0.0.1にバインド——最も重要な1つのセキュリティ変更(インターネット露出を防止)
  • 5つのハードニングレイヤーすべてを適用: ローカルホストバインド、非rootユーザー、権限剥奪、読み取り専用ファイルシステム、強力なゲートウェイトークン
  • ワンラインインストーラーは使わない——システム全体への無制限アクセスを与えてしまう
  • Dockerは完璧ではないがハードルを「玄関ドア開けっ放し」から「デッドボルト付きの施錠」に上げる

Up Next

OpenClawがインストールされハードニングされた。次のレッスンでは、メッセージアプリを接続して最初の本物の会話をする。WhatsAppやTelegramのセットアップ方法と、エージェントへの最初のタスクの与え方を学ぶ。

理解度チェック

1. OpenClawをコンピューターに直接ではなくDocker内にインストールすべき理由は?

2. Dockerセットアップの '--cap-drop=ALL' フラグは何をする?

3. デフォルトのOpenClawインストールは0.0.0.0:18789にバインドする。なぜ危険?

すべての問題に答えてから確認できます

まず上のクイズを完了してください

関連スキル