
私は長い間 ColdFusion を使ってきました。私の頭の中に植え付けられているのは、セキュリティを最大限に高めるには、Web サーバーを ColdFusion サーバーから物理的に分離する必要があるということです。そのため、私は常に Adobe が「分散モード」と呼ぶものを使用してこれを実行してきました。IIS は 1 つのサーバー上にあり、ColdFusion は別のサーバー上にあります。これらは通常どおり、ネットワーク経由ではありますが、Web コネクタを介して通信します。
ここ数年、リバース プロキシの使用は分散モードで実行するのと同じくらい安全であると述べている投稿を目にしてきました。リバース プロキシ セットアップでは、Web サーバーと ColdFusion サーバーは同じ物理マシン上にありますが、リクエストを処理し、Web サーバーとして機能 (基本的に) するプロキシ サーバーがあります。それでも、私は物理的に分離する方が安全だと考えています。
インターネット上で明確な推奨を見つけるのは難しい。分散モードは、ColdFusion 11 ドキュメント-マルチホーミングや分散使用に関する情報を含む、Web サーバー設定ツールの詳細については、『ColdFusion の設定と管理』ガイドを参照してください。(ただし、参照されているページには、それに関する情報はあまりありません。)両方のセットアップは、さまざまなブログや投稿で言及されているようですが、分散モード セットアップよりもリバース プロキシ セットアップを使用する人の方が一般的だと思います。具体的なことは何もありませんが、Web を調べた結果、私が感じたことです。Web サーバーと ColdFusion サーバーを別のサーバーに配置して分散モードで実行すると、セットアップ時に複雑さが増します。静的ファイルは Web サーバー上に、CFML ファイルは ColdFusion サーバー上にあります。などなど。サードパーティ製品を使用している場合、これを正しく構成するのが難しい場合があります。
そこで質問なのですが、他の条件がすべて同じだと仮定した場合、最大限のセキュリティを実現するために、分散モードとリバース プロキシ設定のどちらを使用するのでしょうか。また、そうする理由も教えてください。
残念ながら、ColdFusion のロックダウン ガイドでは、この問題がわかりにくくなっています。私が見つけた内容は次のとおりです。
の中にColdFusion 9 ロックダウン ガイド(14-15ページ) そこにはこう書かれています:
ColdFusion を分散モードでインストールすることも検討してください。これにより、Web サーバーを ColdFusion サーバーとは物理的に別のサーバーに配置できます。また、複数の Web サーバーを 1 つの ColdFusion サーバーに接続することもできます (ColdFusion 9 のドキュメントでは、これをマルチホーミングと呼びます)。この分離によりセキュリティが強化されるため、最大限のセキュリティを必要とする環境では検討する必要があります。分散モードをインストールするには、組み込みの Web サーバー オプションを選択します。分散モードの設定については、次を参照してください。http://www.adobe.com/support/coldfusion/administration/cfmx_in_distributed_mode/cfmx_in_distributed_mode02.htmlマルチホーミングの詳細については、http://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf364104-7fc3.html。
公開 Web サーバーと ColdFusion サーバーを分離するもう 1 つの方法は、リバース プロキシを使用することです。リバース プロキシ セットアップでは、ColdFusion サーバーに Web サーバーがインストールされていますが、すべての外部クライアント要求はプロキシ サーバーによって処理され、特定の要求は処理のために ColdFusion サーバーに送信されます。
の中にColdFusion 10 ロックダウン ガイド(27 ページ) その記述は次のように短縮されました。
セキュリティを最大限に高めるには、Web サーバーと ColdFusion を別の物理サーバー上で実行することを検討してください。公開 Web サーバーと ColdFusion サーバーを分離する 1 つの方法は、リバース プロキシを使用することです。
リバース プロキシ セットアップでは、ColdFusion サーバーに Web サーバーがインストールされますが、すべての外部クライアント要求はプロキシ サーバーによって処理され、特定の要求のみが処理のために ColdFusion サーバーに送信されます。リバース プロキシをセットアップするには、Web サーバーのドキュメントを参照してください。
そして、ColdFusion 11 ロックダウン ガイドどちらについても言及されていません。他のドキュメントでは、Web サーバー構成ツールの実行とともに、11 ページまたはそのあたりに記載されているはずです。Pete が最新のドキュメントからこれを削除した理由が非常に気になります。
私は Adobe ColdFusion を使用していますが、より多くの情報を得るために、この質問に Railo のタグも付けました。
答え1
あなたは、「分散モード」(Web サーバーと CF サーバーを別のボックスに配置する)をリバース プロキシの使用と相互に排他的であると混同しています。実際には、これらは 2 つの別々の問題です。リバース プロキシは、標準の Web コネクタを使用する代わりに使用するものです。Web サーバー (IIS、Apache、Nginx) が CFML ページの要求を、CF ボックスの特定のホスト/ポートの HTTP/HTTPS または AJP ポートにリダイレクトするだけです。適切なポートが開いている限り、リバース プロキシをローカルホストまたはネットワーク上の他のサーバーにプロキシするように構成できます。
たとえば、Tomcat のポート 8009 で AJP リスナーを有効にすることができます。次に、Apache Web サーバー (ネットワーク上の任意の場所) で、proxy_ajp モジュールを使用して、.cfm ファイルの要求をそのポートにリバース プロキシします。
私は個人的には分散モードを扱ったことはありません。私の Web サーバーを狙った攻撃ベクトルの数ははるかに少ないように思われるからです。ただし、「分散モード」を使用する場合は、標準コネクタまたはリバース プロキシを使用して実行できます。それはあなた次第です。
答え2
分散モードまたはリバース プロキシ設定では、ほぼ同じレベルのセキュリティが提供されますが、分散モードには、高可用性と信頼性のサーバー シナリオが追加されます。