openclaw doctor --non-interactive と openclaw config validate をマージゲートとして使用します。すべての動作は上流の公式ドキュメントに準拠します——設定リファレンス、CLI doctor、ゲートウェイ doctor を含みます。
目標:ループバック限定のコントロールプレーン、攻撃面を最小化
OpenClaw ゲートウェイはデフォルトで 18789 ポート上で WebSocket と HTTP を多重化します。設定リファレンスによると、gateway.bind: "loopback" はリスナーをローカルループバックアドレスに固定し、非ループバックバインドはゲートウェイ認証(トークン、パスワード、または厳格に設定された信頼されたプロキシ)が必要です。共有リモート Mac の最適なソリューションは:ループバックバインド + トークンモードで、運用者と自動化ツールが暗号化トンネル経由でポートにアクセスし、18789 をホストの公開インターフェースに露出させません。
本シリーズの関連記事と合わせてお読みください:OpenClaw の nozcloud ドイツノード:デーモン起動とコンプライアンス基準。購入または構成変更は購入ページからアクセスし、価格ページでプランを比較してください。
最小再現手順(リモート Mac)
まずテストマシンで以下の手順を実行し、検証が通過したら同じ plist、SSH 設定、CI タスクを本番環境にプッシュすることをお勧めします。
- SSH の基本設定。OpenClaw 用の専用 macOS ユーザーを作成します。承認済みの OpenClaw バージョンのみをインストールし、キーによる非対話型 SSH を確認します(ポリシーが許可する場合は
sshd_configでそのアカウントのパスワード認証を無効にします)。 - JSON5 でバインドと認証を宣言します。
~/.openclaw/openclaw.jsonでgateway.mode: "local"を保持し、gateway.bind: "loopback"を設定し、gateway.auth.mode: "token"とgateway.auth.token: "${OPENCLAW_GATEWAY_TOKEN}"を設定します。token と password オブジェクトが共存する場合、起動時の曖昧さを避けるために必ずgateway.auth.modeを明示的に指定してください。 - キーパスを Git にコミットせず、トークンを注入します。LaunchDaemon の
EnvironmentVariablesディクショナリや、厳格な POSIX 権限を持つ root 所有の環境ファイルを通じてOPENCLAW_GATEWAY_TOKENをエクスポートします。初回起動時は、安全な管理者 Shell でopenclaw doctor --generate-gateway-tokenを実行できます。 - TTY なしヘルスチェック。
openclaw config validateとopenclaw doctor --non-interactiveを順番に実行します。--non-interactiveは対話プロンプトをスキップし、セキュリティ移行を適用し、対話型 OAuth リフレッシュを回避します——cron と CI のシナリオに最適です。 - ゲートウェイサービスをインストールまたは再起動します。標準化されたベンダー手順(固定パラメータを持つ
openclaw gateway installなど)を使用します。openclaw gateway statusがリスナーをループバックアドレスのみで健全な状態を示すことを確認します。 - ローカルワークステーションから SSH LocalForward を確立します。
ssh -N -L 18789:127.0.0.1:18789 openclaw-svc@germany-host.exampleを実行します(ユーザー名とホスト名を置き換えてください)。ローカルツールはws://127.0.0.1:18789にアクセスでき、トラフィックは SSH 暗号化で転送されます。 - トークンパスを検証します。トンネルが確立した後、ノートパソコンから運用マニュアルの Bearer Token 方式で
127.0.0.1:18789に接続します。意図的に誤ったトークンを送信します:サイレントパスではなく認証失敗が表示されるはずです——これがエンドツーエンドの強制検証の証明です。
0.0.0.0 に開放すると、サービス検出とブルートフォース攻撃のリスクが大幅に増加します。SSH 以外のアクセスが必要な場合は、mTLS または Tailscale Serve を有効にした強化リバースプロキシを前面に配置し、認証をスキップせずに設定リファレンスの信頼されたプロキシセクションを再読してください。
コンプライアンス指向の攻撃面チェックリスト
以下の項目は法的アドバイスを構成するものではありません。これらは「最小権限」の原則を、セキュリティレビュアーが確認できる具体的なゲートポイントに変換したものです。
- シェル履歴に平文トークンを残さないでください:LaunchDaemon または CI シークレットインジェクターを通じてシークレットをロードし、共有画面セッションでインライン
exportを絶対に使用しないでください。 - 運用 SSH アカウントとサービスアカウントを分離する:人間のユーザーはそれぞれの UNIX プリンシパルを使用します。OpenClaw デーモンユーザーは個人の dotfiles を所有すべきではありません。
- PR でゲートウェイ設定変更をレビューする:
gateway.bind、gateway.auth、hooks、またはgateway.httpエンドポイントに関わる変更はすべてダブルレビューが必要です。 - doctor 修復前に設定をバックアップする:アップグレード前にタイムスタンプ付きの
openclaw.jsonコピーを保持します。移行によって認証メタデータが失われた場合は、アーティファクトストレージから復元してサービスを再起動します。 - 緊急操作手順を文書化する:インシデント対応中に誰かが一時的にバインドモードを緩和した場合は、すぐにチケットを提出し、SLA ウィンドウ内にロールバックします。
マージゲートソリューション(GitHub Actions 擬似コード例)
読み取り専用の固定件または脱感作された本番設定の抜粋を Git に保存します——本番トークンは絶対にコミットしないでください。CI シークレットを通じて使い捨ての OPENCLAW_GATEWAY_TOKEN を注入し、環境変数置換が必要な検証パスが正常に実行されるようにします。このタスクには以下のステップが含まれます:
- 本番環境と同じ OpenClaw マイナーバージョンをインストールします。
openclaw config validateをチェックイン済みテンプレートとテストシークレットのマージ結果に適用します。openclaw doctor --non-interactiveを実行します。警告がポリシーの閾値を超えた場合は失敗します(多くのチームは"認証欠如"行をハードエラーとして扱います)。- オプション:PR ごとではなく夜間に
openclaw doctor --deepを実行します——深いスキャンは時間がかかり、権限昇格が必要な場合があります。
アップグレードの問題は内部の運用マニュアルに従ってください。リソース調達や SSH アクセスで問題が発生した場合は、以下のヘルプセンターリンクからチケットを提出してください。