プロキシ
プロキシ(proxy; ˈ)とは「代理」の意味である。インターネット関連で用いられる場合は、特に内部ネットワークからインターネット接続を行う際、高速なアクセスや安全な通信などを確保するための中継サーバ「プロキシサーバ」を指す。プロキシサーバはインターネットへのアクセスを代理で行うサーバを指す。
プロキシはクライアントとサーバの間に存在し、情報元のサーバに対してはクライアントの情報を受け取る、クライアントに対してはサーバの働きをする(HTTPプロキシの場合)。
なお、プロキシは、「プロキシー」「プロクシ」「プロクシー」のほか、リバースプロキシの対義語として「フォワードプロキシ」とも呼ばれる。
誰でも自由に使えるプロキシサーバを公開プロキシ(オープンプロキシ)という。ウェブサイトによっては、公開プロキシによるアクセスを制限することがある。
プロキシを使用する目的としては、次のようなものがある。
同一プロバイダの管轄内のような独立のネットワークの内部から、外部のウェブサーバにアクセスしデータを受け取る場合、一度目のアクセスでウェブサーバの返してきたデータをネットワークの出入り口に設置したプロキシに一時的に保存しておき(このプロキシ内のデータはキャッシュと呼ばれる)、次回からのアクセスはウェブサーバではなく、このプロキシサーバからキャッシュされたデータを受け取るようにすれば、データの取得を高速化できる。
しかし、ウェブサーバのデータが更新されてもプロキシサーバ内のデータが更新されていない場合もあるので、注意を要する。また、初めてアクセスするページに対しては、キャッシュが存在しないために、直接アクセスするよりも必然的に遅くなる。このため、インターネットが普及し始めた1990年代には、現在と比べて低速だった個別回線(ダイヤルアップ接続28.8から33.6 kbps程度。)や、結節点のインターネットエクスチェンジ(IX)へのバックボーン回線の容量(数百kbpsから、多くても数Mbps程度)を補う目的で、多くのプロバイダで契約者用プロキシサーバが用意されたが、その後のIXやバックボーン回線の増強、2000年頃からの、ウェブページ(ウェブサイト)数の爆発的な増加や、いわゆるブロードバンドインターネット接続の普及などによって、プロキシは長所よりも短所の方が目立つようになり、単なるウェブサイトへのアクセスの高速化を目的としたプロキシサーバは廃止したプロバイダが多い。ただし、後述のリバースプロキシの場合、負荷の大きいサーバに対してはむしろ増えている。
キャッシュ機能としてのプロキシサーバ用ソフトとしては、DeleGateやSquidなどが有名である。
外部ネットワークからの接続要求を中継して内部に接続するものをリバースプロキシと呼び、主に負荷分散等の目的で用いられる。
1台の本サーバに対して複数のリバースプロキシ(ミラーサーバ)と、それに「1つのホスト名に複数のIPアドレスを割り振る」との役割を持つDNSラウンドロビンによって成り立つ形式が多い。その場合は、リバースプロキシを備えたホストに、クライアントからリクエスト(アクセス)が有るとDNSラウンドロビンにより、ランダムで各リバースプロキシの一つに辿り着き、リバースプロキシ自身に格納されたキャッシュ情報をクライアントへと返信する。リバースプロキシは、一定時間ごとに本サーバを参照して、キャッシュを更新する。
すなわち、大量のアクセスが本サーバの代わりに複数あるリバースプロキシのどれかに届くことで処理が分散され、1台のサーバだとダウンするような大量のアクセスにも耐えられる。
しかし、そのDNSラウンドロビンによる方法にも欠点が幾つかあり(「機体の物理的な性能上限により、Soft面での限界も有る」など)、それを補うためにクラスター方式(PCを連結する方式)を採用する観点も有る。
外部ネットワーク(主にインターネット)からのアクセスは、全てプロキシを経由して各使用者のパソコンなどのクライアントに届くようにする。プロキシが通信内容をチェックすることで、クライアントが外部ネットワークに直接晒されなくなり、不正アクセスや侵入行為が困難になる。
プロキシサーバにアンチウイルスソフトウェアをインストールすることで、通信内容にウイルスが含まれていないかチェックすることもできる。
ウイルスが内部に侵入して通信量が平時より増大していないか、使用しないサービスのポートを使用していないか、ログを定期的に監視することで安全性を高めることもできる。
TLS/SSLによる通信も、プロキシサーバを介して行う際は、暗号化した内容を一度復号して内容をチェックすることもできる。チェックしない場合はプロキシサーバをトンネリングする。
いわゆるフィルタリング(コンテンツフィルタリング)のためのプロキシ。
プロキシを挟んで、クライアントと外部とのやりとりを全てチェックする。その際、例えばアダルトサイトやフィッシングサイト、出会い系サイト、暴力的や違法な内容のサイトなどの有害なサイトへのアクセスを遮断するように、プロキシのプログラムに設定しておけば、クライアントが有害なサイトを見ることが出来なくなる。
ただしこれは、管理側の人間が逐一サイトを拒否リストに登録する必要があるため、登録されていないサイトはたとえ有害であっても閲覧出来てしまう。逆に違法でないサイトであったとしても、何らかの理由から登録されていると見られなくなる弊害もある。現在のところ、アダルトサイトや違法サイトは日々新しいものが生まれているため、全てを遮断するのは非常に難しい。
携帯電話がインターネットに接続する際は必ず携帯電話会社の持つプロキシサーバをデータが通るため、携帯電話会社では、親が未成年者に携帯電話を持たせる場合、なるべくフィルタリング機能を使うよう呼びかけている。
やなど、「サイトごと翻訳する」という翻訳サイトもプロキシの1つである。これらのサーバの中には日英翻訳や日韓翻訳などのプログラムが組まれており、自動的に翻訳して結果をウェブブラウザ上に表示させる。
また漢字にふりがなをつけて表示させたり、標準語を関西弁などの方言に変換、あるいは独特な言葉に変換するなどの特徴的なプロキシサーバも存在する(など)。
インターネットが普及し始めた1990年代には、各種文字コードを特定のコードに変換する公開プロキシもあった。これらは1990年代後半には、クライアント側の多言語対応が進んで役目を終えた。
プロキシが接続元・接続先とは違う場所にあれば、そのプロキシを使うことによって経路が変わるので、場合によっては経路障害を回避できることもある。
中国など当局によるネット検閲が行われている場合に、それを回避するため利用されることがある。
不特定多数が利用しうる公開プロキシを通して掲示板に書き込んだ場合、掲示板を設置しているサーバのログにはプロキシサーバのIPアドレスが残り、実際に書き込みを行ったコンピュータのIPアドレスは隠蔽される。このためプロキシを通した書き込みには、掲示板荒らしや宣伝、犯行予告に使われてしまう可能性が少なからず存在する。掲示板の管理者がプロキシの管理者にアクセスログを請求する場合があるが、プロキシの管理者が記録を取っていなかったり(単なる公衆中継点など)、定期的に記録を抹消していたり、管理者の不注意などにより意図せず公開されていたプロキシであったりすると、追跡が困難となる。書き込んだ者が複数のプロキシを使っていた(複数串と言われる)場合はなおさらである。
また、一部の悪意ある者がスパイウェアやコンピュータウイルスをプロキシサーバに仕込み、そのプロキシの利用者のPCにそれらが入り込むように細工する場合がある。そうでなくても、アクセスした間のCookieや履歴、入力したパスワードなどはプロキシサーバ管理者から丸見えになるので、セキュリティ上の問題も多数存在する。
現在、多くの企業が社内(イントラネット)から社外(インターネット)へアクセスする際にプロキシ(ゲートウェイ)サーバを設けている。これは管理者が社員を監視する役割を持っており、外部サイトの閲覧や送受信するメールは全てプロキシを通過することになる。アメリカでは社員による職務中のインターネット株取引が横行し、業務に支障をきたすとして、プロキシに残されていたアクセスログのアクセス先から職務中に株取引をしていた社員を割り出し、解雇した例もある。
セキュリティの観点などから、フィルタリングを行うため等にプロキシを導入した場合、全ての内部の接続者に使用させる必要がある。その場合明示的な設定を要すると管理コストの増大等の影響が起きる。それを解決する一つの手段が透過プロキシ(transparent proxy)である。全ての接続要求を強制的にプロキシサーバに転送し、そのプロキシサーバが接続相手になりすまして要求に答えることにより、内部の利用者にプロキシサーバを意識させなくする。また、外部からの接続要求も透過プロキシによってリバースプロキシとして中継することにより、内部にある任意のサーバに対する不正アクセスと疑われる要求をフィルタリングすることが出来る。
プロキシは、語呂合わせやサーバを通るアクセスの様子に見立てて、「串(くし)」と呼ばれることがある。また、これに関連して、プロキシを利用してインターネットに接続することを、「串を刺す」という。