例:フラグメントを処理するためのステートレスファイアウォールフィルターの設定
この例では、パケットフラグメントを処理するステートレスファイアウォールフィルターを作成する方法を示しています。
要件
ステートレスファイアウォールフィルターを設定する前に、デバイスの初期化以外の特別な設定を行う必要はありません。
概要
この例では、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プロトコルを指定する宛先ポートを持つフラグメント化されていないBGPパケットを受け入れます。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コマンドを使用して、ファイアウォールフィルター内で用語を移動できます。