Host Intrusion Prevention 6.1 のファイアウォールでは、ステートフル パケット フィ ルタ機能とステートフル パケット検査機能の両方を備えたステートフル ファイア ウォールが導入されています。
ステートフルパケットフィルタ機能
ステートフル パケット フィルタ機能は、OSI ネットワーク スタックのトランスポー ト層(第 4 層)以下の層で TCP/UDP/ICMP プロトコル情報をステートフルに追跡し ます。検査されたパケットが既存のファイアウォール規則と一致した場合、そのパケッ トは許可され、状態テーブルにエントリが作成されます。状態テーブルは、以前に静 的な規則セットと一致した接続を動的に追跡し、TCP/UDP/ICMP プロトコルの現在の 接続状態を反映します。検査されたパケットが状態テーブルの既存のエントリと一致 した場合、そのパケットはそれ以上の検査を行うことなく許可されます。接続が閉じ るかタイムアウトになると、状態テーブルから対応するエントリが削除されます。
ステートフルパケット検査機能
ステートフル パケット検査機能とは、ネットワーク スタックのアプリケーション層
(第 7 層)でコマンドにステートフル パケット フィルタを適用して追跡する処理です。
この組み合わせにより、コンピュータの接続状態を強力に定義します。アプリケーショ ン レベルのコマンドにアクセスすることにより、エラーなしで FTP、DHCP、および DNS プロトコルを検査し、保護することができます。
状態テーブル
ステートフルなファイアウォール機能の 1 つに、許可規則によって作成されたアク ティブな接続に関する情報を動的に保存する状態テーブルがあります。このテーブル 内の各エントリでは、次の情報に基づいて接続を定義します。
プロトコル:サービスが別のサービスと通信するためのあらかじめ定義された方式 で、TCP、UDP、ICMP プロトコルなどがあります。
ローカルおよびリモート コンピュータのIP アドレス:各コンピュータには一意の IP アドレスが割り当てられています。IP アドレスは、4 つのオクテットをドット 区切りの 10 進表記(192.168.1.100 など)で表した 32 ビット数値です。
ローカルおよびリモート コンピュータのポート番号:コンピュータは指定された 番号のポートを使用してサービスの送受信を行います。たとえば、通常 HTTP サー ビスはポート 80、FTP サービスはポート 21 を使用します。ポート番号の範囲は 0 ~ 65535 です。
プロセス ID (PID):接続のトラフィックに関連付けられたプロセスの一意の識別子。
タイムスタンプ:接続に関連付けられたパケットを最後に送受信した時間。
íç
Host Intrusion Prevention 6.0 クライアントは、Host Intrusion Prevention 6.1 のサー バやクライアントが混在する環境でも、静的なファイアウォールのみを使用します。
ステートフルなファイアウォールを使用するには、クライアントをバージョン 6.0 か ら 6.1 にアップグレードする必要があります。アップグレードを支援するため、既存 の静的な規則をステートフルな規則に変換できるファイアウォール規則移行ユー ティリティが用意されています。詳細については、81ページの「カスタム 6.0 ファイ アウォール規則から 6.1 規則への移行」を参照してください。
タイムアウト:ファイアウォール オプション ポリシーで設定された制限時間(秒)。 この時間を過ぎても接続と一致するパケットを受信しなかった場合、そのエントリ はテーブルから削除されます。TCP 接続のタイムアウトは、接続が確立されていな い場合のみ適用されます。
方向:エントリが作成されたトラフィックの方向(受信または送信)。接続の確立 後、エントリが状態テーブル内の接続パラメータと一致すると、単方向の規則で あっても双方向トラフィックが許可されます。
状態テーブルの機能
ファイアウォール規則セットが変更されると、新しい規則セットによってすべての アクティブな接続がチェックされます。一致する規則がない場合、接続エントリが 状態テーブルから破棄されます。
アダプタに新しい IP アドレスが割る当てられると、ファイアウォールは新しい IP 設定を認識し、状態テーブル内の無効なローカル IP アドレスのエントリをすべて 破棄します。
プロセスが終了すると、そのプロセスに関するすべてのエントリが状態テーブルか ら削除されます。
ファイアウォール規則のしくみ
ファイアウォール規則では、ネットワーク トラフィックの処理方法を決定します。各 規則には、トラフィックが満たす必要がある一連の条件が定義されており、それぞれ にトラフィックを許可またはブロックするアクションが関連付けられています。規則 の条件と一致するトラフィックが見つかると、関連付けられたアクションが実行され ます。
規則は優先順位に従って適用されます。ファイアウォール規則リストの最上位にある 規則が最初に適用されます。
トラフィックが規則の条件と一致すると、Host Intrusion Prevention はトラフィック を許可またはブロックします。規則リストにあるその他の規則は適用しません。
トラフィックが最初の規則の条件と一致しない場合、Host Intrusion Prevention はリ ストにある次の規則を調べます。このようにして、トラフィックに一致する規則が見 つかるまでファイアウォール規則リストを照合していきます。一致する規則がない場 合、ファイアウォールは自動的にトラフィックをブロックします。[学習モード] が有 効な場合は、アクションの実行を促すメッセージを表示し、[適応モード] が有効な場 合は、トラフィックに許可規則を作成します。
トラフィックがリスト内の複数の規則に一致することもありますが、その場合、優先 順位により、リストで最初に一致した規則のみが適用されます。
íç
ドメイン ベースの規則とワイヤレス規則では、優先順位の扱いが異なります。リモー ト アドレスをドメイン名またはワイヤレス 802.11 接続として指定している規則は、
規則リスト内の位置にかかわらず最初に適用されます。
ファイアウォール規則リストの順序付け
ファイアウォール規則のポリシーを作成またはカスタマイズする場合、最も細かい規 則をリストの最上位に置き、全般的な規則ほど下位に置きます。これにより、トラ フィックが適切にフィルタされ、全般的な規則に阻まれて細かい規則が適用されない ということがなくなります。
たとえば、IP アドレス 10.10.10.1 から届いた HTTP 要求だけは通過させ、それ以外の すべての HTTP 要求をブロックするという場合、次の 2 つの規則を作成する必要があ ります。
許可規則:IP アドレス 10.10.10.1 からの HTTP トラフィックを許可。これは、最 も細かい規則です。
ブロック規則:HTTP サービスを使用するすべてのトラフィックをブロック。これ は、より全般的な規則です。
細かい許可規則を、全般的なブロック規則よりもファイアウォール規則リストの上位 に配置する必要があります。これにより、ファイアウォールがアドレス 10.10.10.1 か らの HTTP 要求を捕捉したときに、最初に一致するのが、このトラフィックの通過を 許可する規則ということになります。
全般的なブロック規則を細かい許可規則より上位に置くと、10.10.10.1 からの HTTP 要求は、例外的な通過規則を適用される前に、ブロック規則の網にかかってしまいま す。そのため、実際にはこのアドレスからの HTTP 要求を許可したくても、トラフィッ クはブロックされます。
ステートフル フィルタ機能のしくみ
ステートフル フィルタ機能では、手動で設定するファイアウォール規則セットと、動 的に管理されるファイアウォール規則セット(すなわち状態テーブル)という、2 つ の規則セットでパケットを処理します。
手動設定の規則には、次の 2 つのアクションを定義できます。
許可- パケットが許可され、状態テーブルにエントリが作成されます。
ブロック- パケットがブロックされ、状態テーブルにエントリが作成されません。
状態テーブルのエントリはネットワーク処理に応じて処理され、ネットワーク ス タックの状態が反映されます。状態テーブル内の各規則には 1 つのアクション(許 可)しかないので、状態テーブル内の規則と一致するパケットはすべて自動的に許可 されます。
フィルタ プロセスには以下の手順が含まれます。
1 ファイアウォールが、状態テーブル内のエントリと受信パケットを比較します。パ ケットがテーブル内のエントリのいずれかと一致した場合、パケットはただちに許 可されます。一致するエントリがなかった場合、手動設定のファイアウォール規則 リストが参照されます。
íç
プロトコル、ローカル アドレス、ローカル ポート、リモート アドレスおよびリモー ト ポートが一致する場合、パケットが状態テーブル エントリと一致すると見なさ れます。