問い合わせ ブログ ログイン

Clawdbot / OpenClaw を「とりあえず動く」から「事故りにくい」へ:最低限の見直しポイント(途中まで)

公開日: 2026-02-05 21:45:23

   

カテゴリ: AI

602 PV
Clawdbot / OpenClaw を「とりあえず動く」から「事故りにくい」へ:最低限の見直しポイント(途中まで)

Clawdbot / OpenClaw を「とりあえず動く」から「事故りにくい」へ:最低限の見直しポイント

OpenClaw / Clawdbot を Mac mini + Docker + ngrok + LINE Webhook で回している人、わりと多いと思います。 手元の自動化がサクサク進む一方で、構成次第では “意図せず攻撃面が増える” こともあります。

この記事では、ありがちな落とし穴を避けるための 「最低限ここまでは」 を、途中まで解説します。 (※本当に大事な“詰め”と、コピペで再現できる完成形・チェックリストは完全版にまとめています)


ありがちな事故ポイント(超ざっくり)

  • 管理画面 / 操作系のポートを、ngrokでそのまま外に出してしまう
  • 「トークンがあるから大丈夫」で止まり、到達可能な面(攻撃面)が残る
  • LINE Webhook は IP制限が現実的じゃないことが多く、放置されがち

ここで大切なのは、難しい話ではなく “公開するものを最小にする” という設計です。


今日やること(途中までのゴール)

ゴールはシンプルです。

  • 外に出すのは LINE Webhook だけ
  • 管理系の画面や操作系ポートは 外に出さない(localhost限定)
  • ngrok は Webhook の受け口だけに向ける

この段階だけでも「うっかり公開」の事故率は大きく下がります。


ステップ1:まず “何が外に出ているか” を把握する

Dockerが立っているMacで、まずこれを見ます。

docker ps --format "table {{.Names}}\t{{.Ports}}"

ここでチェックしたいのは、

  • 0.0.0.0:xxxx->...(全公開)
  • 127.0.0.1:xxxx->...(ローカル限定)

もし管理系が 0.0.0.0 側で出ていたら、最優先で修正対象です。


ステップ2:管理系ポートは “localhostバインド” に固定する

composeで ports: を使っている場合、IPを明示して縛ります。

例(管理系):

ports:
  - "127.0.0.1:18789:18789"
  - "127.0.0.1:18790:18790"

これで「インターネットからMacへ直で届く」状態は避けられます。


ステップ3:ngrok を “Webhook 以外” に向けない

ここ、やりがちです。

ngrok は Mac上のプロセスなので、127.0.0.1:18789 に到達できます。 つまり「localhostに縛ったから安全」と思っていても、ngrokがそこをトンネルすると公開されます

ngrokの転送先は Webhook受け口だけにします。

(Webhookが 3000 の想定なら)

ngrok http 3000

そして、ngrok のローカル管理画面 http://127.0.0.1:4040 で、

  • -> http://localhost:3000
  • -> http://localhost:18789

になっていないかを確認します。


ここで詰まるポイント:Webhook の“受け口”が存在しないと 502 になる

「よし、Webhookを3000にしよう」と思って ngrok http 3000 にしたら

  • 502 Bad Gateway
  • curl すると Empty reply from server
  • Connection refused

みたいになることがあります。

これはだいたい、

  • 3000で実際にHTTPサーバが待っていない
  • もしくは「待ってるつもり」で、別コンテナだった/ポートが出てない

という状態です。

一度ホストで確認しておきます。

lsof -nP -iTCP:3000 -sTCP:LISTEN

ここで何も出ないなら、ngrokが向いても当然 502 になります。


ここから先が“本番”:IP制限できないLINE Webhookをどう守るか

ここまでで「公開範囲の最小化」はできます。 でも、LINE Webhook は IP制限が現実的ではないことも多いので、次に必要なのは “正当なLINEからのリクエストだけ通す” ことです。

その代表が LINE署名検証(X-Line-Signature)

ここから先のやり方は、実運用目線でちゃんと作り込む必要があります。

  • Webhook専用の受け口(3000)を作る
  • そこで署名検証
  • 通ったものだけを内部へ転送
  • 管理画面は最後まで外に出さない
  • 動作確認・チェックリストで事故を潰す

…という形です。


完全版(コピペで再現できる構成・チェックリスト付き)

今回の「完成形」までを、講座内に 配布資料(Markdown)+再現可能な構成としてまとめています。 中途半端な“断片”ではなく、そのまま手を動かして安全側に寄せられる形です。

完全版はこちら: * 最安値クーポンは、2025/2/6 10:00まで有効です! Udemy講座:Clawdbot (Moltbot/OpenClaw) 完全入門


おまけ:この記事の“途中まで”だけでもやる価値がある人

  • ngrokで何かを外に出してるけど、転送先を正確に把握してない
  • 「トークンで弾いてるからOK」で止まっている
  • LINE Webhook を署名検証なしで受けている

心当たりがあれば、まずはこの記事のステップ1〜3だけでもやってみてください。 そして「ここから先はちゃんと固めたい」と思ったら、完全版が一番早いです。