透過プロキシの意味
透過プロキシ(またはインターセプトプロキシ、インラインプロキシ、TP、またはインライン仲介、ブロッキングプロキシ、制限付きプロキシと呼ばれる)は、エンドクライアントや端末とインターネットとの接続を中断する機能です。リクエストやレスポンスを変更することなく接続を遮断するため「透過的」と呼ばれます。代表的なオープンソースの透過プロキシソリューションとして、Squid Transparent Proxyが挙げられます。
例えば、企業内のクライアントがウェブに接続しようとする状況を考えてみてください。クライアントはcnn.comの別の記事を確認し、普段アクセスする地域のサイトを見ようとするかもしれません。
しかし、クライアントには気付かれず、ニュース記事はcnn.comのサーバーから届けられるのではなく、企業内に配置された透過プロキシから送信されています。これにより、管理者はクライアントの行動を監視し、不適切と判断したサイトへのアクセスを制限することが可能となります。
端末上で代理サーバを設定するには投資が必要なため、大企業や一部のISPでは透過プロキシが採用されています。その他、組織が透過プロキシを利用する理由は次の通りです:
組織内で閲覧される内容を制限するため、透過プロキシが利用される場合があります。従業員向けに、代理サーバを通じてサイトのホワイトリストやブロックリストを設定可能です。例えば、職場でのSNS利用を制限する際などです。また、図書館や学校など公共施設で採用され、保護者が子供に不適切な内容へのアクセスを防ぐためにも利用されます。
さらに、インラインプロキシを利用すればキャッシュが可能となり、通信帯域の使用量を削減できます。例えば、ある組織内で100台のPCが同じソフトウェア更新を必要とする場合、1台がダウンロード要求すると、プロキシサーバがそれをキャッシュして保存します。その後、他のPCが同じ更新を要求した際、プロキシから直接提供されるため、通信量の節約と配信速度の向上が実現されます。
無料WiFiを提供する組織では、インラインプロキシを使用してクライアントの身元確認を行う場合があります。例えば、カフェのWiFi利用時、最初にサインインページが表示され、利用規約に同意することでネット接続が許可されます。
透過プロキシは、デバイスの設定変更なしでクライアントの接続に適用できるため、制限付きプロキシとも呼ばれます。また、ネットワークに導入する際、クライアントからの同意を求める必要がありません。
このため、クライアントの知らぬ間に透過プロキシが設定されることがありますが、場合によってはプロキシの存在が通知されることもあります。一部のサイトでは、クライアントへ行動が監視されている旨のメッセージを表示することもあります。
透過プロキシは、組織やサイトの管理者が設定するものであり、エンドクライアント自身が設定するわけではありません。基本的に、利用者はプロキシが設置されていることに気付かないのです。
透過プロキシを設定する際、考慮すべき主なパラメータは以下の通りです:
透過プロキシは、クライアントのウェブ閲覧体験に機能を追加するさりげない手法です。
組織はリクエストを制御・修正することで、ユーザーがサービスとどのように関わるかをより効果的に管理できます。
クライアントは接続が常に透過プロキシを経由することで、サービスのパフォーマンス向上を享受でき、ネットワーク管理はサービスプロバイダー側に委ねられます。
クライアント端末に透過プロキシを導入することで、端末への全てのトラフィックがプロキシに傍受されます。クライアント側で透過プロキシを利用する事例は以下の通りです:
透過プロキシを利用して、不適切なコンテンツのアクセスを遮断することができます。例えば、特定のサイトがアクセスされた場合、プロキシがウェブサーバへのリクエスト送信を阻止し、サーバからの通信を傍受してエラーや接続障害をクライアントに通知する仕組みです。
設定に基づきネットワークトラフィックを変更またはブロックするために、ドアプロキシを利用することも可能です。例えば、ファイアウォールは、内部ネットワークとウェブ間の通信を許可する一方、設定した条件に違反するトラフィックをブロックするインラインプロキシです。
例えば、多数の利用者が同一のコンテンツにアクセスする場合—例として、学校ネットワークで多数の学生がニュースサイトにアクセスする場合—キャッシュを利用してコンテンツを保存し、他の利用者に提供するのは効果的です。インラインプロキシを活用すれば、組織やオフィス、コミュニティ全体でこの仕組みを導入できます。
組織を運営している場合、インラインプロキシを使って利用者のトラフィックやネット上の行動を監視することが可能です。
ただし、トラフィック監視は悪用されるケースもあり、例えば不正な公共WiFi管理者が他の利用者の接続を監視し、情報や認証情報を盗む恐れもあります。
公共WiFiスポットや携帯通信事業者は、利用者にネットワーク上で認証を促し、利用規約に同意させるために透過プロキシを導入する場合があります。利用者が認証・同意すると、ウェブ接続が許可されます。
認証画面を通過しても、全ての接続がインターセプトされ、管理者に監視される可能性があることに気付かない場合もあります。
TCPインターセプトによるDoS防御
TCPインターセプトは、SYNフラッドを利用したDoS攻撃に対抗するための直接代理方式です。ウェブサーバへの全トラフィックを傍受し、クライアントのリクエストを検証し、3ウェイハンドシェイクを実行します。成功すればサーバとのハンドシェイクを完了し、クライアントとサーバ間の接続を一時的に結合します。
TCPインターセプトは、TCPリクエストを監視し、接続確立まで(通常30秒間)待機します。アイドル状態の接続数が一定の閾値を超えると、『アグレッシブモード』に入り、新たな接続があるたびに最も古いアイドル接続を切断します。
しかし、この手法は、現代の大規模なDistributed Denial of Service (DDoS)攻撃には十分対策できません。攻撃者は数百台のサーバや無数のゾンビPCを用いて、TCPブロック制御装置を圧倒するようなSYNフラッドを発生させる可能性があります。
そのため、ImpervaのDDoS Protectionのようなクラウドベースのサービスが利用されています。クラウド型DDoSサービスは需要に応じてスケールし、非常に大規模な攻撃に対応できるほか、TCP層以外の増幅攻撃やアプリケーション層攻撃からも保護できます。
直接プロキシとCDNによるフロントエンド最適化
Content Delivery Network (CDN)は、世界中に分散したプロキシサーバのネットワークで、ユーザの近くからコンテンツをキャッシュし提供します。
ImpervaのGlobal Content Delivery NetworkのようなCDNは、サーバ側で動作する直接プロキシの一形態で、フロントエンドの加速によってエンドユーザ体験の向上を図ります。ウェブサーバへのトラフィックを傍受し、クライアントがオリジンサーバに直接アクセスする代わりに、キャッシュから同一のコンテンツを提供するため、クライアントのパフォーマンス向上とサーバ側の負荷軽減が実現されます。
スターバックスのカフェにて、クライアントがPCを店舗のWiFiネットワークに接続しようとする場合、インターネットブラウザを開くと、プロキシサーバが全通信を仲介します。クライアントには別画面が表示され、特定の利用規約に同意するよう促され、同意後にプロキシが通信を本来の目的地へ転送します。
より大規模な例として、MaxCDNのようなCDNは直接プロキシの一種です。CDNはキャッシュと高速化機能を提供し、オリジンのシステムに負荷をかけずに動作します。クライアントは直接サービス提供者に接続していると感じますが、実際は全てのリクエストがCDNによって処理され、Google、Facebook、Twitterのようなサービスが短いダウンタイムで多数のリクエストを処理する仕組みとなっています。
ネットワークとのやり取りは、透過プロキシの利用によって形作られます。インターセプトプロキシには欠点もありますが、高速なコンテンツ配信、不適切な情報のフィルタリング、利用者に対するより効果的なネットワーク管理など、利便性を損なうことなく多くの機能向上を実現します。その結果、どのようなネットワークにも大きな改善がもたらされ、インターセプトプロキシはインターネットに欠かせない機能を提供しています。
最新情報を購読