Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

ファイアウォールフィルターの一致条件を理解する

ファイアウォールフィルターの条件を定義する前に、条件で指定した一致条件がどのように処理されるか、および目的のフィルタリング結果を得るためにさまざまなタイプの一致条件を指定する方法を理解する必要があります。一致条件は、一致条件を定義する文字列(一致ステートメントと呼ばれる)で構成されます。一致条件とは、パケットに含めなければならない値またはフィールドです。

フィルター一致条件

ファイアウォールフィルター条件のfromステートメントでは、thenステートメントのいずれかでアクションをトリガーするパケット条件を指定します。 次に、さまざまなオプション、インターフェイスVLANの順に選択します。fromステートメントのすべての条件が一致し、実行するアクションに一致する必要があります。

一致が発生するためにはパケットが項内のすべての条件に一致する必要があるため、一致条件を指定する順序は重要ではありません。

条件に一致条件を指定しない場合、その条件はすべてのパケットに一致します。

fromステートメントの個々の条件に値のリストを含めることはできません。例えば、数値範囲や複数の送信元アドレスまたは宛先アドレスを指定することはできません。

fromステートメントの個々の条件を否定することはできません。否定された条件は、明示的な不一致です。

重要:

従来のJunos OSファイアウォールフィルターとは異なり、以下の点があります。

  • 個々の条件に値リスト(範囲/複数のアドレス)を含めることはできません。
  • 条件は、以下を使用して否定することはできません。 except

同じ条件に複数の値を指定するには、次のいずれかを使用します。

数値フィルター一致条件

数値フィルター条件は、ポート番号やプロトコル番号などの数値で識別されるパケットフィールドに一致します。数値フィルター一致条件では、条件を識別するキーワードと、パケット内のフィールドが一致する必要がある単一の値を指定します。

数値は、以下のいずれかの方法で指定できます。

  • 単一の数値—フィールドの値が数値と一致する場合、一致が発生します。次に例を示します。

  • 単一数値のテキスト同義語—フィールドの値が同義語に対応する数値と一致する場合、一致が発生します。次に例を示します。

フィルター条件に複数の値を指定するには、一致条件を定義する文字列である独自の一致ステートメントに各値を入力します。例えば、 vlan の値が10または30の場合、以下の項で一致が発生します。

複数の値を指定します。

数値フィルター一致条件には、以下の制限が適用されます。

  • 値の範囲を指定することはできません。

  • 値のリストをカンマで区切ることはできません。

  • 数値フィルター一致条件で特定の値を除外することはできません。例えば、一致条件が指定された値と等しくない場合のみ一致する条件を指定することはできません。

インターフェイスフィルター一致条件

インターフェイスフィルター一致条件は、パケット内のインターフェイス名の値に一致できます。インターフェイスフィルターの一致条件では、インターフェイスの名前を指定します(例)。

EXシリーズ:

ポートおよびVLANインターフェイスは、論理ユニット番号を使用しません。ただし、ルーターインターフェイスに適用されるファイアウォールフィルターは、インターフェイスフィルターの一致条件で論理ユニット番号を指定できます。次に例を示します。

QFX/EX/OCX/NFXシリーズ:

必要に応じて、必ず論理ユニットを含めます。VLANフィルタリングアプリケーションの場合は、VLANに参加するインターフェイスを指定します。

たとえば、インターフェイス名の一部として * ワイルドカードを含めることができます。

ワイルドカードがサポートされています。

  • interface ge-0/*/6.0
  • interface ge-0/1/*.0
  • interface ge-0/0/6.*

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

アドレスフィルター一致条件は、IP送信元や宛先プレフィックスなどのパケット内のプレフィックス値を一致させることができます。アドレスフィルター一致条件では、フィールドを識別するキーワードと、パケットが一致する必要があるそのタイプのプレフィックスを1つ指定します。

アドレスを 1 つのプレフィックスとして指定します。フィールドの値がプレフィックスと一致する場合、一致が発生します。次に例を示します。

各プレフィックスには、暗黙的な0/0 exceptステートメントが含まれています。これは、指定されたプレフィックスと一致しないプレフィックスは、明示的に一致しないと見なされることを意味します。

アドレスプレフィックスを指定するには、表記prefix/prefix-lengthを使用します。prefix-length を省略した場合、デフォルトは /32 になります。次に例を示します。

フィルター条件に複数のIPアドレスを指定するには、各アドレスを独自の一致ステートメントに入力します。例えば、 送信元アドレス フィールドの値が以下の送信元アドレスプレフィックスのいずれかに一致する場合、次の用語で一致が発生します。

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

MACアドレスフィルター一致条件は、パケット内の送信元と宛先のMACアドレス値を一致させることができます。MACアドレスフィルター一致条件では、フィールドを識別するキーワードと、パケットが一致する必要があるそのタイプの値を1つ指定します。

以下の形式で、MACアドレスを16進数6バイトで指定できます。

すべてのフォーマットは標準 00:11:22:33:44:55に解決されます。

フィルター条件で複数のMACアドレスを指定するには、各MACアドレスを独自の一致ステートメントに入力します。例えば、 source-mac-address フィールドの値が以下のアドレスのいずれかに一致する場合、以下の用語で一致が発生します。

ビットフィールドフィルター一致条件

ビットフィールドフィルター条件は、パケットフィールドの特定のビットが設定されているかどうかに一致します。IPオプション、TCPフラグ、IPフラグメント化フィールドを一致させることができます。ビットフィールドフィルター一致条件では、フィールドを識別するキーワードを指定し、フィールドにオプションが存在するかどうかをテストします。

一致させるビットフィールド値を指定するには、値を二重引用符で囲みます。例えば、TCPフラグフィールドの RST ビットが設定されている場合、一致が発生します。

通常、テストするビットはキーワードを使用して指定します。ビットフィールド一致キーワードは、常に1つのビット値にマッピングされます。ビットフィールドを 16 進数または 10 進数として指定することもできます。

さまざまな形式の例:

複数のビットフィールド値を一致させるには、次の表に示す論理演算子を使用します。演算子は、優先順位の高いものから順に記載されています。操作は左連想です。

表1:複数のビットフィールド演算子を一致させる論理演算子

論理演算子

説明

!

否定

&

論理AND

|

論理OR

一致を否定するには、値の前に感嘆符を付けます。例えば、TCPフラグフィールドのRSTビットが設定されていない場合にのみ、一致が発生します。

次の論理 AND 演算の例では、パケットが TCP セッションの最初のパケットである場合に一致が発生します。

次の論理 OR 演算の例では、パケットが TCP セッションの確立または破棄の一部である場合に一致が発生します。

オペレーター使用のガイドライン:

  • 値を引用符で囲みます。 "syn|fin"
  • 演算子の間にスペースは使用できません
  • OR演算ごとに最大2つの値
  • 左から右に優先順位で評価された操作: !> & > |

論理 OR 演算では、1 つの条件で最大 2 つの一致条件を指定できます。論理OR演算で2つ以上のビットフィールド値を一致させる必要がある場合は、追加のビットフィールド値とともに連続して同じ一致条件を設定します。次の例では、設定された 2 つの条件が、TCP フラグ フィールドの SYN、ACK、FIN、または RST ビットに一致します。

テキスト同義語を使用して、いくつかの一般的なビットフィールド一致を指定できます。これらの一致は、単一のキーワードとして指定します。以下のテキスト シノニムの例では、パケットが TCP セッションの最初のパケットである場合に一致が発生します。