パケット・フィルタリングは,不正パケットを遮断するための技術として,ファイアウォールなどで普通に使われている。では,そもそもパケット・フィルタリングとは,どういう技術なのだろうか。まずはパケット・フィルタリングの基本的な概念と用語を押さえるところからスタートしよう。

 「パケット・フィルタリング」という言葉を聞いて,みなさんは何をイメージするだろうか。ファイアウォールなどが持っているセキュリティ機能の一つ? ブロードバンド・ルーターなどの設定画面を開いたときに見たような?

 実際,パケット・フィルタリングは,不正パケットを遮断するための技術として,ファイアウォールなどで普通に使われている。今ではファイアウォールのような専用装置だけでなく,家庭で使うブロードバンド・ルーターやパーソナル・ファイアウォール・ソフトなども採用している。WindowsXPなら,インターネット接続ファイアウォール(ICF)という名前のパケット・フィルタリング機能が標準で備わっている(図1)。あなたも,きっとどこかでパケット・フィルタリングのお世話になっているだろう。

図1●パケット・フィルタリング機能を備えたネットワーク機器は身の周りにたくさん転がっている
図1●パケット・フィルタリング機能を備えたネットワーク機器は身の周りにたくさん転がっている
[画像のクリックで拡大表示]

 でも,パケット・フィルタリングは,普段は見えないところで動いている。ファイアウォールやルーターの設定画面を開いて積極的にパケット・フィルタリングのしくみを探ってみようとしても,画面には「Webアクセスを許可する」,「メールの送受信は禁止する」といった項目が表示されるだけ。こんな表層だけ見ても,実際にパケット・フィルタリングが,どう動いているのか実感できない。

 そこで本講座では,例えや見せ方を工夫して,こうしたとっつきにくさを解消。パケット・フィルタリングの裏側のしくみまでを徹底的に掘り下げていく。

 そもそもパケット・フィルタリングとは,どういう技術なのか。まずはパケット・フィルタリングの基本的な概念と用語を押さえるところからスタートしよう。

届いた順に逐一チェックする

 例え話から入ろう。空港での荷物検査のシーンを想像してほしい。

 荷物検査では,検査官がX線などを使ってベルト・コンベアに乗って流れてくる荷物をチェックしていく。ひと口に荷物といっても,その形や中身はさまざま。もちろん,荷物の行き先や持ち主もバラバラである。検査官は,こうした荷物を一つひとつ漏れがないように検査するわけだ。

 こうして調べていくと,中には危険物や持ち出し禁止に指定されている荷物が流れてくることがある。そうしたら,その荷物は先に通さず,没収されたりする。

 パケット・フィルタリングも,話をIPネットワークの世界に置き換えるだけで,基本的な考え方は同じである。荷物に該当するのが,ネットワークを流れるIPパケットである。荷物の行き先や中身などがいろいろあるように,IPパケットの中身もWebページを要求するデータだったり,メール本文の一部だったりする。パケット・フィルタリングとは,こうしたIPパケットを一つひとつチェックして,不要なものを取り除くことである(図2)。

図2●パケット・フィルタリングとは<br>ネットワークを流れるIPパケットを一つひとつチェックして,通過あるいは遮断するしくみだ。判断には,主にパケット内でヘッダー部分に記述されているIPアドレスやポート番号などの情報が使われる。
図2●パケット・フィルタリングとは
ネットワークを流れるIPパケットを一つひとつチェックして,通過あるいは遮断するしくみだ。判断には,主にパケット内でヘッダー部分に記述されているIPアドレスやポート番号などの情報が使われる。
[画像のクリックで拡大表示]

“不純物”をどう定義するか

 荷物検査のシーンでは,荷物を調べるのは検査官の仕事だった。パケット・フィルタリングでは,何が検査官に相当するのだろうか。

 ファイアウォールやブロードバンド・ルーターを荷物検査場全体に見立てれば,検査官の役割を果たすのは,機器に内蔵されているCPUとそこに指示を出すプログラムである。CPUがプログラムの指示に従って,IPパケットを逐一検査して,通過させたり遮断したりするわけだ。この処理を行うプログラムは,「フィルタ」と呼ばれる。

 フィルタは,現実の世界にもある。例えば,水道の蛇口に取り付ける浄水器だ。要は不純物を取り除くものである。こう考えれば,パケット・フィルタリングでのフィルタもイメージしやすい。

 では,何が不純物なのか。これを決めるのが,ファイアウォールやブロードバンド・ルーターを管理するユーザーの仕事になる。

 荷物検査でも,「爆発物は禁止」,「麻薬は禁止」というようなルールが決まっているから,検査官は荷物の通過や没収を判断できる。

 パケット・フィルタリングの世界でも同じように,「Webアクセスのパケットは通過」,「FTP通信のパケットは遮断」といった決まりを管理者があらかじめ決めておくことになる。こうした決まりは,「ポリシー」や「ルール」と呼ばれる

判断材料は合計6種類

 ただ,実際にパケットの通過・遮断を行うプログラムやCPUは,人が読める文章のままでは解釈できない。つまり,「Webアクセスのパケットは通過」のようなポリシーをCPUが解釈できるように翻訳してやる必要がある。翻訳されたポリシーは,「フィルタリング・テーブル」などと呼ばれる。

 では翻訳されたフィルタリング・テーブルとは,どんなものか。原理的には,ほかのIPパケットと区別できるような特徴が記されていれば何でもよい。

 ただ実際の機器は,パケットのヘッダー情報を基に区別するのが一般的である。パケットのデータ部分などを判断材料にする手も考えられるが,フィルタを実現するプログラムにとっては,ヘッダー部分の方が扱いやすく,高速に処理できるため,多くの機器がヘッダー情報を判断材料に使う。

 具体的には,(1)送信元IPアドレス,(2)あて先IPアドレス,(3)プロトコルの種類(TCPかUDPかなど),(4)送信元ポート番号,(5)あて先ポート番号――という5個のヘッダー情報を利用することが多い。さらに,パケットが流れる方向も判断材料に使われる。これら合計6個の情報を判断材料に使い,条件に一致したらどうするか(通過か遮断か)を決めているのが,フィルタリング・テーブルである。