(57)【要約】【課題】現在のＣＰＵ処理性能を超える高速なネットワークに対応したＳＰＩ処理が実現できるファイアウォール装置を得ること。【解決手段】パケットフィルタ４０は一方のポートから入力したパケットを検査して他方のポートへ通過させるか否かを判断する処理を実現するハードウェアを実装している。パケット状態監視部５０はパケットフィルタ４０が判断したパケットについてコネクション状態と照合し前記他方のポートに転送すべき正当性を有するか否か判断する処理を実現するハードウェアを実装している。パケット状態監視部５０は、監視するパケットへの処理がパケットフィルタ４０への設定など制御部６０でのソフトウェア処理と連携する必要のある処理であるとき当該パケットを前記他方のポートに転送せずソフトウェアに引き渡して処理を依頼し当該処理を完了したパケットを受け取って前記他方のポートに転送する。【選択図】        図２
2007310662.tif 000002
【特許請求の範囲】
【請求項１】
一方のポートから入力したパケットを検査して他方のポートへ通過させるか否かを判断するパケットフィルタと、前記パケットフィルタが判断したパケットについてコネクション状態と照合し前記他方のポートに転送すべき正当性を有するか否か判断する状態監視手段とを備えるファイアウォール装置において、
前記パケットフィルタ及び前記状態監視手段は、それぞれ、パケットの蓄積を行わないハードウェア処理でそれぞれの処理を実現する構成であり、
前記状態監視手段は、監視するパケットへの処理が前記パケットフィルタへの設定などソフトウェア処理と連携する必要のある処理であるとき、当該パケットを前記他方のポートに転送せずソフトウェアに引き渡して処理を依頼するハードウェア構成を有し、
前記ソフトウェア処理を完了したパケットを前記他方のポートに転送する経路が設けられている、
ことを特徴とするファイアウォール装置。
【請求項２】
一方のポートから入力したパケットを検査して他方のポートへ通過させるか否かの判断して後段に転送する処理と通過させる場合はその旨を付加する処理とを当該パケットの蓄積を行わないハードウェア処理で実現する第１のパケットフィルタと、
前記第１のパケットフィルタが判断したパケットについてコネクション状態と照合し前記他方のポートに転送すべき正当性を有するか否かを判断して後段に転送する処理と当該パケットが時限的なパケットである場合はその旨を付加する処理とを当該パケットの蓄積を行わないハードウェア処理で実現する状態監視手段と、
前記状態監視手段から受け取るパケットについて前記第１のパケットフィルタの指示に従って実施するパケットの通過／廃棄の処理と時限的なパケットフィルタ通過エントリの追加／削除の処理とを当該パケットの蓄積を行わないハードウェア処理で実現する第２のパケットフィルタと、
を備えていることを特徴とするファイアウォール装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ネットワークシステムの内部と外部との境界部分に設けるセキュリティ・システムであるファイアウォール装置に関するものである。
【背景技術】
【０００２】
ファイアウォール装置は、ある管理単位のネットワーク（例えばイントラネットと呼ばれる企業内ネットワーク）とインターネットとの間に設置され、インターネットからの攻撃を防御する役目を担うことが一般的である。
【０００３】
このファイアウォール装置は、一般に当該ファイアウォール装置を通過させたいＩＰアドレスやＴＣＰ（Transmission Control Protocol）ポートなどが設定できるパケットフィルタを備え、そのパケットフィルタに設定されていないＩＰアドレスやＴＣＰポートなどを有するパケットを全て遮断するように動作させることができるので、設定漏れなどによる意図しないパケットのファイアウォール通過を防止することができ、安全性を高めることができる。
【０００４】
このようなファイアウォール装置は、イントラネットからインターネットに向けてＴＣＰコネクションを開設することは可能でも、インターネットからイントラネットに向けてはＴＣＰコネクションを開設できないように、コネクション開設の方向とその手順とを監視する手段を実装するのが一般的となっている。このようにコネクションの状態と方向とを監視する手段は、ステートフル・パケット・インスペクション（Stateful Packet Inspection：ＳＰＩ）と呼ばれる機能の一部としてよく知られている。
【０００５】
一方、ＦＴＰ（File Transfer Protocol）に代表されるような通信中に制御用のコネクションとデータ転送用のコネクションとの二種類のコネクションを有するプロトコルが存在する。この制御用コネクションは、一般に知られているＴＣＰポート番号である「ｗｅｌｌ−ｋｎｏｗｎポート」を用いて開設される。
【０００６】
このＦＴＰを上記イントラネットから上記インターネットに対して許可する場合に、データコネクション開設の方向が問題となることはよく知られている。すなわち、一般的なＦＴＰサーバとＦＴＰクライアントとの実装では、制御コネクションはクライアント側、データコネクションはサーバ側から開設されることが多い。このままではインターネット側に存在するサーバからのデータコネクションは、ファイアウォール装置によって許可されない。
【０００７】
そのためパッシブモードと呼ばれるコネクション開設手順が用いられている。パッシブモードとは、制御コネクションを用いてＦＴＰクライアントからＦＴＰサーバに対して要求され、その応答としてＦＴＰサーバからデータコネクションに使用するＴＣＰポート番号が通知される。ＦＴＰクライアントは、通知されたＴＣＰポート番号を宛先ＴＣＰポート番号として、データコネクションを開設しようとする。
【０００８】
しかし、ここで通知されるＴＣＰポート番号には、ｗｅｌｌ−ｋｎｏｗｎポートは使用されず、ＦＴＰサーバが任意に割り当てる値が使用される。さらに、データコネクションを開設するたびに、新たにＴＣＰポート番号を割り当てることが一般的である。
【０００９】
データコネクションは、あるＦＴＰコマンドによるデータ転送で用いられると、すぐに解放され、また別のＦＴＰコマンドでデータ転送を行うために、新たに別のコネクションが開設される。
【００１０】
したがって、ファイアウォール装置では、事前に知り得ない任意に割り当てられるＴＣＰポート番号が当該ファイアウォール装置を通過するようにパケットフィルタを設定できる必要がある。また、データコネクションが有効な時のみファイアウォール装置を通過するようにパケットフィルタの設定を動的に変更できる必要がある。
【００１１】
このように複雑な処理のため、従来のファイアウォール装置は上記の処理をパケットの蓄積を行うソフトウェア処理によって実現していた。上記の複雑な処理を実現する従来の技術としては、例えば、Ｃｉｓｃｏ  Ｓｙｓｔｅｍｓ社のＣｉｓｃｏ  ＩＯＳ  Ｆｉｒｅｗａｌｌ  Ｆｅａｔｕｒｅ  Ｓｅｔ（非特許文献１，２）などが知られている。
【００１２】
【非特許文献１】Cisco IOS Firewall Feature Set and Context-Based Access Control, P.8〜P.16http://www.cisco.com/univercd/cc/td/doc/product/software/ios113ed/113t/113t_3/firewall.pdf
【非特許文献２】Understanding ACL Merge Algorithms and ACL Hardware Resources on Cisco Catalyst 6500 Switches, P.3〜P.4http://www.cisco.com/warp/public/cc/pd/si/casi/ca6000/tech/65acl_wp.pdf
【発明の開示】
【発明が解決しようとする課題】
【００１３】
上記したように、従来のファイアウォール装置では、ＳＰＩ処理を処理性能がＣＰＵに依存するソフトウェアによって実施しているので、１０Ｇｂｐｓ回線を収容するような現在のＣＰＵ処理性能を超える高速なネットワークに対応できないという問題がある。
【００１４】
この発明は、上記に鑑みてなされたものであり、現在のＣＰＵ処理性能を超える高速なネットワークに対応したＳＰＩ処理が実現できるファイアウォール装置を得ることを目的とする。
【課題を解決するための手段】
【００１５】
上述した目的を達成するために、この発明は、一方のポートから入力したパケットを検査して他方のポートへ通過させるか否かを判断するパケットフィルタと、前記パケットフィルタが判断したパケットについてコネクション状態と照合し前記他方のポートに転送すべき正当性を有するか否か判断する状態監視手段とを備えるファイアウォール装置において、前記パケットフィルタ及び前記状態監視手段は、それぞれ、パケットの蓄積を行わないハードウェア処理でそれぞれの処理を実現する構成であり、前記状態監視手段は、監視するパケットへの処理が前記パケットフィルタへの設定などソフトウェア処理と連携する必要のある処理であるとき、当該パケットを前記他方のポートに転送せずソフトウェアに引き渡して処理を依頼するハードウェア構成を有し、前記ソフトウェア処理を完了したパケットを前記他方のポートに転送する経路が設けられていることを特徴とする。
【００１６】
この発明によれば、ハードウェア処理によってパケット監視処理が実現できるので、パケット蓄積を不要とすることで処理の高速化が図れる。そして、ハードウェアのみでは処理が難しいもののみは、ソフトウェアに処理を依頼する方式を採るので、クライアントとサーバとの間の正常な通信を阻害することなく高速な中継を可能とし、パケットフィルタに通過が設定されていない不正な端末に対しては高いセキュリティを提供するファイアウォール装置が実現できる。つまり、この発明によるファイアウォール装置は、現在のＣＰＵ処理性能を超える高速なネットワークに対応したＳＰＩ処理を実現することができる。
【発明の効果】
【００１７】
この発明によれば、現在のＣＰＵ処理性能を超える高速なネットワークに対応したＳＰＩ処理が実現できるという効果を奏する。
【発明を実施するための最良の形態】
【００１８】
以下に図面を参照して、この発明にかかるファイアウォール装置の好適な実施の形態を詳細に説明する。
【００１９】
実施の形態１．
図１は、この発明の実施の形態１によるファイアウォール装置が適用されるネットワークの全体構成を示すブロック図である。図２は、図１に示すこの実施の形態１によるファイアウォール装置の構成を示すブロック図である。
【００２０】
図１において、インターネット１にはサーバ３−１が接続され、社内ネットワークなどのイントラネット２には端末４−１，４−２，４−３が接続されている。ファイアウォール装置１０は、イントラネット２との接続口であるポート（＃０）２０と、インターネット１との接続口であるポート（＃１）３０とを備え、それぞれのポートを対応するネットワークに接続することで、インターネット１とイントラネット２との間を接続し、イントラネット２に接続される端末４−１，４−２，４−３とインターネット１上のサーバ３−１との通信を許可するとともに、インターネット１からイントラネット２への不正接続やネットワーク上の攻撃からイントラネット２を保護している。
【００２１】
このようなファイアウォール装置１０は、この実施の形態１では、図２に示すように構成されている。すなわち、図２において、ファイアウォール装置１０は、入力ポート側に設けたパケットフィルタ４０と、出力ポート側に設けたパケット状態監視部５０と、制御部６０とを備えている。そして、ポート（＃０）２０は、入力ポート２０−１と出力ポート２０−２とで構成されている。また、ポート（＃１）３０は、入力ポート３０−１と出力ポート３０−２とで構成されている。
【００２２】
制御部６０は、ＣＰＵなどの演算装置を中心に構成され、当該ファイアウォール装置１０の各種処理部の設定や内部情報の管理、ユーザインタフェース、外部管理装置との管理通信などを担っている。
【００２３】
パケットフィルタ４０は、ネットワーク管理者などのユーザからの設定や外部管理装置からの指示などによって入出力パケットの通過や廃棄を行う処理を実現するハードウェアを実装している。例えば、“１”“０”“Ｘ（不定）”の３値を記憶するメモリＬＳＩであるＴＣＡＭ（Ternary Content Addressable Memory）を実装している。
【００２４】
すなわち、パケットフィルタ４０は、例えば、ＴＣＡＭを使用して、入力したパケットの宛先ＩＰアドレスや送信元ＩＰアドレス、宛先ＴＣＰポート番号、送信元ＴＣＰポート番号、宛先ＵＤＰ（User Datagram Protocol）ポート番号、送信元ＵＤＰポート番号、ＩＣＭＰ（Internet Control Message Protocol）タイプフィールド、ＩＣＭＰコードフィールドなどの組合せでパケットの通過や廃棄を判定し、その判定結果を付加したパケットをパケット状態監視部５０に出力する。
【００２５】
パケット状態監視部５０は、入力したパケットを検査することで、例えばＴＣＰのコネクション状態を学習して記録する。また、パケット状態監視部５０は、入力したパケットがコネクション状態にふさわしいものであるか否かを判定し、不正なものであれば廃棄するといった処理を行う。パケット状態の判定を行うプロトコルはＴＣＰに限らない。例えばＵＤＰなども可能である。
【００２６】
このような構成によって、イントラネット２から入力ポート２０−１に入力したパケットは、パケットフィルタ４０やパケット状態監視部５０で検査された結果、中継可能と判定されると、出力ポート３０−２からインターネット１に出力され、中継不可能と判定されると、廃棄される。また、インターネット１から入力ポート３０−１に入力したパケットも、同様にパケットフィルタ４０やパケット状態監視部５０でのパケット検査を受け、中継可能なものだけが出力ポート２０−２からイントラネット２に出力され、中継不可能と判定されると、廃棄される。
【００２７】
なお、パケットフィルタ４０は、ネットワーク管理者によって、必要なプロトコルが必要なクライアントとサーバに関してのみ通過を許可され、それ以外のパケットは廃棄されるような、より安全性の高い設定がなされていることとする。
【００２８】
次に、図３、図４を参照して、図２に示すように構成されるファイアウォール装置１０の動作について説明する。ここでは、ＦＴＰ制御コネクションパケットを例に挙げて説明する。なお、パケットフィルタ４０は、ＦＴＰ制御コネクションのｗｅｌｌ−ｋｎｏｗｎポートであるＴＣＰポート番号２１を通過するように設定されているものとする。
【００２９】
まず、図３を参照して、ＴＣＰポート番号を通知しないパケット転送経路の形成過程について説明する。図３において、入力ポート２０−１，３０−１に入力されたＦＴＰ制御コネクションパケットは、パケットフィルタ４０を通過し、パケット状態監視部５０で検査される。このとき、このパケットがコネクション開設に関連したものであれば、その状態がパケット状態監視部５０に記録される。
【００３０】
パケット状態監視部５０は、この検査動作を、パケットをパケット状態監視部５０内に蓄積することなく、パケット状態監視部５０内を伝搬するパケットを覗き見しながら実行する。パケットフィルタ４０のパケット精査処理もパケットを蓄積せずに実施する。このような監視処理を行っている過程でコネクションが開設されると、その状態もパケット状態監視部５０に記録される。
【００３１】
その後、パケット状態監視部５０は、この制御コネクションに関するパケットが通過する毎に、パケット内のＦＴＰ情報を常に監視（覗き見）し、データコネクションに使用するＴＣＰポート番号が通知されているパケットであるか否かを判定する。その結果、入力されたパケットがデータコネクションに使用するＴＣＰポート番号を通知するものでなければ、パケット状態監視部５０は、パケットを蓄積することなく出力する。図示例で言えば出力ポート３０−２に出力する。
【００３２】
このようにして、例えば図３に示すように、イントラネット２からのパケットについての「ＴＣＰポート番号を通知しないパケット転送経路」３５ａが、入力ポート２０−１→パケットフィルタ４０→パケット状態監視部５０→出力ポート３０−２の経路として形成される。
【００３３】
次に、図４を参照して、データコネクションに使用するＴＣＰポート番号を通知するパケットの転送経路の形成過程について説明する。このデータコネクションに使用するＴＣＰポート番号の通知は、イントラネット２のクライアントからのＦＴＰコマンドであるＰＡＳＶの応答としてサーバ３−１から通知されることが知られている。なお、図４では、ＰＡＳＶコマンドの応答パケットがポート（＃０）２０側から入力する場合を示してあるが、この実施の形態１によるファイアウォール装置１０では、このＰＡＳＶコマンドの応答パケットがポート（＃１）３０側から入力しても同様の処理が行われる。
【００３４】
図４において、入力ポート２０−１に入力されたＦＴＰ制御コネクションパケットは、パケットフィルタ４０を通過し、パケット状態監視部５０で検査される。このとき、このパケットがコネクション開設に関連したものであれば、その状態がパケット状態監視部５０に記録される。
【００３５】
パケット状態監視部５０は、この検査動作を、パケットをパケット状態監視部５０内に蓄積することなく、パケット状態監視部５０内を伝搬するパケットを覗き見しながら実行する。パケットフィルタ４０のパケット精査処理もパケットを蓄積せずに実施する。このような監視処理を行っている過程でコネクションが開設されると、その状態もパケット状態監視部５０に記録される。
【００３６】
その後、この制御コネクションに関するパケットが通過する毎に、パケット内のＦＴＰ情報を常に監視（覗き見）し、データコネクションに使用するＴＣＰポート番号が通知されているパケットであるか否かを判定する。その結果、パケット状態監視部５０は、入力されたパケットがデータコネクションに使用するＴＣＰポート番号を通知するものであると判定すると、パケットを出力ポート３０−２に出力せずに、制御部６０に転送する（経路７０）。
【００３７】
制御部６０は、パケット状態監視部５０から通知されたパケットによって、その後に開設されるデータコネクションで使用するポート番号が通知されていると判断し、このクライアントとサーバとのＩＰアドレスを持ち、経路７０を通して受け取ったパケットで通知されたポート番号を持つパケットが通過するようにパケットフィルタ４０を設定する（制御８０）。パケットフィルタ４０への設定（制御８０）が終了すると、制御部６０は、経路７０を通して受け取ったパケットを出力ポート３０−２に出力する（経路９０）。この場合、制御部６０は、ＣＰＵで処理を行うので、上記一連の処理を終えて出力するまで、パケットを蓄積している。
【００３８】
このようにして、イントラネット２からのパケットについての「ＴＣＰポート番号を通知するパケット転送経路」３５ｂが、図４に示すように、入力ポート２０−１→パケットフィルタ４０→パケット状態監視部５０→制御部６０→出力ポート３０−２の経路として形成される。
【００３９】
ここで、パケットフィルタ４０への設定のみを制御部６０に依頼し、パケット状態監視部５０の中継動作を止めないでおくと、制御部６０でのパケットフィルタ４０への設定が完了するまでの間に、パケット状態監視部５０は、当該パケットを他のパケットと同様に中継してしまうので、制御部６０の処理時間によっては、パケットフィルタ４０の設定前に当該ＴＣＰポート番号を使用したデータコネクション開設パケットが到着してしまい、パケットフィルタ４０で、そのデータコネクション開設パケットを廃棄してしまうことが考えられるが、上記したように、パケットフィルタ４０への設定が完了するまで、当該パケットの出力を待たせておくので、そのような事態の発生を防止することができる。
【００４０】
その後、クライアントとサーバとの間で、データコネクション開設のパケットを交換するが、すでにパケットフィルタ４０には、通過設定されているので、このデータコネクション開設パケットは、パケットフィルタ４０を通過できる。
【００４１】
クライアントとサーバとが正しくコネクションを開設するか否かは、パケット状態監視部５０にてパケットが精査されるが、このデータコネクション開設パケットもパケット状態監視部５０内に蓄積されることなく、中継される。
【００４２】
パケット状態監視部５０は、コネクションの開設だけでなく、切断も監視している。すなわち、パケット状態監視部５０は、上記のデータコネクション開設後は、切断されるまでの様子を監視し、コネクションが切断されると、その状態を記録する。
【００４３】
制御部６０は、定期的にパケット状態監視部５０に記録されているコネクション状態を確認している。この確認中に、切断されたコネクションがあり、それがＦＴＰのデータコネクションのものである場合は、パケットフィルタ４０に設定してある当該コネクションに関連したパケットのための設定を削除する。
【００４４】
なお、コネクション切断を制御部６０に知らせる方法は、上記のように制御部６０が定期的に確認する方法の他に、コネクション切断時にパケット状態監視部５０から制御部６０に通知する方法も考えられる。
【００４５】
以上のように、実施の形態１によれば、ハードウェア処理によってパケット監視処理を実現することができるので、パケット蓄積を不要とすることで処理の高速化が図れる。そして、ハードウェアのみでは処理が難しいもののみは、ソフトウェアに処理を依頼する方式を採るので、クライアントとサーバとの間の正常な通信を阻害することなく高速な中継を可能とし、パケットフィルタに通過が設定されていない不正な端末に対しては高いセキュリティを提供するファイアウォール装置が実現できる。
【００４６】
実施の形態２．
図５は、この発明の実施の形態２によるファイアウォール装置の構成を示すブロック図である。以上説明した実施の形態１では、時限的に使用されるＴＣＰポート番号の通過を可能にするパケットフィルタへの設定をソフトウェア処理によって行うようにした場合を示した。この実施の形態２では、図５に示すように、パケットフィルタをパケット状態監視部の後段に追加し、パケット状態監視部の前段のパケットフィルタと処理を分割することで、時限的に使用されるＴＣＰポート番号の通過を可能にするパケットフィルタの設定をハードウェアのみで行う場合について説明する。
【００４７】
すなわち、図５に示すこの実施の形態２によるファイアウォール装置１１０は、イントラネット２側のポート（＃０）２０と、インターネット１側のポート（＃１）３０と、パケットフィルタ１４０と、パケット状態監視部１５０と、制御部１６０と、パケットフィルタ１７０とを備えている。
【００４８】
ポート（＃０）２０とポート（＃１）３０との構成は、実施の形態１（図１）と同様であり、また、制御部１６０は、実施の形態１（図１）にて説明した制御部６０と全く同様の処理機能を有するが、入力ポート側から出力ポート側に向かって、パケットフィルタ１４０、パケット状態監視部１５０、パケットフィルタ１７０がこの順に配置されている。
【００４９】
パケットフィルタ１４０は、実施の形態１（図１）にて説明したパケットフィルタ４０と全く同様の入力されたパケットの通過／廃棄を設定できるパケットフィルタ機能に加えて、パケットを通過させる場合、後段のパケットフィルタ１７０にもパケット通過／廃棄の判定を行わせるか否かを設定でき、その通過／廃棄の情報を入力パケットに追加して後段のパケット状態監視部１５０やパケットフィルタ１７０に通知する機能を有している。
【００５０】
パケットフィルタ１４０が通過／廃棄の情報を入力パケットに情報を追加する方法としては、装置内部の独自ヘッダとして入力パケットの先頭に加える方法や、独自トレイラとして入力パケットの後尾に加える方法がある。
【００５１】
パケット状態監視部１５０は、実施の形態１（図１）にて説明したパケット状態監視部５０と全く同様のパケット検査機能に加えて、入力されたパケットが時限的に使用されるＴＣＰポート番号を通知するものであれば、その情報を入力パケットに追加して後段のパケットフィルタ１７０に通知する機能を有している。入力パケットに情報を追加する方法としては、パケットフィルタ１４０が使用する上記した方法と同様のものが使用できる。
【００５２】
パケットフィルタ１７０は、実施の形態１（図１）にて説明したパケットフィルタ４０と全く同様のパケットフィルタ機能に加えて、パケットフィルタ１４０から通知される情報に基づいて、選択的にパケットフィルタ機能を実行する機能を有している。すなわち、パケットフィルタ１４０から、パケットフィルタ処理実行が指示されていれば、入力パケットの通過／廃棄の判定を行う一方、指示されていなければ、そのままパケットを通過させる。
【００５３】
そして、パケットフィルタ１７０は、パケット状態監視部１５０から時限的に使用されるＴＣＰポート番号が通知されるパケットであることが示されていれば、自身のパケットフィルタエントリに当該ＴＣＰポート番号を通過するような設定を追加する機能を有している。
【００５４】
加えて、パケットフィルタ１７０は、パケット状態監視部１５０から該時限的に使用されるＴＣＰポート番号のコネクションの切断が通知されていれば、自身のパケットフィルタエントリから当該コネクションを削除する機能を有している。
【００５５】
当該ファイアウォール装置１１０の設定を行うユーザは、前述の時限的なポート番号を使用したコネクションが発生しないプロトコルに関してファイアウォール装置１１０の通過を設定する場合は、当該エントリに対して通過であり、かつパケットフィルタ１７０を使用しない旨をパケットフィルタ１４０に設定する。
【００５６】
同様に、当該ファイアウォール装置１１０の設定を行うユーザは、時限的なポート番号を使用したコネクションが発生するプロトコルに関してファイアウォール装置１１０の通過を設定する場合は、パケットフィルタ１４０には、該当するプロトコルの指定は例えばＴＣＰまでに留めておき、それ以上のレイヤのプロトコル（例えばＦＴＰなど）は設定しない。宛先ＩＰアドレスや送信元ＩＰアドレスの設定はユーザの意向の通りでよい。
【００５７】
さらに、ユーザは、パケットフィルタ１７０を使用する旨を設定に加えるが、このエントリに関して、今度はＴＣＰよりも上のレイヤのプロトコルまで含めてパケットフィルタ１７０に通過設定を行う。このように設定しておくことで、所望のプロトコルに関する制御コネクションについて通過／廃棄の判定を行うことが可能となる。
【００５８】
次に、図６を参照して、図５に示すように構成されるファイアウォール装置１１０の動作について説明する。図６では、図５に示すファイアウォール装置１１０内部でのパケット転送経路３５ｃと、経路中においてパケットに独自ヘッダが加えられ、それが最終的に外されて出力される様子が示されている。なお、図６では、ポート（＃０）２０側から入力するパケットに対する処理を示してあるが、この実施の形態２によるファイアウォール装置１１０では、ポート（＃１）３０側から入力するパケットに対しても同様の処理が行われる。
【００５９】
図６において、パケットフィルタ１４０は、イントラネット２から入力ポート２０−１に受信される入力パケット２００−１の検査の結果、当該入力パケット２００−１が通過であり、かつパケットフィルタ１７０を使用しないと判定した場合は、装置内部の独自ヘッダまたはトレイラにその情報を追加したパケット２００−２を生成し、当該パケット２００−２を通過させるべくパケット状態監視部１５０に転送する。
【００６０】
同様に、パケットフィルタ１４０は、イントラネット２から入力ポート２０−１に受信される入力パケット２００−１の検査の結果、当該入力パケットが通過であり、かつパケットフィルタ１７０を使用すると判定した場合は、その旨を独自ヘッダまたはトレイラに追加したパケット２００−２を生成し、当該パケット２００−２を通過させるべくパケット状態監視部１５０に転送する。
【００６１】
パケット状態監視部１５０は、パケットフィルタ１４０から受け取ったパケット２００−２について実施の形態１にて説明したパケット状態監視部５０と同様の検査を行い、正常なパケットであれば、その正常なパケット２００−３をパケットフィルタ１７０に転送する。
【００６２】
パケットフィルタ１７０は、パケット状態監視部１５０からから受け取ったパケット２００−３の独自ヘッダまたはトレイラに、パケットフィルタ動作不要と示されている場合は、独自ヘッダの削除またはトレイラに付加した情報の削除以外は何も処理せず、そのように処理した出力パケット２００−４を出力ポート３０−２に出力する。
【００６３】
一方、パケットフィルタ１７０は、パケット状態監視部１５０からから受け取ったパケット２００−３の独自ヘッダまたはトレイラに、パケットフィルタ動作必要と示されている場合は、独自ヘッダの削除またはトレイラに付加した情報の削除に加えて、自身のパケットフィルタエントリから入力パケットを検査し、その結果に従って、出力パケット２００−４の出力／廃棄を行う。
【００６４】
さて、時限的なポート番号を使用したコネクションが発生するプロトコルがファイアウォール装置１１０を通過するように設定されている場合に、その時限的なポート番号を通知する制御コネクションパケットがイントラネット２から入力された時の処理は、次のようにして行われる。
【００６５】
イントラネット２から入力された時限的なポート番号を通知する制御コネクションパケット２００−１は、パケットフィルタ１４０において、制御コネクションを示すプロトコル以外の情報が検査され、その結果、パケットフィルタ１４０を通過するように判定される。このとき、パケットフィルタ１４０では、パケットフィルタ１７０を用いた検査の実施も指示することが行われる。つまり、パケットフィルタ１４０は、パケットフィルタ１７０の処理を指示する情報を独自ヘッダまたはトレイラに追加したパケット２００−２を生成し当該パケット２００−２を通過させるべくパケット状態監視部１５０に転送する。
【００６６】
パケット状態監視部１５０は、パケットフィルタ１４０から受け取ったパケット２００−２について、実施の形態１にて説明したパケット状態監視部５０と同様の検査を行い、時限的なポート番号を通知する制御コネクションパケットであると判定すると、その旨を独自ヘッダまたはトレイラに追加したパケット２００−３を生成し、当該パケット２００−３をパケットフィルタ１７０に転送する。
【００６７】
パケットフィルタ１７０は、パケット状態監視部１５０から受け取ったパケット２００−３について、まず、パケットフィルタ１４０から通知された内容に従い、入力パケット２００−３を検査して通過／廃棄の判定を行う。通過と判定した場合は、パケット状態監視部１５０から通知された内容に従い、当該パケット２００−３の送信元および宛先ＩＰアドレス、ＴＣＰなどのレイヤ４プロトコル、通知された時限的なＴＣＰポート番号を含むパケットフィルタエントリを作成し、自身のフィルタに登録する。そして、入力パケット２００−３から独自ヘッダの削除またはトレイラに付加した情報の削除を行った出力パケット２００−４を出力ポート３０−２に向けて出力する。これによって、サーバ３−１から時限的なポート番号の通知がイントラネット２に送られる。
【００６８】
その後、当該時限的なポート番号を使用したコネクションのパケットがイントラネット２から入力した場合に、パケットフィルタ１４０及びパケット状態監視部１５０にて当該パケットが正常と判断されれば、パケットフィルタ１７０に転送されるので、当該パケットはパケットフィルタ１７０を無事通過でき、出力ポート３０−２からインターネット１に向けて出力される。
【００６９】
次に、当該時限的なポート番号を使用したコネクションの切断が完了するパケットがイントラネット２からが入力された時の処理は、次のようにして行われる。パケットフィルタ１４０は、当該パケット２００−１を上記と同様の手順でパケット状態監視部１５０に転送する。
【００７０】
パケット状態監視部１５０は、入力パケット２００−１のＴＣＰフラグを検査することにより、コネクション切断を完了するパケットであると判定できる。パケット状態監視部１５０は、その情報を独自パケットヘッダまたはトレイラに追加してパケット２００−３を生成し、当該パケット２００−３をパケットフィルタ１７０に転送する。
【００７１】
パケットフィルタ１７０は、まず、パケットフィルタ１４０から通知された内容に従って、入力パケット２００−３を検査して通過／廃棄の判定を行う。通過と判定した場合には、パケット状態監視部１５０から通知された内容に従い、当該パケット２００−３の送信元および宛先ＩＰアドレス、ＴＣＰなどのレイヤ４プロトコル、通知された時限的なＴＣＰポート番号を含む自身のパケットフィルタエントリを削除する。そして、入力パケット２００−３に上記した付加事項の削除を行った出力パケット２００−４を出力ポート３０−２に向けて出力する。
【００７２】
これによって、その後、イントラネット２から削除したエントリのパケットが入力ポート２０−１に受信され、たとえパケットフィルタ１４０やパケット状態監視部１５０を通過したとしても、パケットフィルタ１７０では確実に廃棄される。
【００７３】
以上のように、この実施の形態２によれば、転送処理をハードウェア処理によって行うパケットフィルタをパケット状態監視部の前後に配置し、パケットフィルタの機能をパケット状態監視部の前段と後段とで分担するようにしたので、ハードウェア処理のままで時限的なエントリの追加／削除を行うことが可能となり、より高速なパケットフィルタエントリの追加／削除動作が可能となる。
【産業上の利用可能性】
【００７４】
以上のように、この発明にかかるファイアウォール装置は、現在のＣＰＵ処理性能を超える高速なネットワークに対応したＳＰＩ処理を実現するのに有用である。
【図面の簡単な説明】
【００７５】
【図１】この発明の実施の形態１によるファイアウォール装置が適用されるネットワークの全体構成を示すブロック図である。
【図２】図１に示すこの発明の実施の形態１によるファイアウォール装置の構成を示すブロック図である。
【図３】ＴＣＰポート番号を通知しないパケット転送経路の形成過程を説明する図である。
【図４】ＴＣＰポート番号を通知するパケット転送経路の形成過程を説明する図である。
【図５】この発明の実施の形態２によるファイアウォール装置の構成を示すブロック図である。
【図６】図５に示すファイアウォール装置の動作を説明する図である。
【符号の説明】
【００７６】
１０，１１０  ファイアウォール装置
２０（＃０）  イントラネット側のポート
２０−１  入力ポート
２０−２  出力ポート
３０（＃１）  インターネット側のポート
３０−１  入力ポート
３０−２  出力ポート
４０，１４０，１７０  パケットフィルタ
５０，１５０  パケット状態監視部
６０，１６０  制御部
【図１】
2007310662.tif 000003
【図２】
2007310662.tif 000004
【図３】
2007310662.tif 000005
【図４】
2007310662.tif 000006
【図５】
2007310662.tif 000007
【図６】
2007310662.tif 000008