はじめに
Fortigateにパケットが届いてからどのような順序でパケットが処理され転送されるのかを調べてみました。
Fortigateの機種ごとに、ネットワークプロセッサ(NP6など)やコンテンツプロセッサ(CP8やCP9)の搭載の有無が異なるため、処理手順はハードウェアごとに異なります。
またソフトウェア(FortiOSのバージョン)による違いや、UTM機能の検査モード(フローベースまたはプロキシベース)設定の違いによっても異なるため、より正確な情報は記事末尾のリンクからメーカー資料を確認してください。
※FortiOS 6.0まではFortiGateまたはVDOM単位で検査モードを設定していましたが、FortiOS 6.2以降、セキュリティポリシーごとに検査モードを設定できるようになってます。
本記事では、業務で扱うことが多い FortiOS6.0のドキュメントを元にまとめます。
Fortigateで実行されるセキュリティ検査のタイプ
Fortigaをパケットが通過する際、以下の3つのタイプのセキュリティ検査を実施します。
カーネルベースのステートフルインスペクション
基本的なセッション状態の中で個々のパケットベースのセキュリティを提供します。フローベースの検査
コンテンツパケットのスナップショットを取得し、パターンマッチングを使用してコンテンツ内のセキュリティ脅威を識別します。プロキシベースの検査
FortiGateを通過するコンテンツを再構築し、セキュリティ上の脅威がないかどうかを検査します。
Fortigateを通過するパケットの処理フロー
パケットの入力から出力までの処理フロー(NPのオフロードなしの場合)
パケットの入力から出力までの処理フロー(NPのオフロードありの場合)
統合脅威管理(UTM)/次世代ファイアウォール(NGFW)処理が不要なトラフィックについてはポリシーを別に作成するようにします。
そうすることでパケット処理をネットワークプロセッサ(NP6など)にオフロードさせパフォーマンスを向上させることができます。
- NPにオフロードした場合の処理フロー( 最初のパケット)
- NPにオフロードした場合の処理フロー(後続のパケット)
UTM/NGFW パケットフロー
上記「パケットの入力から出力までの処理フロー」中に記載されている「 UTM/NGFW」部分の処理フロー詳細になります。
フローベースの検査
IPS、アプリケーションコントロール、Webフィルタリング、DLP、アンチウィルスで適用できる
(IPS、アプリケーションコントロールはフローベースのみ、他はプロキシベースでも適用可能。)すべて IPSエンジンで処理される
プロキシベースの検査より処理リソースは少ないが、 検査機能も少ない
プロキシベースの検査
フローベースとプロキシベースの検査が混在して処理される
最初に IPSエンジンで処理(フローベースの検査)が行われ、次にUTM/NGFWプロキシで処理される
ファイルやウェブページからコンテンツを抽出してキャッシュし、脅威がないかどうかを検査する
脅威が見つかった場合、脅威をブロックし代替メッセージに置き換えることができる
セキュリティ機能トセキュリティ検査タイプのマッピング
Fortigateのセキュリティ機能(Firewall、IPS、Web Filteringなど)がどのタイプのセキュリティ検査(Kernel、フローベース、プロキシベース)で適用されるのかについては、以下のURLに記載のあるマッピング表で確認できます。
メーカードキュメント
Fortinet Documentation Library から[Forgigate]を選択し、対象FortiOS(6.0以上)を選択する。 [Reference Manuals] の中の [Parallel Path Processing]を参照してください。