全4812文字
PR

ネット君 LANとインターネットでやりとりするデータを中継するのがファイアウオールですよね。

インター博士 うむ、そうだな。

ネット君 でもプロキシーサーバーも同じようなことをしていると思うんですよ。ファイアウオールとプロキシーサーバーって関係あるんですか?

インター博士 もちろん。というよりもプロキシーサーバーはファイアウオールの1つといえるな。では今回はプロキシーサーバーの話をしよう。リバースプロキシーサーバーについても解説するぞ。

ネット君 リバース?

 一般的にファイアウオールとは内部ネットワーク(企業のLANなど)と外部ネットワーク(インターネットなど)の境界に設置して、通信の可否を判断するソフトウエアや機器、サービスを指す(図1)。

図1●ファイアウオールの役割
図1●ファイアウオールの役割
一般的にファイアウオールとは、内部ネットワーク(企業のLANなど)と外部ネットワーク(インターネットなど)の境界に設置して、許可していない通信を遮断するソフトウエアや機器、サービスのこと。
[画像のクリックで拡大表示]

ファイアウオールは3種類

 一口にファイアウオールと言っても、実現する方式はいくつかあり、3種類に大別できる。

 1つ目はパケットフィルタリングである(図2)。最も代表的な方式で、単にファイアウオールというと、パケットフィルタリングを指すことが多い。

図2●パケットフィルタリングはパケットのヘッダーを見る
図2●パケットフィルタリングはパケットのヘッダーを見る
パケットフィルタリング方式ではパケットの向きとヘッダー情報などをチェック。あらかじめ設定したフィルタリングのルールと照合して通過の可否を決める。
[画像のクリックで拡大表示]

 パケットフィルタリングでは、外部から内部に入ってくるパケット(インバウンドのパケット)および内部から外部へ出ていくパケット(アウトバウンドのパケット)のIPヘッダーやTCPヘッダーあるいはUDPヘッダーの中身をチェックする。具体的には宛先および送信元のIPアドレスやポート番号、プロトコルの種類、パケットの向き(インバウンドかアウトバウンドか)などを見ることになる。

 そしてあらかじめ設定したフィルタリングルールと照合して、通過の可否を判断する。

 2つ目がステートフルインスペクションである。これは通信の状態を見て通過の可否を決める方式だ(図3)。例えば内部ネットワークから外部ネットワークへの通信を許可している場合、通過させたパケットの情報を一時的に保持する。そして、そのパケットに対する応答は通過させて、それ以外の外部ネットワークからのパケットは遮断する。

図3●ステートフルインスペクションは通信の状態で判断
図3●ステートフルインスペクションは通信の状態で判断
ステートフルインスペクションでは通信の状態に応じて通過の可否を決める。例えば、通過させたパケットの情報を保持し、それに対する応答パケットは通過を許可し、それ以外は拒否する。
[画像のクリックで拡大表示]

 最後がアプリケーションゲートウエイだ。特定のアプリケーション(プロトコル)のパケットの中身まで見て通過の可否を判断する(図4)。

図4●アプリケーションゲートウエイはパケットの中身まで見る
図4●アプリケーションゲートウエイはパケットの中身まで見る
アプリケーションゲートウエイは特定のアプリケーション(プロトコル)のパケットの中身(データ)まで見て通過の可否を判断する。きめ細かい制御が可能だが、対応していないアプリケーションのパケットは処理できない。
[画像のクリックで拡大表示]

 パケットフィルタリングなどとは異なり、ヘッダーだけではなくデータまで見るのできめ細かい制御が可能だ。ただし、対応しているアプリケーションの通信しか制御できない。例えば、HTTPに対応したアプリケーションゲートウエイは、HTTP以外のアプリケーションのパケットは通過させない。

 一般的にプロキシーサーバーは、HTTPおよびHTTPSに対応するアプリケーションゲートウエイを指す。