例:フラグメントを処理するためのステートレス ファイアウォール フィルターの設定
この例では、パケットフラグメントを処理するステートレスファイアウォールフィルターを作成する方法を示しています。
要件
ステートレス ファイアウォール フィルターを構成する前に、デバイス初期化以外の特別な構成を行う必要はありません。
概要
この例では、10.2.1.0/24から発信され、BGPポート宛てのフラグメントパケットを受け入れる fragment-RE
と呼ばれるステートレスファイアウォールフィルターを作成します。この例には、次のファイアウォール フィルター条件が含まれています。
not-from-prefix-term
-–ファイアウォール フィルターの後続の条件が 10.2.1.0/24 からのパケットとのみ照合されるように、10.2.1.0/24 以外のパケットを破棄します。small-offset-term
- 小さい(1–5)オフセットパケットを破棄して、ファイアウォールフィルターの後続の条件がパケット内のすべてのヘッダーと一致できるようにします。さらに、この用語は、ファイアウォール設備のシステム ロギング宛先にレコードを追加します。not-fragmented-term
- BGP プロトコルを指定する宛先ポートを持つフラグメント化されていない TCP パケットを受け入れます。MF フラグが設定されておらず、フラグメント オフセットが 0 の場合、パケットはフラグメント化されていないと見なされます。first-fragment-term
- BGP プロトコルを指定する宛先ポートを持つフラグメント化された TCP パケットの最初のフラグメントを受け入れます。fragment-term
-small-offset-term
によって破棄されなかったすべてのフラグメントを受け入れます。(パケットフラグメント 6–8191)。ただし、first-fragment-term
が受け入れた最初のフラグメントを含むパケットの一部であるフラグメントのみが、宛先デバイスによって再構築されます。
パケットフラグメントのオフセットは、1〜8191です。
ファイアウォールフィルター内で用語を移動するには、 insert
コマンドを使用します。詳しくは、『Junos OS CLIユーザーガイド』の「挿入」を参照してください。
トポロジー
設定
CLIクイック構成
この例をすばやく設定するには、次のコマンドをコピーしてテキストファイルに貼り付け、改行を削除して、ネットワーク構成に合わせて必要な詳細を変更し、[edit]
階層レベルのCLIにコマンドをコピー&ペーストしてください。
set firewall family inet filter fragment-RE term not-from-prefix-term from source-address 0.0.0.0/0 set firewall family inet filter fragment-RE term not-from-prefix-term from source-address 10.2.1.0/24 except set firewall family inet filter fragment-RE term not-from-prefix-term then discard set firewall family inet filter fragment-RE term small-offset-term from fragment-offset 1-5 set firewall family inet filter fragment-RE term small-offset-term then syslog set firewall family inet filter fragment-RE term small-offset-term then discard set firewall family inet filter fragment-RE term not-fragmented-term from fragment-offset 0 set firewall family inet filter fragment-RE term not-fragmented-term from fragment-flags "!more-fragments" set firewall family inet filter fragment-RE term not-fragmented-term from protocol tcp set firewall family inet filter fragment-RE term not-fragmented-term from destination-port bgp set firewall family inet filter fragment-RE term not-fragmented-term then accept set firewall family inet filter fragment-RE term first-fragment-term from first-fragment set firewall family inet filter fragment-RE term first-fragment-term from protocol tcp set firewall family inet filter fragment-RE term first-fragment-term from destination-port bgp set firewall family inet filter fragment-RE term first-fragment-term then accept set firewall family inet filter fragment-RE term fragment-term from fragment-offset 6-8191 set firewall family inet filter fragment-RE term fragment-term then accept
手順
ステップバイステップでの手順
次の例では、設定階層のいくつかのレベルに移動する必要があります。手順については、 Junos OS CLIユーザーガイドの 設定モードでのCLIエディターの使用を参照してください。
ステートレス ファイアウォール フィルターを構成するには:
ステートレス ファイアウォール フィルターを定義します。
[edit] user@host# edit firewall family inet filter fragment-RE
フィルターの最初の条件を設定します。
[edit firewall family inet filter fragment-RE ] user@host# set term not-from-prefix-term from source-address 0.0.0.0/0 user@host# set term not-from-prefix-term from source-address 10.2.1.0/24 except user@host# set term not-from-prefix-term then discard
フィルターの 2 番目の項を定義します。
[edit firewall family inet filter fragment-RE] user@host# edit term small-offset-term
項の一致条件を定義します。
[edit firewall family inet filter fragment-RE term small-offset-term] user@host# set from fragment-offset 1-5
用語のアクションを定義します。
[edit firewall family inet filter fragment-RE term small-offset-term] user@host# set then syslog discard
フィルターの 3 番目の項を定義します。
[edit] user@host# edit firewall family inet filter fragment-RE term not-fragmented-term
項の一致条件を定義します。
[edit firewall family inet filter fragment-RE term not-fragmented-term] user@host# set from fragment-flags "!more-fragments" fragment-offset 0 protocol tcp destination-port bgp
用語のアクションを定義します。
[edit firewall family inet filter fragment-RE term not-fragmented-term] user@host# set then accept
フィルターの 4 番目の項を定義します。
[edit] user@host# edit firewall family inet filter fragment-RE term first-fragment-term
項の一致条件を定義します。
[edit firewall family inet filter fragment-RE term first-fragment-term] user@host# set from first-fragment protocol tcp destination-port bgp
用語のアクションを定義します。
[edit firewall family inet filter fragment-RE term first-fragment-term] user@host# set then accept
フィルターの最後の項を定義します。
[edit] user@host# edit firewall family inet filter fragment-RE term fragment-term
項の一致条件を定義します。
[edit firewall family inet filter fragment-RE term fragment-term] user@host# set from fragment-offset 6–8191
用語のアクションを定義します。
[edit firewall family inet filter fragment-RE term fragment-term] user@host# set then accept
結果
設定モードから show firewall
コマンドを入力し、設定を確認します。出力結果に意図した設定内容が表示されない場合は、この例の手順を繰り返して設定を修正します。
user@host# show firewall family inet { filter fragment-RE { term not-from-prefix-term { from { source-address { 0.0.0.0/0; 10.2.1.0/24 except; } } then discard; } term small-offset-term { from { fragment-offset 1-5; } then { syslog; discard; } } term not-fragmented-term { from { fragment-offset 0; fragment-flags "!more-fragments"; protocol tcp; destination-port bgp; } then accept; } term first-fragment-term { from { first-fragment; protocol tcp; destination-port bgp; } then accept; } term fragment-term { from { fragment-offset 6-8191; } then accept; } } }
デバイスの設定が完了したら、設定モードから commit
を入力します。
検証
設定が正常に機能していることを確認するには、次のタスクを実行します。
ステートレス ファイアウォール フィルター構成の表示
目的
ファイアウォールフィルターの設定を確認します。設定全体を表示することで、フィルター項目のフローを分析できます。
アクション
設定モードからshow firewall
コマンドを入力します。
意味
出力がファイアウォールフィルターの意図した設定を示していることを確認します。さらに、パケットをテストする順序で条件がリストされていることを確認します。ファイアウォールフィルター内で用語を移動するには、 insert
CLI コマンドを使用します。