ネットワークスペシャリスト試験でよく出題されるプロキシサーバ。
直近で解いた平成30年度 ネットワークスペシャリスト試験 午後Ⅰ試験 問1でも出題された。
なぜインターネット上のWebサーバと直接やり取りせずに、プロキシサーバを経由するのか。
もちろんこれには理由がある。
IPアドレスの節約やネットワーク上に不要な通信を発生させないこと、セキュリティ対策などだ。
見えないところで非常に重要な仕事をしてくれるプロキシサーバ。
この記事で「プロキシサーバ」の概要を抑えてしまおう!
プロキシサーバとは
また新しい言葉じゃのぉ~
プロキシサーバはWebサーバとの通信を代行してくれます!
プロキシは英語で「proxy」と書き、「代理」の意味である。
つまり、プロキシサーバは企業などの組織がインターネット上のWebサイトにアクセスする際に、その通信を代行してくれるサーバである。
イメージとしてはこのような感じである。
クライアントPCがインターネット上のとあるWebサーバで生成されるHTMLを閲覧するケースだ。
上図のイメージを使って流れを抑えよう。
- クライアントPCはインターネット上のWebAPサーバに直接アクセスするのではなく、プロキシサーバを経由するように設定して、プロキシサーバにリクエストを送る。
- プロキシサーバはクライアントPCの代わりにWebサーバのHTMLをリクエストする。
- WebサーバはリクエストされたHTMLをプロキシサーバにレスポンスとして返す。
- プロキシサーバはクライアントPCにHTMLをレスポンスとして返す。
この時、プロキシサーバはこのHTMLをキャッシュする。
クライアントがリクエストしたHTMLがプロキシサーバにキャッシュされていた場合は、WebAPサーバにはアクセスせず、プロキシサーバがクライアントPCにHTMLをレスポンスとして返す。
プロキシサーバの仕組みがなぜ必要なのか?
そもそもなぜプロキシサーバなんて必要なのじゃ?
サーバ1台分の構築や電気代などもったいないと思うのじゃが、、、
いくつかの理由がありますので、説明します!
まず、プロキシサーバが存在しない場合、どういう流れになるかを図示してみる。
ファイアウォールなどのネットワーク機器はいったん省略する。
クライアントはそれぞれが所定のWebサーバにアクセスしてしまう。
すると、いくつかの問題が発生する。
- インターネット向けの通信が多数発生してネットワーク帯域を圧迫する
- グローバルIPアドレスを大量消費する
- セキュリティが脆弱になる
プロキシサーバが存在すれば、上記のような問題が解消できる。
前述の通り、プロキシサーバがクライアントの代わりにWebサーバにアクセスするため、グローバルIPアドレスの使用を減らせることができる。
また、プロキシサーバにキャッシュされているHTMLはプロキシサーバからクライアントに返すため、インターネット向けの通信も低減できるというわけだ。
そして、最近のプロキシサーバの役割で一番重要なのがセキュリティ対策として利用できる点だ。
プロキシサーバがセキュリティ対策になる理由はなぜじゃ?
次の章でプロキシサーバがセキュリティに役立つ理由を述べます!
プロキシサーバは認証とフィルタリング機能を提供する
プロキシサーバのセキュリティ対策として大きく2点ある。
- フィルタリングルールが設定できる
- クライアントを認証できる
まずは、フィルタリングルールが設定できる点から説明しよう。
企業などの組織がその組織に所属する人たちに見せたくないサイトが存在する。
例えば、仕事でギャンブルやアダルトサイトの閲覧は必要ないケースが大半だ。
このようなサイトへのアクセスをクライアントがリクエストしてきた場合に、プロキシサーバではフィルタリングルールの設定によって拒否することができる。
具体的には、URLフィルタリングやコンテンツフィルタリングの設定が可能だ。
イメージとしてはこんな感じだ。
もう一つはクライアントを認証できる点だ。
プロキシサーバにクライアントPCの証明書を登録してクライアント認証することが可能である。
クライアントを認証することで、悪意を持つPCが不正にプロキシサーバ経由でインターネットのWebサーバにアクセスしようとしても拒否することが可能になる。
こちらもイメージにするとこのような感じだ。
HTTPS通信時はCONNECTメソッドを使用する
プロキシサーバを経由してインターネット上のWebサーバに接続する際に、HTTPS通信を利用するケースが増えてきている。
例えば、インターネット上のとあるサイトでネットショッピングを行う際に、決済のためにクレジットカード番号や住所など、不特定多数の人に見られたくない情報を入力しなければならないケースだ。
このような情報を守るために、暗号化通信としてHTTPSを利用する。
ただ、プロキシサーバを経由してHTTPS通信で当該Webサーバに接続する際には異なる手法が用いられる。
それが、CONNECTメソッドである。
HTTPS通信では、クライアントPCとWebサーバ間で共通鍵を使用して暗号化を行う。
共通鍵を使用した暗号化の仕組みは本題からそれるため割愛するが、この共通鍵はプロキシサーバは所持していない。
なので、クライアントPCとプロキシサーバ間、プロキシサーバとWebサーバ間で異なる共通鍵を使用した通信が必要となってしまう。
このようにプロキシサーバが間に入ってしまうと、クライアントPCとWebサーバ間で異なる共通鍵を使用してしまうがゆえに通信が成立しなくなる。
この問題を回避するために、プロキシサーバは透過してねと指令を与えるのがCONNECTメソッドである。
イメージとしてはこんな感じだ。
まとめ
今回はプロキシサーバに関する学習内容をまとめてみた。
最後に今日のまとめをしてみたいと思う。
- プロキシサーバは代理でWebサーバとやり取りしてくれるサーバ
- プロキシサーバはIPアドレスが節約できる
- プロキシサーバのキャッシュ機能でネットワークを効率よく利用できる
- プロキシサーバで認証やフィルタリングによるセキュリティ対策が行える
- HTTPS通信時はCONNECTメソッドを利用する
最後に、平成30年度 ネットワークスペシャリスト試験 午後Ⅰ試験 問1の復習として、プロキシサーバの学習に使用した非常にわかりやすい書籍を紹介する。
こちらも何度も読んで理解を深めるようにしたいと思う。
コメント