👌
【3分間HTTP&メールプロトコル基礎講座】第12、13、14回プロキシサーバ、キャッシュ、アプリケーションゲートウェイ
プロキシサーバ
代理要求
- HTTPの代理要求を行うサーバ
- UAの代わりに、サーバへ要求を送る。
- プロキシサーバソフトが稼働指定rサーバは、UAが送ったHTTPリクエストを受け取る。そして、UAが望む宛先サーバへ、UAの代わりに要求を行う。
- Webサーバからの応答もプロキシサーバが受け取る。
- 透過型にしろ非透過型にしろ、UAはプロキシをセッションを確率することになる。
- UAとプロキシ、プロキシとwebサーバという一つのやりとりで成立する。
透過型プロキシ
- UAは(プロキシサーバの存在を知らないので)Webサーバ宛に送信し、それをルータが透過型サーバへ転送する。
- ユーザーが意識しなくても代理可能
非透過型プロキシ
- UAはプロキシサーバあてにHTTP要求メッセージを送信する
- プロキシは「透過型」と言わない限り基本的にこっちを表す
- UA側に設定が必要
プロキシとメッセージヘッダ
-
プロキシを使用する場合は開始行のリクエストURLでは絶対URIを使う(相対でなく)
- 相対URIだとHTTPリクエストを受け取ったサーバのホームディレクトリからの位置
- しかしプロキシはwebサーバでなく代理してるだけなので絶対URIを使わなければならない
- ホップバイホップはプロキシサーバが中継すると書き換えが起きる。
- エンドツーエンドはプロキシでも変更されない
- viaメッセージヘッダは中継したプロキシが徐父王を書き足していくメッセージヘッダで、名前の通り、メッセージが経由したサーバの情報となる
プロキシサーバの利点
グローバルIPアドレスを節約できる
- プロキシサーバのできる代理は1台でなく複数できる。
- HTTPだけを考えればインターネットに接続する必要があるのでプロキシサーバだけということになる。
- 何台パソコンがあろうが、グローバルIDアドレスが1つあれば良い
- 本来なら複数個必要なグローバルIPアドレスが、1つで済むから
リソースをキャッシュする
- プロキシはUAの要求を代理して、webサーバに要求を行い、リソースを取得する。
- リソースを要求してきたUAに応答する際にリソースをキャッシュする
- 複数台のパソコンから要求を受けて代理するから、その複数台分のキャッシュがあり、そのリソースに対して要求があった場合、キャッシュから応答できる。
- プロキシは、webサーバから応答されたリソースをキャッシュとして持つ
- webサーバへの要求の回数が減る
- (その結果)webサーバのあるインターネットへのデータの送信の量が減る
セキュリティ機器としての利用
- インターネットに接続するのはプロキシだけになるので、クライアントの存在が隠れることになる
- プロキシはクライアントからの要求は「代理」するが、インターネットからの要求は代理しない設定なので、代理要求に対する応答以外のデータは、クライアント側に入らない。
- プロキシが壁となって不正なデータの流入を防ぐ
- プロキシサーバは、アプリケーションゲートウェイファイアウォールと呼ばれるファイアウォールの一種
- HTTPしか通さないので融通は効かない
HTTPメッセージの内容によって動作を変えることができる
- ルータのルーティングはIPアドレスを確認することによって行う
- ルータの他の機器も大体はIPヘッダがTCP/UDPヘッダを確認するレベルだが、プロキシはHTTPのメッセージの中身を確認して代理を行う。
- 例えば閲覧して欲しくないwebサイト宛のメッセージは代理を拒否したり、応答してきたリソースの中身がよろしくない場合は応答をUAに返さなかったりする。
- 見に行っていいwebサイト、見に行ってはいけないwebサイトをプロキシで制御できる。
URIフィルタリング
URIで制御する方法
コンテンツフィルタリング
リソースの中身で判断する方法
- 見に行っていいwebサイト、見に行ってはいけないwebサイトをプロキシで制御できる。
デメリット
- 複数台の要求を1台で受けるため、要求数が多くなってくると、処理超過して逆に遅くなってしまう。
リバースプロキシ
- 代理するのは同じだが「webサーバのために」代理する
- リバースプロキシでキャッシュを行い、キャッシュにあるリソースはキャッシュから応答する。
- その分だけwebサーバへのアクセス数が減り負荷が軽減する
- クラッカーなどがwebサーバを攻撃しようとした場合、要求に不正な内容を入れる攻撃方法がある。それによりwebサーバの動作をおかしくさせたり、情報を漏洩させたりできる。しかし、リバースプロキシがあると、不正な要求を判断したリクエストは代理しなければ良いのでwebサーバを不正な要求から守ることができる。
- 不正な要求からwebサーバを守る専用機器をWAFと呼ぶ
Discussion