II-9-2. プロキシサーバの仕組みと構築・設定方法
Linuxで動作するプロキシサーバであるSquidを導入、構築し、設定を行う手順を解説する。プロキシサーバ運用のメリットを示し、プロキシサーバが実際に動作する状況について解説する。 |
【学習の要点】
* プロキシサーバは外部ネットワークが提供するサービスを、内部ネットワークに存在するクライアントへ提供するための代理サーバとして利用される。
* プロキシサーバにてキャッシュを行うことにより内部ネットワークから外部ネットワークへのトラフィックを低減することができる。
* 内部ネットワークへの不正侵入などを防ぎながら、内部ネットワークから外部ネットワークへのアクセスができる。
* 代表的なプロキシサーバであるSquidの設定を行いプロキシサーバの実際の動作を確認する。
図II-9-2. プロキシサーバの動作
【解説】
1) プロキシサーバとは
ファイアウォールなどを設置して外部のネットワークと切り離している場合、プロキシサーバの機能としては大きく以下の2つに分けられる。
* 代理アクセス
ファイアウォールなどによって直接外部のネットワークと通信することが出来ない場合、ネットワーク内のコンピュータの代わりに外部のネットワークと通信を行う。
また、外部のネットワークとの通信をプロキシサーバだけに制限することで通信の管理が容易となり、セキュリティを向上することができる。
* キャッシング
ネットワーク内のコンピュータが外部のネットワークと通信を行った結果を保存することにより、他のコンピュータが同じサーバと通信を行う際に保存されているデータを利用する。これにより、外部のネットワークとの通信量を減らし、見かけ上のデータ転送速度を向上することができる。
2) Squidとは
プロキシサーバの1つで、主にHTTPを利用した通信に対してプロキシサービスを提供するプログラム。
ネットワーク内のコンピュータが外部のネットワークにあるWebサーバへデータを要求する際、SquidによってWebサーバのデータがキャッシングされていない場合には、SquidがWebサーバと通信しデータを取得後、要求のあったコンピュータへ送信する。
要求のあったWebサーバのデータがSquidにキャッシュされていた場合、Webサーバへキャッシュされているデータが更新されていないか確認を行い、更新されていなければキャッシュの内容を要求のあったコンピュータへ送信する。
Squidの特徴的な機能としては以下のようなものがある。
* 分散キャッシュ
同一ネットワーク内に複数のプロキシサーバを設置し、あるプロキシサーバのキャッシュに要求するデータが存在しない場合、他のプロキシサーバのキャッシュを利用してデータの送信を行うことにより、外部のネットワークからデータを取得するよりも速くデータの送信を行うことができる。
* httpdアクセラレータ
Squidが存在するネットワーク内にあるWebサーバの内容をキャッシングし、外部のネットワークからの要求に対してデータの送信を行うことにより、Webサーバの負荷を低減することができる。
* 透過型プロキシ
プロキシサーバを利用するためには、ネットワークに接続されたコンピュータに設定をする必要があるが、外部のネットワークへ通信があった場合、デフォルトゲートウェイにてプロキシサーバへ直接転送することにより、各コンピュータで設定を行わずにプロキシサーバを利用するようにできる。
4) Squidの設定
Squidの設定は、/etc/squid/squid.confによって行い、キャッシュ、アクセスコントロール、パケットフィルタリング、ログなどに関する設定を行う。
OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。