Kemp Technologies Blogs

フォワードプロキシとリバースプロキシ: 相違点と類似点

Doug Barney | Posted on | Load Balancer

IT プロフェッショナルでさえ、フォワードプロキシとリバースプロキシの違いについて混乱している人は少なくありません。違いを理解している人でも、どの種類のプロキシをいつ使用すべきか、そしてそれぞれのメリットは何かを理解している人は少ないでしょう。まずは基本的な定義から見ていきましょう。

プロキシとは?

コンピューティングの世界では、プロキシは2つのシステム (多くの場合、クライアントとサーバー) 間の接続を仲介します。クライアントとサーバーの場合、クライアント要求はプロキシに送信され、プロキシはそれをサーバーに渡し、サーバーはデータをプロキシに送り返し、プロキシはデータをクライアントに返します。

プロキシサーバーは、クライアントと Web サーバー間の仲介役です。過去にアクセスしたページのキャッシュによる Web アクセスの高速化、ファイアウォールや負荷分散サービスの提供、プロキシ ID による IP アドレスや実 ID の保護、Web トラッキングのフィルタリング、不要なコンテンツのブロックなど、様々な目的で使用されます。

フォワードプロキシとは?

フォワードプロキシは、プロキシサーバーの中で最も一般的で、ユーザーまたはクライアントの間に介在し、Web サーバーへのユーザーリクエストを傍受します。リクエストをサーバーに直接送信するのではなく、ユーザーに代わって転送することで、ユーザーのアイデンティティを隠します。フォワードプロキシはレスポンスを検査し、承認された場合にのみユーザーに転送します。多くの場合、フォワードプロキシにはファイアウォールが組み込まれており、レスポンス内のデータの安全性を判断します。

プロキシ機能により、インターネットサーバーは実際のユーザーではなく、プロキシサーバーをリクエスト元として認識します。例えば、Web プロキシアプライアンスはクライアントマシンからのリクエストを受け取り、それをインターネットに転送します。

リバースプロキシとは?

リバースプロキシという用語は通常、1台以上のサーバー (Web サーバーなど) の手前に配置され、サーバー上のリソースに対するクライアントからのリクエストを受け付けるサービスを指します。クライアント側から見ると、リバースプロキシは Web サーバーのように見えるため、リモートユーザーからは完全に透過的です。

リバースプロキシとは、リモートまたは不特定多数のクライアントからのリクエストを、ローカル管理者が管理する既知のリソース群に対して処理するように構成されたプロキシです。その一例がロードバランサー (別名: アプリケーションデリバリーコントローラー) であり、Microsoft Lync、Exchange、SharePoint などのワークロードに対してアプリケーションの高可用性と最適化を提供します。リバースプロキシの目的はサーバーシステムを管理することです。

フォワードプロキシとリバースプロキシとはどう違うか?

フォワードプロキシでは、Web サイトはクライアントと直接通信しません。リバースプロキシでは、クライアントはバックエンドサーバーと直接やり取りすることはありません。


出典: マイクロソフト

フォワードプロキシにはどのような種類があるか?

フォワードプロキシは、主にどこに設置されているか、またはどの地域を対象としているかによっていくつかに分類されます。

  • レジデンシャルプロキシ: レジデンシャルプロキシは、一般的にインターネットサービスプロバイダー (ISP) から提供され、実際の物理的な位置を隠します。ユーザーは国や都市などの場所を選択でき、そのプロキシの IP アドレスが実在する物理的な場所に紐づいているため、ユーザーはその地域からアクセスしているように見えます。
  • データセンタープロキシ: このタイプのプロキシは、主に企業によって使用され、ISP を経由しません。データセンタープロキシは、自社のアドレスプールやサードパーティーのクラウドプロバイダーから割り当てられた IP アドレスを使用することができます。
  • モバイルプロキシ: モバイルプロキシという名称からはモバイルデバイス向けのように思えますが、実際にはプロキシの IP アドレスがモバイルネットワークに由来している点が特徴です。レジデンシャルプロキシやデータセンタープロキシが固定された発信元を持つのに対し、モバイルプロキシは固定された場所を持たないため、モバイルデータネットワークを使用しているように見せかけることができます。モバイルプロキシは、サイバー犯罪者や詐欺師によって悪用されることもあります。

フォワードプロキシを使用する理由とは?

フォワードプロキシは、プライベートネットワーク内のユーザーに対してセキュリティを強化し、元の IP アドレスを隠すことで匿名性を確保し、エンドユーザーに戻るトラフィックを制御・管理する役割を果たします。

フォワードプロキシの主な用途としては、次のような点が挙げられます。

  • 制限された地域からのコンテンツ取得: 特定の国に制限されたデータへアクセスする必要がある場合があります。たとえば、アメリカにいるユーザーがイタリアのコンテンツにアクセスしたい場合などです。フォワードプロキシは、クライアントのアイデンティティや地理的な位置情報を隠すことで、通常は特定の国に制限されているコンテンツにアクセスできるようにします。
  • Web サーバーの匿名性の維持: フォワードプロキシサーバーは、Web サーバーの実際のIPアドレスを隠し、自身のプロキシ IP アドレスに置き換えることで、Web サーバーのセキュリティを維持します。
  • Web スクレイピング: Web スクレイピングは、プロキシの最も一般的な用途の一つであり、企業が他の Web サイト (多くの場合は競合他社) から情報を収集し、市場インテリジェンスを得るために使用されます。

リバースプロキシにはどのような種類があるか?

リバースプロキシは基本的な機能や構造は共通していますが、いくつかのタイプに分類されます。

一部のリバースプロキシは、ユーザーと Web サーバーの間に位置する単純な仲介役であり、IP アドレスを隠す役割を果たします。一方で、ロードバランシングやファイアウォール機能など、より高度な機能を持つものもあります。例えば、Kemp LoadMaster のような高機能な製品は、多くの機能を備えています。

  • ロードバランサー: ロードバランサーは、クライアントからの接続を複数のサーバーに分散させる装置で、ソフトウェアまたはハードウェアとして導入できます。ロードバランサーは「リバースプロキシ」として機能し、仮想IPアドレス (VIP) を介してクライアントに対してアプリケーションサーバーを代理します。この技術はサーバー負荷分散 (SLB) と呼ばれ、単一のサイトまたはローカルエリアネットワーク (LAN) 内のアプリケーションサーバープール向けに設計されています。
  • アプリケーション配信コントローラー: アプリケーション配信コントローラー (ADC) は、ロードバランサーと呼ばれることもあり、Web サーバーの負荷を軽減し、アプリケーション処理に集中させるためのネットワークサーバーです。ADC は、アプリケーション配信ネットワークの中核の中核を成し、ネットワーク上でアプリケーションを効率的に配信するために複数の技術と連携して導入されます。
  • 暗号化サーバー: このタイプのプロキシは、TLS や証明書管理などの暗号化サービスを提供します。
  • キャッシュサーバー: キャッシュサーバーは、頻繁にアクセスされるコンテンツをキャッシュすることで、Web のパフォーマンスを向上させることを目的としたサーバーです。
  • コンテンツ配信ネットワーク (CDN): CDN は、トラフィックの多い Web サイト向けに設計されており、ユーザーに近い場所にコンテンツをキャッシュすることで、より高速な配信を実現します。地理的に分散されたデータセンターにより、コンテンツを効率的に保持・配信します。
  • Web アプリケーションファイアウォール: Web アプリケーションファイアウォール (WAF) は、従来のファイアウォールのセキュリティ機能を強化したもので、HTTPS の暗号化トラフィックを復号して内容を検査することができます。Web アプリケーションファイアウォールは、標準的なファイアウォールと Web サーバーの間に論理的に配置され、ネットワークスタックのレイヤ7で動作します。既知の攻撃手法のリストと照合して悪意のあるアクティビティを検出し、Web サーバーへのアクセスをブロックできます。

ロードバランサーとリバースプロキシはどう違うか?

リバースプロキシは、クライアントからのリクエストを受け取り、それをサーバーに転送して処理させ、サーバーのレスポンスをクライアントに返すという、比較的シンプルな仕組みです。

リバースプロキシは、クライアントとサーバーの間に抽象化されたレイヤを提供します。これにより、ハッカーがサーバーと直接やり取りすることができず、DDoS 攻撃などの成功を防ぐことができます。

一方、ロードバランサーは、クライアントからのリクエストを受け取り、あらかじめ定義された複数のサーバーに分散させます。このとき、最も適したサーバー (例えば、負荷が最も少ないサーバー) がリクエストを処理し、クライアントにレスポンスを返します。すでに負荷の高いサーバーが過負荷になるのを避けることができ、処理速度が向上しきます。

実際には、ロードバランサーはリバースプロキシの一種です。ロードバランサーは、アプリケーションを表す仮想IPアドレス (VIP) をクライアントに提示します。クライアントはこの VIP に接続し、ロードバランサーは独自のアルゴリズムに基づいて、接続先のアプリケーションインスタンスを決定します。接続後も、ロードバランサーはその通信を継続的に管理・監視します。

ロードバランサーの役割

アプリケーションのワークロード/サーバー

ロードバランサーは、アプリケーションに可用性とスケーラビリティを提供します。これにより、アプリケーションは単一のサーバーの処理能力を超えて拡張することが可能になります。ロードバランサーは、様々な負荷分散アルゴリズムを用いて、トラフィックを利用可能なサーバープールに振り分けます。リソースがさらに必要な場合は、サーバーを追加することで対応できます。

可用性の確保

ロードバランサーは、サーバー上のアプリケーションに対してヘルスチェックを実行し、その可用性を確認します。ヘルスチェックに失敗した場合、そのアプリケーションインスタンスは利用可能なサーバープールから除外されます。アプリケーションが復旧すると、再度ヘルスチェックが行われ、正常であればサーバーは再びプールに戻されます。

プロキシに関するよくある質問

VPN はフォワードプロキシですか?

はい、VPN はフォワードプロキシの一種です。ただし、基本的なフォワードプロキシとは異なり、VPN は送受信されるデータを暗号化します。

VPN は、エンドユーザーのIPアドレスを隠すなど、プロキシと似た機能を持っていますが、より広範なセキュリティ対策を提供します。VPN は、ユーザーがアクセスするすべてのサイト、アプリ、リモートロケーションに対して適用されます。

プロキシはアプリケーションレベルで動作し、特定のブラウザやプログラムのトラフィックのみをリダイレクトします。一方、VPN はオペレーティングシステムレベルで動作し、ユーザーのすべてのトラフィックを VPN サーバー経由でリダイレクトします。

DNS フォワーディングプロキシとは何ですか?

DNS プロキシは、DNS クライアントと DNS サーバー間でリクエストおよびレスポンスを転送することができます。これにより、DNS 応答が高速化され、ネットワークの遅延が軽減されます。さらに重要なのは、DNS フォワーディングによって DNS アドレスが保護され、悪意のある攻撃者から守られる点です。

DNS フォワーディングでは、内部 DNS サーバーリクエストをインターネットサービスプロバイダーの DNS サーバーに転送するなど、DNS リクエストを1つの DNS サーバーから別のサーバーに転送します。

ビジネスに最適なプロキシはどれですか?

どのプロキシを選ぶかは、何を保護したいか (クライアントか Web サーバーか)、およびどのような機能が必要かによって決まります。アイデンティティの保護だけが目的であれば、基本的なプロキシで十分な場合もあります。しかし、Kemp LoadMaster のような高機能なプロキシは、アプリケーション配信、暗号化管理、Web ファイアウォール機能など、豊富な機能を備えています。

フォワードプロキシは、Web サイトの IP アドレスを隠し、エンドユーザーと直接通信しないようにすることで、Web サイトを保護します。また、よくあるリクエストのデータをキャッシュすることで、エンドユーザーへの応答速度を向上させます。Web サイトのパフォーマンスとセキュリティを重視するなら、フォワードプロキシが有効です。

リバースプロキシはその逆で、エンドユーザーが Web サイトやバックエンドサーバーと直接通信しないようにします。エンドユーザーのリクエストを最も利用可能なリソースに振り分けることで、応答速度を向上させます。また、匿名性や SSL などの暗号化を通じて、エンドユーザーのセキュリティも提供します。

フォワードプロキシはリバースプロキシとして機能しますか?

いいえ、フォワードプロキシはリバースプロキシとして機能できません。両者は目的が正反対であり、役割も異なります。

もっと詳しく知りたい場合

アプリケーション配信を最適化する高性能ロードバランサーについては、アプリケーション配信コントローラーのページをご覧ください。また、Web アプリケーションファイアウォールの詳細ページも是非ご参照ください。