IT PR

【何度聞いてもわからない】フォワードプロキシとリバースプロキシの違い|IT四コマ

記事内に商品プロモーションを含む場合があります

フォワードプロキシとリバースプロキシの違い
言えますか?

「プロキシ」っていう言葉、たまに聞きますよね。
IPAの基本情報技術者試験や情報セキュリティマネジメント試験でも、よく出題されます。

「前任者のPC使っていたら、変なプロキシ設定が入っていて、目的のWebサイトに繋がらなかったんですよ〜」

と言われたら、「あーそうなんですね!」と適当に話を合わせる。
でも、内心「プロキシって何だっけ」と思っている。調べてみると「フォワードプロキシ」と「リバースプロキシ」があるけど、どっちがどっちかわからない。

そんなモヤモヤを解消するべく、四コマ漫画でこの2つの違いをイメージ解説していきます。「ロキソニンなら頭痛の時飲むけど、プロキシは何度聞いても頭に入らないんだよなぁ」という方は、ぜひお読みください。

フォワードプロキシ(プロキシサーバー)とは

フォワードプロキシは、一般的には「プロキシサーバー」と呼ばれることが多いです。
また、単純に「プロキシ」と表現される場合もあります。

フォワードプロキシを例えるなら、「クライアント専属の代理人」です。

フォワードプロキシは、企業や学校などで、組織外へのWebサーバーへのアクセスを管理したい時に使われます。

フォワードプロキシを使う目的は、いくつかあります。

  • キャッシュによる処理の高速化
  • クライアントのIPアドレスを外部に伝えずに済む
  • アクセスできるWebサイトを制限する

まずは「キャッシュによる処理の高速化」です。
キャッシュされるのは、画像やJavaScriptなどの静的なコンテンツです。

プロキシがないと、クライアントとWebサーバーとの直接やり取りになります。
毎回重い画像データなどをもらっていると容量を食いますし、頻繁にアクセスするWebサイトなら、なおさら効率が悪いと思ってしまいます。

そこで、初回のアクセス時にはデータを一式もらいますが、2回目以降は自分の近くにいるプロキシくんがデータを保存しておいて、さっとデータをくれます。

泣いている時に、さっとハンカチを差し出してくれるジェントルマンのような感じです。
キャッシュされていないと、「薬局でティッシュを買ってくるから、ここで待ってて!」と言われて待たされるようなものです。

次に、「クライアントのIPアドレスを外部に伝えずに済む」という点です。

クライアントとWebサイトとの直接やり取りだと、どのIPアドレスからのリクエストか、という情報が渡されてしまいます。

ラジオ番組で「東京都千代田区永田町1、みきさんからのリクエストで、曲はイケナイ太陽!」と言われているようなものです。

また、「アクセスできるWebサイトを制限する」こともできます。

企業や学校などでは、「業務に関係のないサイト」「学生の勉強の妨げになるサイト」にはアクセスさせたくないといった事情があります。そのようなWebサイトへのアクセスをブロックすることができます。

私が学生の時は、「Flash動画」の全盛期でした。
「千葉滋賀佐賀」や「おどんうでんおどん」などのおもしろ動画がたくさん出回っていて、昼休みに学校のPCから見ていました。
先生がプロキシ設定をしていれば、こういった動画はすべてアクセス不可になっていたでしょう。

このように、フォワードプロキシは「クライアントの代理人」として、キャッシュによるアクセスの高速化、クライアントのIPアドレスの秘匿、Webサイトのアクセス制御、などの役割を担います。

リバースプロキシ(逆プロキシ)とは

リバースプロキシは、「逆プロキシ」と呼ばれることもあります。
リバースプロキシを例えるなら「Webサーバーの代理人」のようなものです。

フォワードプロキシがクライアントの代理人だとすると、
リバースプロキシは、Webサーバーの代理人です。

主な役割としては

  • キャッシュによる処理の高速化
  • Webサーバーの分散処理
  • SSL/TLS通信の終端処理
  • Webサーバーへの外部からの攻撃を防ぐ

キャッシュによる処理の高速化は、フォワードプロキシでも触れたので省略します。

Webサーバーの分散処理については、複数のWebサーバーを立てている場合、どれかのWebサーバーに処理が集中しないよう、負荷分散を行います。

例えるなら、スーパーのレジの誘導係です。
どこかのレジの行列が長くならないように、空いているレジに誘導するイメージです。

「SSL/TLS通信」の終端処理も行います。
Webサーバー側で暗号化や複合処理などの複雑な計算を行うと、Webサーバーが忙しくなってしまうので、「SSL/TLSの終端処理はリバースプロキシでやるよ!」という感じです。

SSL/TLSって何だっけ?と思った方は、以下の記事も参考にしてください。

そして、「外部からの攻撃を防ぐ」役割もあります。
Webサーバーの手前にいる「リバースプロキシ」は、外部からの攻撃に最初に被弾する盾の役割も果たします。Webサーバーに直接攻撃することはできず、リバースプロキシを攻撃することになります。

また「WAF(Web Application Firewall)」は、リバースプロキシの形態で構成されることが多く、外部からの攻撃(例:SQLインジェクションやXSS)を検知・防御します。
(ただしすべてのリバースプロキシに、WAF機能があるわけではない)

このように、リバースプロキシは「Webサーバーの代理人」とし、キャッシュによる処理の高速化やWebサーバーの負荷分散、SSL/TLSの終端処理やセキュリティの向上などに役立ちます。

プロキシ関連の用語として「CDN(コンテンツデリバリーネットワーク)」があります。

CDNはリバースプロキシの一種で、世界中に分散された「エッジサーバー」を使って、ユーザーの地理的に近い場所からコンテンツを配信する仕組みです。
Webサイトやアプリケーションの読み込み速度をあげる効果があります。

また、負荷分散やSSL/TLS終端処理、外部からの攻撃から守るなどの役割もあります。

まとめ

名称 例えると 特徴
フォワードプロキシ クライアント専属の代理人 ・「プロキシサーバー」とも呼ぶ
・キャッシュによる高速化
・クライアントの身元を外部に教えない
・Webサイトへのアクセス制限
リバースプロキシ Webサーバー専属の代理人 ・「逆プロキシ」とも呼ぶ
・キャッシュによる高速化
・Webサーバーの負荷を分散する
・外部の攻撃からWebサーバーを守る
本記事は、ざっくりイメージで理解するために書いた記事です。
もっと詳しく知りたい場合は、他の記事や書籍も参考にしてください。