リバースプロキシは、ウェブサーバーを攻撃から守り、パフォーマンスと信頼性の向上にも寄与します。フォワードプロキシとリバースプロキシに関する詳細をご覧ください。
フォワードプロキシは、単にプロキシ、ウェブプロキシ、またはインターネットサーバーとも呼ばれ、クライアント機器群の前に配置されるサーバーです。これらのPCがインターネット上のサイトやサービスにリクエストを送る際、プロキシがそのリクエストを受け取り、代わりにウェブサーバーへリクエストを送ります。
例えば、フォワードプロキシを利用した標準的な通信の例として、次の3台のPCを考えます:
A: これはクライアントの自宅PCです
B: これはフォワードプロキシサーバーです
C: これはサイトのオリジンサーバーです(サイトデータが保管される場所)
通常、インターネット通信では、PC AがオリジンサーバーであるPC Cに直接接続し、クライアントがリクエストを送り、サーバーが応答します。しかし、フォワードプロキシを配置すると、AはBにリクエストを送り、BがそのリクエストをCに転送します。Cはその後、Bに応答を返し、BがAに応答を届けます。
なぜインターネット通信にこのようなプロキシを加えるのでしょうか。フォワードプロキシを利用する理由はいくつかあります。
政府や組織による検閲を回避するためです。いくつかの政府、学校、その他の組織はファイアウォールを用いて、クライアントに限定されたインターネットアクセスを提供する場合があります。フォワードプロキシを利用すれば、クライアントは直接訪問する先ではなくプロキシに接続するため、これらの制限を回避できます。
特定のコンテンツへのアクセスを制限するためでもあります。一方で、プロキシは一連のクライアントが特定のサイトへアクセスするのを防ぐよう設定することも可能です。例えば、学校のネットワークでは、コンテンツフィルタリングのルールを適用したプロキシ経由でインターネットに接続し、Facebookなどのソーシャルメディアの応答を転送しないようにすることがあります。
インターネット上での匿名性を確保するためでもあります。通常のユーザーはより匿名でありたいと望む一方、一部地域では政府が政治的異論者に実際の措置を取る場合があります。オンラインの議論やソーシャルメディアで政府批判を行うと、罰金や拘留のリスクが生じることもあります。もし異議を唱える者がフォワードプロキシを利用して政治的に敏感な内容を投稿すれば、投稿に用いられたIPアドレスが本人へ辿られる可能性があります。この場合、見えるのはプロキシサーバーのIPアドレスだけです。
リバースプロキシは、ウェブサーバーの前に配置され、クライアント(例:ブラウザ)のリクエストをウェブサーバーへ転送するサーバーです。セキュリティ、パフォーマンス、信頼性の向上を目的として利用されます。リバースプロキシの仕組みとそのメリットを理解するため、まずプロキシサーバーの定義をおさらいします。
リバースプロキシは、複数のウェブサーバーの前に配置され、クライアントのリクエストを受け取ります。これは、クライアントの前にプロキシが配置されるフォワードプロキシとは異なります。リバースプロキシでは、クライアントがサイトのオリジンサーバーにリクエストを送ると、ネットワークの境界でリバースプロキシがそのリクエストを受け取り、オリジンサーバーに転送し、応答を受け取ります。
フォワードプロキシとリバースプロキシの違いは微妙ながらも重要です。簡単に言えば、フォワードプロキシはクライアントの前に位置し、オリジンサーバーがそのクライアントと直接通信しないようにします。一方、リバースプロキシはオリジンサーバーの前に位置し、クライアントがそのサーバーと直接通信しないことを保証します。
実際、例としてPCに名前をつけると、
D: 複数のクライアントの自宅PC
E: これはリバースプロキシサーバーです
F: 少なくとも1台のオリジンサーバーです
リバースプロキシの流れ
通常、Dからのリクエストは直接Fに送られ、Fは直接Dに応答します。しかし、リバースプロキシを使用すると、DからのリクエストはすべてEへ送られ、EがFにリクエストを送り、Fから応答を受け取って、適切な応答をDに転送します。
人気のあるサイトは常に多くのクライアントを受けるため、単一のオリジンサーバーでは全トラフィックに対応できません。そこで、サイトを複数のサーバーに分散し、各サーバーがリクエストを処理します。リバースプロキシは、リクエストを各サーバーに均等に分散させ、特定のサーバーへの負荷集中を防ぎます。もし一台のサーバーが停止しても、他のサーバーがトラフィックを処理できます。
リバースプロキシが配置されると、サイトやサービスはオリジンサーバーのIPアドレスを公開する必要がなくなります。これにより、攻撃者が直接攻撃(例:DDoS攻撃)を仕掛けるのが難しくなり、攻撃対象はリバースプロキシとなります。
この方式では、サイトは世界各地の複数のサーバーに分散され、リバースプロキシがクライアントを地理的に最も近いサーバーへ案内します。これにより、リクエストや応答の移動距離が短縮され、遅延が軽減されます。
リバースプロキシはコンテンツをキャッシュすることで、表示速度を向上させます。たとえば、パリのクライアントがロサンゼルスにあるウェブサーバーを持つサイトを訪れる場合、近くのパリのリバースプロキシに接続され、L.A.のオリジンサーバーと通信した結果が一時的に保存されます。その後、同じサイトを訪れるパリのクライアントには、保存された応答が返され、表示速度が向上します。
各クライアントのSSL(またはTLS)通信の復号および暗号化は、オリジンサーバーにとって計算負荷が高い作業です。リバースプロキシは、すべての受信リクエストを復号し、送信応答を暗号化するように設定でき、オリジンサーバーのリソースを大幅に軽減します。
リバースプロキシは多彩な機能を有し、ひとつのツールで多くの作業を実現できます。たとえば、CASBの導入モードでは、SSEの本質となります。さらに、ZTNAやSWGの構築にも重要な役割を果たします。リバースプロキシに期待する役割を明確にした上で、以下の利用例を確認してください。
在宅勤務が普及する中で、ビジネスに利用される管理されていないデバイスが多数見受けられます。従業員は会議や重要書類の送信に個人のデバイスを使用する場合があり、十分なセキュリティ対策がないため大きなリスクに晒されます。
この問題は、サードパーティのエンドポイントやパートナーのデバイスにも及び、誰も自分の個人デバイスやエンドポイントを他者に公開することは望まないため、エージェントを用いて守ることは困難です。
この点でリバースプロキシは大いに役立ち、デバイスはマルウェアやデータ漏洩から守られます。
1つの感染ファイルが、デバイスやソフトウェアを含むエンドポイント全体に悪影響を及ぼす危険があります。管理されていないエンドポイントは特にリスクが高い状況です。
リバースプロキシは、影響を受けたファイルやリソースからの自動アップロード/ダウンロードを阻止することで、悪意あるファイルの拡散を防ぎます。また、IPアドレスを隠すため、DDoS攻撃に対する十分な防御も提供されます。
負荷分散に関しては、リバースプロキシの実用性に勝るものはほとんどありません。サーバーの過負荷を防ぐために、クライアントのリクエストを分散させる役割を果たします。また、オリジンサーバーの負荷を軽減するため、コンテンツを一時的にキャッシュし、直接クライアントに送信することも可能です。
このプロキシは、クラウドアプリやデバイスからの計画的または予期しないアップロード/ダウンロードを阻止することで、データ損失を防ぐのに非常に有効です。インラインで動作し、暗号化通信の流れを監視できるため、ファイルのダウンロードやアップロードが貴社のデータ保護ルールに沿って行われているか確認しやすくなります。
リバースプロキシの実装方法は、何を実現したいかによって異なります。まず、負荷分散のためか、サイバー攻撃を防ぐためか、求める役割を明確にしてください。
次に、リバースプロキシと貴社のサイトが同じ環境で動作していることを確認してください。
サービスプロバイダーに連絡し、目標を具体的に伝えてください。HTTPリバースプロキシは多用途に利用できるため、要求事項を簡潔に伝えることが大切です。
その設定が貴社の必要性と目標に沿っているか確認し、導入や設計のルールに着目してください。これにより、最適なプロキシを選定できます。
最新情報を購読