Maru@maru

Dev Hub

Translated from Korean

Coolify運用環境のセキュリティ強化ガイド:インストール直後に閉じるべきポートと設定

セルフホスティングプラットフォームであるCoolifyをVPSにインストールすれば、複雑なKubernetesやクラウドコンソールを使わずに、Vercelのようなデプロイ環境を自前で構築できます。コマンド一行で手軽にインストールできますが、初期設定直後のインスタンスは、外部の攻撃者によるスキャンで標的にされやすい状態です。

Coolify v4を本番環境へ投入する前に必ず実施すべきセキュリティ強化手順と注意点をまとめました。

ドメイン接続後、8000、6001、6002ポートの外部公開を遮断する

インストール直後は、ダッシュボードへアクセスするためにいくつかのポートがホストIPに対して直接開放されています。

8000番ポートは初期のWebダッシュボード接続用、6001番はリアルタイムイベント通信用、6002番はブラウザ上のWebターミナルプロキシ用です。80番と443番は、Coolify内部のリバースプロキシであるTraefikが外部WebトラフィックとSSL証明書の発行を処理するために使用します。

カスタムドメインを設定し、Traefik経由でHTTPS接続によるダッシュボードアクセスが可能になったなら、8000、6001、6002ポートを外部に開放しておく必要はありません。ドメイン連携後は、ダッシュボードとWebsocketのトラフィックはすべて443番ポートを通じてやり取りされるためです。

クラウドのセキュリティグループやファイアウォール設定で、これら3つのポートへのインバウンドアクセスを直ちに遮断してください。ただし、サーバーへの接続を維持するために、SSHポートおよび80番、443番ポートのルールは変更しないよう注意が必要です。

Dockerネットワークの迂回を防ぐためのローカルホストバインディング

Linuxホスト上のUFWファイアウォールだけを過信して失敗するケースがよくあります。これはDockerデーモンがiptablesのチェーンを直接書き換えてしまうため、UFWルールを迂回してコンテナのポートが再び外部に開放されてしまう現象が起こるからです。

最も確実な解決策は、クラウドの仮想ネットワークレベルでセキュリティグループを設定するか、あるいはCoolifyコンテナのポートバインディング自体をローカルループバックアドレス(127.0.0.1)に制限することです。

Coolify v4のソースディレクトリにオーバーライド用設定ファイルを追加しておけば、アップグレードスクリプトを実行しても設定が上書きされず維持されます。

/data/coolify/source/docker-compose.override.yml ファイルを開き、ポートマッピングをローカルホストに限定します。

yaml

ファイルを保存した後にアップグレードスクリプトを再実行すると、Dockerデーモンはコンテナのポートを外部公開IPではなくローカルホストにのみバインドするため、任意のスキャンを根本から遮断できます。

重要な環境変数ファイルのバックアップと権限管理

Coolify制御部の重要な情報は /data/coolify/source/.env ファイルに記録されます。データベースの暗号化キーやマスター設定がこの単一ファイルに含まれているため、ファイル権限を厳格に制限する必要があります。

ルートユーザーのみが該当ファイルにアクセスできるように権限をチェックし、構成管理ツールに誤ってアップロードされないよう、オフラインで別途バックアップを保持するのが安全です。

ダッシュボード内部の設定では、管理者アカウントの2要素認証(2FA)を有効にし、不要な公開登録オプションはオフにしておく必要があります。Coolifyの管理者権限はホストのroot権限と同等の影響力を持つため、デプロイ権限が不要な一般の作業者には、読み取り専用の役割を付与することを推奨します。

Loading comments…