「プロキシ」とは、ネットワークに接続する際に中継を行うサーバのことを指す。
「プロキシ」とは、ネットワークに接続する際に中継を行うサーバのことを指す。プロキシは「代理」の意味を持ち、プロキシサーバが利用者の代理で通信を行う。
用途によって「フォワードプロキシ」と「リバースプロキシ」に大別される。
内部のネットワークからインターネットに接続する際に中継を行うプロキシサーバをフォワードプロキシという。単にプロキシという場合はフォワードプロキシを指している場合が多い。
現在では主に以下のような目的で利用される。
社内や学内の内部ネットワークはセキュリティを確保するために外部との通信を遮断したい場合がある。内部ネットワークからインターネット上のWebサイトの閲覧やメール、FTPなどの通信を行う必要がある場合、利用者はプロキシサーバを経由して外部に接続することになる。
その際にアプリケーションゲートウェイ方式のファイアウォールを利用することで、アクセス制限やコンテンツフィルタリング、ウイルスの検出、ロギングなどを行える。
プロキシサーバはインターネットとの通信を一時的にキャッシュできる。これにより一度接続したWebサイトなどへの接続の際にインターネットとのトラフィックを抑えつつ、高速にデータを返すことができる。
プロキシサーバが接続先のサーバにクライアントの情報を通知しなかった場合、接続先のサーバからはプロキシサーバの情報のみが分かり、クライアントの情報は分からない。これにより、クライアントは接続先のサーバに対して匿名性を確保できる。
また、接続先のサーバがクライアントのIP、プロバイダー、国などに対して接続制限を行っている場合、その制限に当てはまらないプロキシサーバを経由することにより制限を回避できる。
ただし、基本的にプロキシサーバは通信のログを保持しているため、完全な匿名性が確保できているわけではない。
利用者を制限していないプロキシ(「公開プロキシ」と呼ばれる)がスパムや荒らし行為に利用される場合があり、書き込みや編集などの一部を制限しているサービスも多い。
リバースプロキシはWebサーバの代わりにクライアントの接続を受け付けるサーバである。リバースプロキシが設置されている場合、Webサーバへの接続は常にリバースプロキシを経由して行われる。
リバースプロキシは以下のような目的で設置される。
全ての接続がリバースプロキシを経由することになるため、Webサーバに直接アクセスされることがなくなる。Webサーバに要求を中継する前にアクセス制御を行う他、URL内容を検査、変更することもできる。
また、複数のシステムを一度のログインで利用可能とするシングルサインオンでもリバースプロキシを利用するタイプがある。この場合リバースプロキシが認証を行い、アクセスが認められればWebサーバとの中継を行うため、Webサーバ側で認証の機構を用意する必要がないといった利点がある。
複数のWebサーバを用意し、リバースプロキシが要求を割り振ることでWebサーバの負荷を分散できる。同機能を持つサーバに処理を分担させる他、動的なコンテンツと静的なコンテンツで処理するサーバを分けるといった運用も可能となる。
リバースプロキシはWebサーバが行っていた処理の一部を肩代わりすることにより、Webサーバへの負担を軽減する機能を持つものも多い。
例えば、通信の内容をキャッシュし、過去に一度要求された内容をWebサーバに負荷をかけることなく高速に返すことができる。この際に静的なコンテンツのみをキャッシュし、動的なコンテンツのみをWebサーバに要求するなどの柔軟な対応も可能である。
その他、専用のハードウェアを用意し、暗号化や圧縮をリバースプロキシが引き受けることでWebサーバの負荷を軽減しつつ、高速化を狙うことができる。
【2004/1/1】初版公開。
【2018/11/19】最新情報に合わせて内容を書き直しました(セキュリティ・キャンプ実施協議会 著)。
Copyright © ITmedia, Inc. All Rights Reserved.