(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
(実施形態1)
以下、図面を参照して本発明の実施形態1に係るパケットフィルタリング装置を説明する。
【0013】
図1及び
図2は、実施形態に係るパケットフィルタリング装置の代理応答を例示したシーケンス図である。
図1に示すように、パケットフィルタリング装置20は、ネットワークシステムにおけるクライアント装置10とサーバ装置30との間に配置されている。クライアント装置10とサーバ装置30との間のTCPパケット(パケット40ともいう。)による通信は、パケットフィルタリング装置20を中継して行われる。送信元の装置(クライアント装置10またはサーバ装置30)から送信された複数のパケット40の交換を含む通信シーケンスに対しては、パケットフィルタリング装置20は、所定の検査条件に基づいて、送信元の装置との間のパケット40の透過判定を行う。それと共に、パケットフィルタリング装置20は、パケット40の送信元の装置との間で、通信シーケンスの代理応答を行う。このようにして、パケットフィルタリング装置20は、代理応答により、送信元の装置と疑似的に通信シーケンスを継続する。
【0014】
パケットフィルタリング装置20は、送信元から送信された通信シーケンスの複数のパケット40を、妥当なパケットと判定した場合、すなわち、全てのパケットに問題がなく、通信シーケンスが正常であると判定した場合には、送信先の装置(サーバ装置30またはクライアント装置10)との間で、送信元と行った通信シーケンスと同じ通信シーケンスを改めてやり直す。これにより、パケットフィルタリング装置20は、送信元から送信された通信シーケンスの妥当なパケット40を送信先の装置に対して送信することができる。
【0015】
一方、
図2に示すように、パケットフィルタリング装置20が、代理応答を行い、送信元の装置と疑似的に通信シーケンスを継続していたときに、送信元の装置から透過を許可できない不正パケット41が送信されることがある。パケットフィルタリング装置20は、送信元から送信された通信シーケンスのパケットを、不正なパケット41と判定した場合、すなわち、所定の検査条件に基づいて、クライアント装置10及びサーバ装置30間を透過させることができないパケットであると判定した場合には、不正なパケット41を破棄する。そして、通信シーケンスを中止する。これにより、パケットフィルタリング装置20は、送信先の装置(サーバ装置30)に、不正なパケット41を含む通信シーケンスを一切到達させないようにすることができる。よって、送信先のサーバ装置30には、当該通信シーケンスのパケットが一つも届かないのでエラーとなることがない。
【0016】
図3は、実施形態1に係るパケットフィルタリング装置を含むネットワークシステムを例示した図である。
図3に示すように、ネットワークシステム1は、複数のクライアント装置10と、パケットフィルタリング装置20と、サーバ装置30と、を含んでいる。
【0017】
クライアント装置10は、ネットワークシステム1上に複数存在する。例えば、クライアント装置10は、N個存在し、1〜Nで番号付けられている。各クライアント装置10は、パケットフィルタリング装置20を介してサーバ装置30とTCPコネクションを確立し、個別に通信を行う。
【0018】
サーバ装置30は、ネットワークシステム1上のサーバとしての役割を有している。サーバ装置30は、パケットフィルタリング装置20を介して、各クライアント装置10からのTCPコネクションの確立を待ち受けている。サーバ装置30は、各クライアント装置10とのTCPコネクション確立後に各クライアント装置10と通信を行う。
【0019】
TCPコネクションは、クライアント装置10とパケットフィルタリング装置20との間、及び、パケットフィルタリング装置20とサーバ装置30との間で確立する。
【0020】
クライアント装置10とパケットフィルタリング装置20との間のTCPコネクションは、パケットフィルタリング装置20がTCPサーバ、クライアント装置10がTCPクライアントの役割となり、クライアント装置10のIPアドレス・ポート番号からパケットフィルタリング装置20のIPアドレス・ポート番号宛てにTCPコネクションを確立する。
【0021】
パケットフィルタリング装置20とサーバ装置30との間のTCPコネクションは、サーバ装置30がTCPサーバ、パケットフィルタリング装置20がTCPクライアントの役割となり、パケットフィルタリング装置20のIPアドレス・ポート番号からサーバ装置30のIPアドレス・ポート番号宛てにTCPコネクションを確立する。
【0022】
パケットフィルタリング装置20は、内部機能として、クライアント側TCP/IP制御部21、パケットフィルタ処理部22、サーバ側TCP/IP制御部23、とを有する。
【0023】
クライアント側TCP/IP制御部21は、クライアント装置10と接続されている。クライアント側TCP/IP制御部21は、クライアント装置10のTCPコネクションを管理する機能を有する。クライアント側TCP/IP制御部21は、クライアント装置10からのTCPコネクション接続要求を待ち受けている。クライアント装置10からTCPコネクションの接続を要求された場合には、クライアント側TCP/IP制御部21は、要求元のIPアドレス・ポート番号を確認する。そして、所定の条件に基づいて許可可能な要求元であると判断された場合には、TCPコネクションの確立を許可する。TCPコネクションが確立できた場合は、クライアント側TCP/IP制御部21は、TCPコネクション管理用に管理番号を記憶する。クライアント側TCP/IP制御部21は、TCPコネクションが確立したクライアント装置10からパケットを受信した場合は、送信されたパケットをパケットフィルタ処理部22へ転送する。
【0024】
サーバ側TCP/IP制御部23は、サーバ装置30と接続されている。サーバ側TCP/IP制御部23は、サーバ装置30とのTCPコネクションを管理する機能を有する。サーバ側TCP/IP制御部23は、クライアント側TCP/IP制御部21でクライアント装置10とのTCPコネクションが確立できた場合には、サーバ装置30に対してTCPコネクションの接続を要求する。サーバ装置30とパケットフィルタリング装置20のTCPコネクションが確立できた場合は、サーバ側TCP/IP制御部23は、クライアント側TCP/IP制御部21で管理しているTCPコネクション管理用の管理番号と紐付を行う。また、サーバ側TCP/IP制御部23は、TCPコネクションが確立したサーバ装置30からパケットを受信した場合は、送信されたパケットをパケットフィルタ処理部22へ転送する。
【0025】
パケットフィルタ処理部22は、クライアント側TCP/IP制御部21から転送されたパケットを受信する。また、パケットフィルタ処理部22は、サーバ側TCP/IP制御部23から転送されたパケットを受信する。パケットフィルタ処理部22は、内部機能として、パケット透過判定部24、パケット格納部25、代理応答部26を有している。
【0026】
パケット透過判定部24には、クライアント側TCP/IP制御部21、または、サーバ側TCP/IP制御部23からパケットが転送される。パケット透過判定部24は、転送されたパケットに対して、設定された所定の検査条件に基づいて、パケットの透過判定を行う。転送されたパケットが通信シーケンスのパケットの場合でも、パケット透過判定部24は、所定の検査条件に基づいて、クライアント装置10とサーバ装置30との間のパケットの透過判定を行う。パケット透過判定部24は、転送された通信シーケンスの複数のパケットを、妥当なパケットと判定した場合には、パケット格納部25に対して、複数のパケットの保存を要求する。例えば、パケット透過判定部24は、パケット格納部25に対して、複数のパケットをキューに格納するように要求する。また、パケット透過判定部24は、疑似通信シーケンスを行うため、代理応答部26に対して送信元の装置(クライアント装置10またはサーバ装置30)との代理応答を要求する。
【0027】
パケット格納部25は、パケット透過判定部24からの要求により、複数のパケットを記憶領域(キュー)に格納する。また、パケット格納部25は、パケット透過判定部24が、通信シーケンスの複数のパケットは妥当なパケットであると判定した場合には、格納したパケットを送信先に送信する。一方、パケット透過判定部24が、通信シーケンスのパケットを1つでも、不正なパケットと判定した場合には、パケット格納部25は、格納したパケットを破棄する。
【0028】
代理応答部26は、パケット透過判定部24からの代理応答の要求により、送信元の装置(クライアント装置10またはサーバ装置30)との疑似通信シーケンスを行うために、パケットの代理応答を行う。
【0029】
図4は、実施形態に係るパケットフィルタ処理部において設定されたパケットの検査条件を例示した表である。
図4に示すように、パケットの検査条件として設定する項目には、例えば、送信元IPアドレス、送信元ポート、送信先IPアドレス、送信先ポート、パケットサイズ、TCP制御フラグ(URG/ACK/PSH/RST/SYN/FIN)、システム固有のコマンド、通信シーケンスが挙げられる。
【0030】
例えば、送信元IPアドレスにおける設定内容は、一致した送信元IPアドレスからのパケットの透過/破棄を指定することである。また、送信元ポートにおける設定内容は、一致した送信元ポート番号からのパケットの透過/破棄を指定することである。送信先IPアドレスにおける設定内容は、一致した送信先IPアドレスへのパケットの透過/破棄を指定することである。送信先ポートにおける設定内容は、一致した送信先ポート番号へのパケットの透過/破棄を指定することである。
【0031】
さらに、パケットサイズにおける設定内容は、透過/破棄を判断するパケットサイズの閾値を指定することである。TCP制御フラグにおける設定内容は、TCPヘッダ部の制御フラグが一致したパケットの透過/破棄を指定することである。システム固有のコマンドにおける設定内容は、システム固有のコマンド(指定値)がTCPペイロード部に存在するパケットの透過/破棄を指定することである。
【0032】
通信シーケンスにおける設定内容は、透過または破棄する通信シーケンスを指定することである。なお、通信シーケンスの指定には、パケットの受信順、送信元装置に代理応答するパケット内容及びシーケンス間のタイムアウト値を指定する。
【0033】
次に、本実施形態に係るパケットフィルタリング装置20の動作を説明する。まず、クライアント装置10とサーバ装置30との間のTCPコネクションの確立方法を説明する。
【0034】
図5は、実施形態に係るTCPコネクションの接続シーケンスを例示した図である。
図5に示すように、まず、クライアント装置10からパケットフィルタリング装置20へ接続要求50を行う。パケットフィルタリング装置20におけるクライアント側TCP/IP制御部21は、クライアント装置10からの接続要求の妥当性を判定する。妥当性を判定した結果、許可された接続元であれば、クライアント側TCP/IP制御部21は接続を許可する。そして、TCPコネクション管理用の管理番号を登録する。
【0035】
クライアント装置10とTCPコネクションを確立できた場合は、クライアント側TCP/IP制御部21は、サーバ側TCP/IP制御部23に対して、サーバ装置30との接続を要求する。サーバ側TCP/IP制御部21は、サーバ装置30に対してTCPコネクションの接続を要求する。サーバ装置30がサーバ側TCP/IP制御部21とのTCPコネクションの接続に応答することによって、パケットフィルタリング装置20とサーバ装置30とのTCPコネクションの接続が確立される。
【0036】
サーバ装置30とTCPコネクションの確立に成功した場合には、クライアント側TCP/IP制御部21は、TCPコネクション管理用の管理番号にサーバ装置30側の接続情報を紐付する。TCPコネクションの確立に失敗した場合には、クライアント側TCP/IP制御部21は、TCPコネクション管理用の管理番号を削除し、クライアント装置10側のTCPコネクションも切断する。
【0037】
一方、クライアント装置10からの接続要求50の妥当性を判定した結果、許可されていない接続元であった場合は、クライアントTCP/IP制御部21は接続を拒否し、TCPコネクションを切断する。
【0038】
図6は、実施形態に係るパケットフィルタリング装置のクライアント側TCP/IP制御部におけるTCPコネクション接続を例示したフローチャートである。
図6に示すように、クライアント側TCP/IP制御部21は、クライアント装置10からパケットフィルタリング装置20に対する接続要求待ちを行う(ステップS11)。そして、クライアント装置10から接続要求を受信すると(ステップS12)、クライアント側TCP/IP制御部21は、許可された接続元か判定する(ステップS13)。許可されない接続元である(Noの)場合には、接続要求を拒否する(ステップS14)。そして、クライアント装置10からの接続要求待ちを行う(ステップS11)。
【0039】
一方、許可された接続元である(Yesの)場合には、接続を許可した上で、クライアント装置10とTCPコネクションを確立する。そして、TCPコネクション管理用の管理番号を登録する(ステップS15)。次に、クライアント側TCP/IP制御部21は、サーバ側TCP/IP制御部23にクライアント装置10との接続を通知する(ステップS16)。これにより、サーバ側TCP/IP制御部23は、サーバ装置30との接続を試みる。その後、クライアント側TCP/IP制御部21は、サーバ側TCP/IP制御部23からサーバ装置30との接続結果を受信する(ステップS17)。
【0040】
受信した接続結果より、サーバ装置30と接続できたか判断する(ステップS18)。サーバ装置30と接続できない(Noの)場合には、クライアント装置10とのTCPコネクションを切断する(ステップS19)。そして、ステップS11に戻り、クライアント装置10からの接続要求を待つ。一方、サーバ装置30と接続できた(Yesの)場合には、クライアント装置10からのパケット受信等のパケット処理(ステップS20)を行う。このようにして、クライアント側TCP/IP制御部21におけるTCPコネクション接続が行われる。
【0041】
図7は、実施形態に係るパケットフィルタリング装置のサーバ側TCP/IP制御部におけるTCPコネクション接続の流れを示したフローチャートである。
図7に示すように、サーバ側TCP/IP制御部23は、クライアント側TCP/IP制御部21からのクライアント装置10との接続情報待ちを行う(ステップS21)。そして、クライアント側TCP/IP制御部21からクライアント装置10との接続情報を受信すると(ステップS22)、サーバ側TCP/IP制御部23は、サーバ装置30へ接続を要求する(ステップS23)。そして、サーバ装置30への接続要求が許可された接続先か判断する(ステップS24)。許可されない接続先である(Noの)場合には、接続要求を拒否する。そして、クライアント側TCP/IP制御部へサーバ装置30への接続結果(失敗)を通知する(ステップS25)。そして、ステップS21に戻り、クライアント側TCP/IP制御部からのクライアント装置10との接続情報待ちを行う。
【0042】
一方、許可された接続先である(Yesの)場合には、接続を許可した上で、サーバ装置30とTCPコネクションを確立する。そして、クライアント装置10の接続情報と紐付けする(ステップS26)。次に、クライアント側TCP/IP制御部21へサーバ装置30との接続結果(成功)を通知する(ステップS27)。そして、サーバ装置30へのパケット送信等のパケット処理を行う(ステップS28)。
【0043】
図8は、実施形態に係るパケットフィルタリング装置において、TCPコネクション確立後にクライアント装置側のTCPコネクションが切断された場合を例示したシーケンス図である。
図8に示すように、TCPコネクション確立した後に、クライアント装置10側のTCPコネクションが切断された場合には、クライアント側TCP/IP制御部21は、対象のTCPコネクション管理用の管理番号を確認する。そして、その管理番号に紐付けされたサーバ装置30とのTCPコネクションを切断するようにサーバ側TCP/IP制御部23に要求する。クライアント側TCP/IP制御部21からの要求により、サーバ側TCP/IP制御部23は、サーバ装置30とのTCPコネクションを切断する。サーバ側TCP/IP制御部23からのサーバ装置30と切断した旨の応答により、クライアント側TCP/IP制御部21は、対象のTCPコネクション管理用の管理番号を削除する。
【0044】
図9は、実施形態に係るパケットフィルタリング装置において、TCPコネクション確立後にサーバ装置30側のTCPコネクションが切断された場合を例示したシーケンス図である。
図9に示すように、TCPコネクション確立した後に、サーバ装置30側のTCPコネクションが切断された場合には、サーバ側TCP/IP制御部23は、クライアント側TCP/IP制御部21に対してクライアント装置10との切断を要求する。クライアント装置10との切断を要求されたクライアント側TCP/IP制御部21は、対象のTCPコネクション管理用の管理番号を確認する。そして、クライアント側TCP/IP制御部21は、クライアント装置10とのTCPコネクションを切断する。クライアント側TCP/IP制御部21は、サーバ側TCP/IP制御部23に対して切断した旨の応答を行い、対象の管理番号を削除する。
【0045】
図10は、実施形態に係るパケットフィルタリング装置において、クライアント装置からパケットを受信した場合を例示したシーケンス図である。
図10において、まず、パケット単位のパケットフィルタリングの場合について説明し、その後で、通信シーケンス単位でのパケットフィルタリングの場合を説明する。
【0046】
図10に示すように、クライアント装置10から送信されたパケット40が、パケット単位の場合には、クライアント側TCP/IP制御部21はパケット40を、パケット透過判定部24へ転送する。パケット透過判定部24は、転送されたパケット40が
図4の検査条件に該当するかを判定する。判定した結果、転送されたパケット40が透過対象である妥当なパケット40の場合には、パケット透過判定部24は、そのまま、サーバ側TCP/IP制御部23へパケット40を転送する。そして、サーバ側TCP/IP制御部23は、サーバ装置30へパケット40を送信する。一方、転送されたパケットが破棄対象である不正なパケットの場合には、パケット透過判定部24はパケットを破棄する。
【0047】
次に、クライアント装置10から送信されたパケット40が、通信シーケンスのパケット40であった場合には、クライアント側TCP/IP制御部21はパケット40を、パケット透過判定部24へ転送する。パケット透過判定部24は、転送されたパケット40が
図4の検査条件に該当するか、パケットの内容や受信順に不正が無いか等を判定する。転送されたパケット40が通信シーケンスとして妥当なパケット40である場合は、パケット透過判定部24は、パケット格納部25に対してパケット40をキューに格納するように要求する。これを受けて、パケット格納部25は、パケット40をキューに格納する。
【0048】
また、パケット透過判定部24は、代理応答部26に対して、転送されたパケット40に対する代理応答を送信元に対して行うように要求する。これを受けて、代理応答部26は、クライアント側TCP/IP制御部21に対して代理応答のためのパケット40を転送する。クライアント側TCP/IP制御部21は、代理応答部26からパケット40を転送された場合には、パケット40をクライアント装置10に送信する。
【0049】
通信シーケンスにおいて、受信したパケット40が通信シーケンスの終了を示すパケット40である場合は、パケット格納部25は、格納したパケット40を順番にキューから取出す。そして、パケット格納部25は、取出したパケット40をサーバ側TCP/IP制御部23に転送する。サーバ側TCP/IP制御部23は、パケット格納部25から転送されたパケット40を送信先のサーバ装置30に対して送信する。
【0050】
一方、パケット透過判定部24における転送されたパケット40の判定の結果、通信シーケンスとして不正なパケットが1つでもあった場合は、パケット透過判定部24は、転送されたパケットを破棄する。そして、パケット透過判定部24は、パケット格納部25に対して、キューに格納したパケット40を全て破棄するように要求する。これを受けて、パケット格納部25は、格納したパケット40をキューから全て削除する。
【0051】
図11は、実施形態に係るパケットフィルタリング装置において、サーバ装置からパケットを受信した場合を例示したシーケンス図である。
図11において、まず、パケット単位のパケットフィルタリングの場合について説明し、その後で、通信シーケンス単位でのパケットフィルタリングの場合を説明する。
【0052】
図11に示すように、サーバ装置30から送信されたパケット40が、パケット単位の場合には、サーバ側TCP/IP制御部23は、パケット40をパケット透過判定部24へ転送する。パケット透過判定部24は、転送されたパケット40が
図4の検査条件に該当するかを判定する。判定した結果、転送されたパケット40が透過対象である妥当なパケット40の場合には、パケット透過判定部24は、そのまま、クライアント側TCP/IP制御部21へパケット40を転送する。そして、クライアント側TCP/IP制御部21は、クライアント装置10へパケット40を送信する。一方、転送されたパケットが破棄対象である不正なパケットの場合には、パケット透過判定部24は、パケットを破棄する。
【0053】
次に、サーバ装置30から送信されたパケット40が、通信シーケンスのパケット40であった場合には、サーバ側TCP/IP制御部23はパケット40を、パケット透過判定部24へ転送する。パケット透過判定部24は、転送されたパケット40が
図4の検査条件に該当するか、パケットの内容や受信順に不正が無いか等を判定する。転送されたパケット40が通信シーケンスとして妥当なパケットである場合は、パケット透過判定部24は、パケット格納部25に対してパケットをキューに格納するように要求する。これを受けて、パケット格納部25は、パケット40をキューに保存する。
【0054】
また、パケット透過判定部24は、代理応答部26に対して、転送されたパケット40に対する代理応答を送信元に対して行うように要求する。これを受けて、代理応答部26は、サーバ側TCP/IP制御部23に対して代理応答のためのパケット40を転送する。サーバ側TCP/IP制御部23は、代理応答部26からパケット40を転送された場合には、パケット40をサーバ装置30に送信する。
【0055】
通信シーケンスにおいて、受信したパケット40が通信シーケンスの終了を示すパケット40である場合は、パケット格納部25は、格納したパケット情報を順番にキューから取出す。そして、パケット格納部25は、取出したパケット40をクライアント側TCP/IP制御部21に転送する。クライアント側TCP/IP制御部21は、パケット格納部25から転送されたパケット40を送信先のクライアント装置10に対して送信する。
【0056】
一方、パケット透過判定部24において転送されたパケット40の判定の結果、通信シーケンスとして不正なパケットが1つでもあった場合は、パケット透過判定部24は、転送されたパケットを破棄する。そして、パケット透過判定部24は、パケット格納部25に対して、キューに格納した全てのパケット40を破棄するように要求する。これを受けて、パケット格納部25は、格納したパケット40をキューから全て削除する。
【0057】
図12は、実施形態に係るパケットフィルタリング装置において、クライアント側TCP/IP制御部のパケットフィルタリング処理を例示したフローチャート図である。
図12に示すように、クライアントTCP/IP制御部21は、クライアント装置10またはパケットフィルタ処理部22からのパケット待ちを行う(ステップS31)。そして、クライアント装置10またはパケットフィルタ処理部22からパケットを受信すると(ステップS32)、クライアント側TCP/IP制御部21は、送信元はどこか判断する(ステップS33)。
【0058】
パケットフィルタ処理部22から受信したパケットであり、すなわち、送信元がパケットフィルタ処理部22である場合には、クライアント側TCP/IP制御部21は、クライアント装置10へパケットを送信する(ステップS34)。そして、ステップS31のパケット待ちを行う。
【0059】
一方、クライアント装置10から受信したパケットであり、すなわち、送信元がクライアント装置10である場合には、クライアント側TCP/IP制御部21は、パケットフィルタ処理部22へパケットを転送する(ステップS35)。そして、ステップS31のパケット待ちを行う。
【0060】
図13は、実施形態に係るパケットフィルタリング装置において、サーバ側TCP/IP制御部のパケットフィルタリング処理を例示したフローチャート図である。
図13に示すように、サーバTCP/IP制御部23は、サーバ装置30またはパケットフィルタ処理部22からのパケット待ちを行う(ステップS36)。そして、サーバ装置30またはパケットフィルタ処理部22からパケットを受信すると(ステップS37)、サーバ側TCP/IP制御部23は、送信元はどこか判断する(ステップS38)。
【0061】
パケットフィルタ処理部22から受信したパケットであり、すなわち、送信元がパケットフィルタリ処理部22である場合には、サーバ側TCP/IP制御部23は、サーバ装置30へパケットを送信する(ステップS39)。そして、ステップS36のパケット待ちを行う。
【0062】
一方、サーバ装置30から受信したパケットであり、すなわち、送信元がサーバ装置30である場合には、サーバ側TCP/IP制御部23は、パケットフィルタ処理部22へパケットを転送する(ステップS40)。そして、ステップS36のパケット待ちを行う。
【0063】
図14は、実施形態に係るパケットフィルタリング装置において、パケット透過判定部のパケットフィルタリング処理を例示したフローチャート図である。
図14に示すように、パケット透過判定部24は、クライアント側TCP/IP制御部21またはサーバTCP/IP制御部23から転送されるパケット待ちを行う(ステップS41)。そして、クライアント側TCP/IP制御部21またはサーバTCP/IP制御部23からパケットが転送されると(ステップS42)、パケット透過判定部24は、パケットの判定を行う(ステップS43)。パケットが通信シーケンスのパケットの場合には、通信シーケンスのパケットとしての妥当性の判定を行う(ステップS44)。
【0064】
判定したパケットが不正なパケットの場合には、パケット透過判定部24は、そのパケットを破棄するとともに、パケット格納部25に対して、格納したパケットを破棄するように要求する(ステップS45)。
【0065】
判定したパケットが妥当なパケットの場合には、パケット透過判定部24は、パケット格納部25に対して、そのパケットを格納するように要求する(ステップS46)。そして、パケット透過判定部24は、代理応答部26に対して、代理応答するように要求する(ステップS47)。その後、ステップS41のパケット待ちを行う。
【0066】
ステップS43において、パケットを判定した結果、通信シーケンスのパケットではなく、かつ、破棄対象のパケットである場合には、パケット透過判定部24は、そのパケットを破棄する(ステップS48)。そして、ステップS41のパケット待ちを行う。
【0067】
一方、ステップS43において、パケットを判定した結果、通信シーケンスのパケットではなく、かつ、透過対象のパケットの場合には、ステップS49に進む。ステップS49において、パケット透過判定部24は、パケットの送信元はどこかを判定する(ステップS49)。
【0068】
クライアント装置10から受信したパケットである場合には、パケット透過判定部24は、サーバ側TCP/IP制御部23へパケットを転送する(ステップS50)。そして、ステップS41のパケット待ちを行う。サーバ装置30から受信したパケットである場合には、パケット透過判定部24は、クライアント側TCP/IP制御部21へパケットを転送する(ステップS51)。そして、ステップS41のパケット待ちを行う。
【0069】
図15は、実施形態に係るパケットフィルタリング装置において、パケット格納部のパケットフィルタリング処理を例示したフローチャート図である。
図15に示すように、パケット格納部25は、パケット透過判定部24からの要求待ちを行う(ステップS61)。そして、パケット透過判定部24から要求を受信すると(ステップS62)、パケット格納部25は、要求内容を判断する(ステップS63)。要求内容がパケット破棄である場合には、パケット格納部25は、キュー内のパケットをすべて破棄する(ステップS64)。そして、ステップS61のパケット待ちを行う。
【0070】
一方、要求内容がパケット格納である場合には、パケット格納部25は、パケットをキューに格納する(ステップS65)。そして、パケット格納部25は、格納したパケットが通信シーケンスの最後か判断する(ステップS66)。格納したパケットが通信シーケンスの最後でない(Noの)場合には、ステップS61のパケット待ちを行う。
【0071】
一方、格納したパケットが通信シーケンスの最後である(Yesの)場合には、キューにパケットが存在するかを判断する(ステップS67)。キューにパケットが存在しない(Noの)場合には、ステップS61のパケット待ちを行う。一方、キューにパケットが存在する(Yesの)場合には、パケットをキューから取り出す(ステップS68)。
【0072】
次に、パケットの送信元はどこかを判断する(ステップS69)。パケットがクライアント装置から受信したものである場合には、サーバ側TCP/IP制御部23へパケットを転送する(ステップS70)。そして、ステップS67に戻り、キューにパケットが存在するかを判断する。
【0073】
一方、パケットがサーバ装置から受信したものである場合には、クライアントTCP/IP制御部21へパケットを転送する(ステップS71)。そして、ステップS67に戻り、キューにパケットが存在するかを判断する。
【0074】
図16は、実施形態に係るパケットフィルタリング装置において、代理応答部のパケットフィルタリング処理を例示したフローチャート図である。
図16に示すように、代理応答部26は、パケット透過判定部24からの要求待ちを行う(ステップS81)。そして、パケット透過判定部24から要求を受信すると(ステップS82)、代理応答部26は、代理応答の送信先はどこかを判断する(ステップS83)。代理応答がサーバ装置30宛ての場合には、サーバ側TCP/IP制御部23へパケットを転送する(ステップS84)。そして、ステップS81のパケット待ちを行う。
【0075】
一方、代理応答がクライアント装置宛ての場合には、クライアント側TCP/IP制御部21へパケットを転送する(ステップS85)。そして、ステップS81のパケット待ちを行う。
【0076】
このように、本実施形態に係るパケットフィルタリング装置20を用いたパケットフィルタリング方法は、クライアント装置10またはサーバ装置30から送信された複数のパケットの交換を含む通信シーケンスに対して、所定の検査条件に基づいて、クライアント装置10とサーバ装置30との間のパケットの透過判定を行い、パケットの送信元のクライアント装置10またはサーバ装置30との間で、パケットの代理応答を行うものである。
【0077】
本実施形態によれば、パケットフィルタリング装置20は、クライアント装置10またはサーバ装置10から送信されたパケットを、所定の検査条件に基づいて透過判定を行い、妥当なパケットについては送信先へ透過し、不正なパケットは破棄している。また、パケットフィルタリング装置20は、受信したパケットが通信シーケンスのパケットであった場合には、通信シーケンスの代理応答を行い、疑似的に送信元装置と通信シーケンスを継続している。通信シーケンスの各パケットが妥当なパケットであれば、送信先と改めて通信シーケンスをやり直し、通信シーケンスの各パケットのいずれかに不正なパケットがあった場合は、通信シーケンスを破棄している。これにより、送信先に不正なパケットを含む通信シーケンスを一切到達させないようにすることができる。よって、通信シーケンスの途中で不正なパケットが存在した場合でも、通信シーケンス中のパケット欠如によるシーケンスエラーの発生を防ぐことができる。
【0078】
また、送信先には妥当なパケットのみ送信され、不正なパケットが一切送信されないので、送信先の資源を有効に使用することができる。
【0079】
さらに、パケットフィルタリング装置20は、判定に用いる検査条件を予め用意してパケットの判定を行っている。よって、判定の基準を明確にすることができる。また、検査条件と照らし合わせるだけで判定を行うことができる。よって、判定に要する時間を低減することができる。
【0080】
パケット格納部はキューにパケットを格納するので、取り出しの際にパケットの順序が乱れることを抑制することができる。
【0081】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、本実施形態のパケットフィルタリング方法を、ネットワークシステム1におけるクライアント装置10とサーバ装置30との間に配置されたコンピュータに実行させてもよい。そして、コンピュータに実行させるパケットフィルタリングプログラムは、クライアント装置10またはサーバ装置30から送信された複数のパケットの交換を含む通信シーケンスに対して、所定の検査条件に基づいて、クライアント装置10とサーバ装置30との間のパケットの透過判定を行い、パケットの送信元のクライアント装置10またはサーバ装置30との間で、パケットの代理応答を行うことをコンピュータに実行させるものである。