フローベースのセッション
Junos OS は、フローの最初のパケットによってトリガーされたセッション情報をキャッシュします。キャッシュされたセッションは、同じフローの後続のパケット、および転送パスに統合されたフロー モジュールを使用したそのセッションのリバース フローで使用されます。
SRXシリーズファイアウォールのセッション特性を理解する
セッションは、ルーティングやその他の分類情報に基づいて作成され、情報を保存してフローにリソースを割り当てます。セッションには特性があり、その一部は終了時などに変更できます。たとえば、攻撃者がテーブルをあふれさせようとするのを防ぐために、セッション テーブルが完全にいっぱいになることはなく、正当なユーザーがセッションを開始できないようにすることができます。
プロトコルとサービスに応じて、セッションはタイムアウト値でプログラムされます。たとえば、TCP のデフォルトのタイムアウトは 1800 秒です。UDP のデフォルトのタイムアウトは 60 秒です。
サービスのタイムアウト前にセッションを使用するトラフィックがない場合、セッションは期限切れになり、再利用のために共通のリソース プールに解放されます。セッションの存続期間は、以下の方法で変更できます。
セッションを終了する状況を指定するには、以下のいずれかの方法を使用します。
セッション テーブルの使用率に基づいてセッションをエージング アウトします
TCPセッションをエージングアウトするための明示的なタイムアウトを設定します
TCP RST(リセット)メッセージを受信したときに無効になるようにTCPセッションを設定します
どちらかのセッションエンドポイントがピアにFIN(ish)メッセージを送信したときにセッションを終了するように、
fin-invalidate-sessionステートメントを設定します。ピア エンドポイントは、FIN フラグが設定されたパケットを受信すると、ACK(nowlege) メッセージを送信します。通常、この方法を使用してセッションを破棄するには、各セッションから FIN-ACK メッセージのペアを送信する必要があります。
他のシステムに対応するセッションは、以下のように構成できます。
TCPパケットセキュリティチェックを無効にする
最大セグメントサイズを変更する
アグレッシブ セッション エージングについて
セッションテーブルは、SRXシリーズファイアウォール用の限定されたリソースです。セッションテーブルがいっぱいになると、新しいセッションはデバイスによって拒否されます。
アグレッシブ セッション エージング メカニズムは、セッション テーブル内のセッション数が指定された高基準値しきい値を超えると、セッション タイムアウト プロセスを高速化します。このメカニズムにより、セッションテーブルがいっぱいになったときに、SRXシリーズファイアウォールが新しいセッションを拒否する可能性を最小限に抑えることができます。
次のパラメータを設定して、アグレッシブ セッション エージングを実行します。
high-watermark– デバイスは、セッション テーブル内のセッション数が high-watermark しきい値を超えると、積極的なセッション エージングを実行します。
low-watermark– デバイスはアグレッシブ セッション エージングを終了し、セッション テーブル内のセッション数が low-watermark しきい値を下回ると正常に戻ります。
early-ageout – アグレッシブ セッション エージング中は、エージング アウト時間が early-ageout しきい値よりも短いセッションは、無効としてマークされます。
SRX1400、SRX3400、SRX3600、SRX5600、および SRX5800 デバイスでは、SPU はセッション テーブルをチェックし、タイムアウト値が早期エージングアウト時間の値よりも低いセッションを見つけて、無効としてマークします。(プラットフォームのサポートは、インストールされたJunos OSのリリースによって異なります)。
例:SRXシリーズファイアウォールのセッション終了の制御
この例では、一定期間が経過した後のエージングアウト、またはセッションテーブル内のセッション数がいっぱいになったか、指定された割合に達したときに、SRXシリーズファイアウォールのセッションを終了する方法を示しています。セッションテーブルでタイムアウト値またはセッション数を指定します。
必要条件
開始する前に、セッションを終了する状況を理解します。
概要
たとえば、TCP FIN Closeを受信した後やRSTメッセージを受信した後、UDPのICMPエラーに遭遇したとき、サービスタイムアウト前に一致するトラフィックが受信されなかった場合など、特定の状況でセッションの終了を制御できます。セッションが終了すると、そのリソースは他のセッションが使用できるように解放されます。
この例では、次の状況を設定してセッションを終了します。
タイムアウト値は 20 秒です。
手記:TCP セッションの初期化に設定できる最小値は 4 秒です。デフォルト値は 20 秒です。必要に応じて、TCP セッションの初期化値を 20 秒未満に設定できます。
3 ウェイ ハンドシェイク中の TCP セッション タイムアウトを変更する 280 秒の明示的なタイムアウト値。
コマンドは、TCP スリーウェイ ハンドシェイク中に、セッション テーブルで初期 TCP セッション タイムアウトを 280 に設定します。タイマーは、最初の SYN パケットが受信されると開始され、3 ウェイ ハンドシェイク中にパケットごとにリセットされます。3 ウェイ ハンドシェイクが完了すると、セッション タイムアウトは特定のアプリケーションによって定義されたタイムアウトにリセットされます。3 ウェイ ハンドシェイクが完了する前にタイマーが期限切れになると、セッションはセッション テーブルから削除されます。
TCP RST(リセット)メッセージを受信するセッションはすべて無効になります。
構成
プロシージャ
手順
SRXシリーズファイアウォールのセッション終了を制御するには:
次の例では、設定階層のいくつかのレベルに移動する必要があります。その方法の詳細については、CLIユーザー ガイドの 設定モードにおけるCLIエディターの使用を参照してください。
SRXシリーズファイアウォールのセッション終了を制御するには:
セッションのエージングアウト値を指定します。
[edit security flow] user@host# set aging early-ageout 20
エージング アウト値を構成します。
[edit security flow] user@host# set tcp-session tcp-initial-timeoout 280
TCP RSTメッセージを受信するすべてのセッションを無効にします。
[edit security flow] user@host# set tcp-session rst-invalidate-session
デバイスの設定が完了したら、設定をコミットします。
[edit ] user@host# commit
検証
設定が正常に機能していることを確認するには、 show security flow コマンドを入力します。
SRXシリーズ サービス ゲートウェイのセッションのクリア
clear コマンドを使用してセッションを終了できます。特定のアプリケーション タイプのセッション、特定の宛先ポートを使用するセッション、特定のインターフェイスまたはポートを使用するセッション、特定の IPプロトコルを使用するセッション、元プレフィックスに一致するセッション、リソース マネージャー セッションなど、すべてのセッションをクリアできます。
- SRXシリーズ サービス ゲートウェイのセッション終了
- SRXシリーズ サービス ゲートウェイの特定セッションの終了
- フィルターを使用してSRXシリーズサービスゲートウェイで終了するセッションを指定する
SRXシリーズ サービス ゲートウェイのセッション終了
次のコマンドを使用すると、トンネル セッションとリソース マネージャー セッションを除くすべてのセッションを終了できます。コマンド出力には、クリアされたセッションの数が表示されます。このコマンドは、clear コマンドが発行された管理セッションを終了することに注意してください。
user@host> clear security flow session all
SRXシリーズ サービス ゲートウェイの特定セッションの終了
次のコマンドを使用して、指定したセッションIDを持つセッションを終了できます。
user@host> clear security flow session session-identifier 40000381
フィルターを使用してSRXシリーズサービスゲートウェイで終了するセッションを指定する
clear コマンドに指定したフィルターパラメーターに基づいて、1 つ以上のセッションを終了できます。次の例では、プロトコルをフィルターとして使用します。
user@host> clear security flow session protocol 89
マルチキャスト フロー セッションのタイムアウト値の設定
マルチキャスト フロー セッションのタイムアウト値を設定するには、カスタム アプリケーションを設定し、アプリケーションをポリシーに関連付けます。
マルチキャスト フロー セッションには、1 つのテンプレート セッションと 1 つ以上のリーフ セッションがあります。これらのセッションは互いにリンクされているため、タイムアウト値は 1 つだけです。マルチキャスト フロー セッションのタイムアウト値は、リーフ セッション ポリシーで設定されたタイムアウト値と IPプロトコルのタイムアウト値を考慮して決定されます。これらのタイムアウト値のうち最も高い値が、マルチキャスト フロー セッションのタイムアウトとして選択されます。
リーフ セッションのタイムアウト値が設定されていない場合、IPプロトコルのタイムアウト値がマルチキャスト フロー セッションのタイムアウト値として自動的に使用されます。IPプロトコルのタイムアウトはデフォルトで、設定できません。
リーフ セッション タイムアウトの設定は、パケット間隔が既定の IPプロトコル タイムアウトよりも長いマルチキャスト ストリームで特に役立ちます。たとえば、パケット間隔が 60 秒を超えるマルチキャスト ストリームでは、フロー セッションの早期エージング アウトと、UDP タイムアウト値(常に 60 秒)でのパケット ドロップが発生します。このようなストリームでは、リーフ セッションのタイムアウト値を高く設定し、パケットのドロップを防ぐことができます。
リーフセッションのタイムアウト値を設定するには、カスタムアプリケーションを設定し、アプリケーションをポリシーに関連付けます。