Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

ファイアウォールフィルターの検索条件について

ファイアウォールフィルターの条件を定義する前に、条件がどのように処理されるかを理解し、目的のフィルタ結果を得るためのインターフェイス、数値、アドレス、およびビットフィールドフィルター match 条件を指定する必要があります。

フィルタマッチ条件

fromファイアウォールフィルタ条件のステートメントには、取得するthen文のアクションに対して、パケットが一致しなければならない条件を指定します。実装するアクションには、すべての条件が一致している必要があります。一致条件を指定する順序は重要ではありません。パケットは一致するためにすべての条件に一致しなければなりません。

同じ条件に複数の値を指定した場合、これらの値のいずれかに一致するものが条件と一致します。たとえば、 source-addressステートメントを使用して複数の ip 送信元アドレスを指定した場合、これらの ip 送信元アドレスのいずれかを含むパケットが条件と一致します。場合によっては、以下のように角括弧に使用可能な値を指定することで、同じ条件に対して複数の値を設定することができます。

その他の場合は、次のような複数のステートメントを入力する必要があります。

用語に一致条件が指定されていない場合、その語句はすべてのパケットと一致します。

注:

従来の Junos OS ファイアウォールフィルターとは異なりexcept 、condition ステートメントで条件を否定することはできません。

数値フィルタマッチ条件

ポートやプロトコル番号などの数値によって識別される数値フィルタマッチング条件を指定できます。数値フィルター match 条件では、条件と、パケット内のフィールドが一致することが必要な1つの値を指定します。

次のいずれかの方法で数値を指定できます。

  • 1 つの番号 — フィールドの値が番号と一致する場合に一致します。たとえば、Telnet トラフィックを検索するには、次のようにします。

  • 単一番号のテキスト シノニム — フィールドの値がシノニムに対応する番号と一致した場合に一致が起こります。たとえば、Telnet トラフィックを検索するには、次のようにします。

  • 1つのフィルター条件に同じ match 条件に複数の値を指定するには、それぞれの値を独自の match ステートメントに入力します。たとえば、パケットの発信元ポートの値が22または23の場合、以下の条件で対戦が行われます。

インターフェースフィルタマッチ条件

インターフェイスフィルター一致条件を指定して、パケットの受信または送信を行うインターフェイスに一致させることができます。たとえば、vlan にフィルターを適用する場合、vlan に参加する一部のインターフェイスでフィルターを一致させ、VLAN 内の他のインターフェイスでは一致しないようにすることができます。インターフェイスの名前を指定する場合は、論理ユニットを含める必要があります。

この例では、最後の文字0() によって論理ユニットが指定されています。インターフェイス名の一部とし*てワイルドカード () を含めることができます。たとえば、以下のように記述します。

論理ユニットの値またはワイルドカードを指定する必要があることに注意してください。

IP アドレスフィルター Match 条件

アドレスフィルター一致条件を指定して、パケット内の IP 送信元アドレスまたはプレフィックスを照合することができます。アドレスまたはプレフィックスのタイプ、およびアドレスまたはプレフィックスを指定します。たとえば、以下のように記述します。

接頭辞の長さを省略すると、デフォルトで/32はが使用されます。たとえば、以下のように記述します。

フィルタ条件で複数の IP アドレスまたはプレフィックスを指定するには、それぞれのアドレスまたはプレフィックスを独自の match ステートメントに入力します。たとえば、パケットの送信元アドレスが以下のいずれかのプレフィックスに一致する場合は、以下の条件で一致が行われます。

MAC アドレスフィルター Match 条件

送信元または宛先 MAC アドレスと一致させるために MAC アドレスフィルター一致条件を指定できます。パケットを一致させるために必要なアドレスタイプと値を指定します。

MAC アドレスは、次のいずれかの形式で6個の16進バイトとして指定できます。

使用する形式に関係なく、システムはアドレスを標準形式 (この場合は 00:11:22:33:44:55) に解決します。

1つのフィルター条件に複数の MAC アドレスを指定するには、それぞれの MAC アドレスを独自の match ステートメントに入力します。たとえば、MAC 送信元アドレスの値が以下のいずれかのアドレスに一致すると、以下の条件で一致が行われます。

ビットフィールドフィルター Match 条件

ビットフィールドフィルター match 条件を指定して、イーサネットフレーム内の特定のフィールドと IP、TCP、UDP、および ICMP ヘッダーの特定のビットを一致させることができます。通常、フィールドとフィールド内のビットを指定して、パケットに一致するように設定する必要があります。

ほとんどの場合、キーワードを使用して照合するビットを指定できます。たとえば、TCP SYN パケットに一致させるには、次synのように入力します。

また、SYN ビット0x02が8ビット tcp フラグフィールドの3番目の最下位ビットであるため、以下のように入力することもできます。

複数のビットフィールド値を照合するには、「」で表 1説明されている論理演算子を使用します。演算子は、優先度の高い順に表示されます。運用は左から右へと評価されます。

表 1: ファイアウォールフィルターのアクション

論理通信事業者

説明

!

否定

&

論理 AND

|

論理和

論理演算子を使用する場合は、値を引用符で囲み、スペースを含まないようにします。たとえば、次の文は TCP ハンドシェイクの2番目のパケットと一致します。

マッチングを否定するには、値の前に感嘆符を付けます。たとえば、次の文は、TCP ハンドシェイクの最初のパケットのみを照合します。

テキストの類義語を使用して、共通のビットフィールドに一致するものを指定することができます。たとえば、次のステートメントは、TCP ハンドシェイクの最初のパケットにも一致します。