次の表では、送信元と宛先の IP アドレスを指定するさまざまな方法を要約します。
表 3. 送信元/宛先 IP アドレスの構文
指定する項目
|
使用するフィルタ
|
例
|
任意の IP アドレス
|
任意
|
任意
|
1 つの特定の IP アドレス
|
IP アドレス
同じルール内に IPv4 と IPv6 の送信元アドレスと宛先アドレスを混在させないでください。
|
192.168.1.1
2001:db8::abcd
|
IP アドレスのリスト
|
複数の IP アドレスをカンマで区切り、それを大カッコ([] )で囲む
|
[192.168.1.1,192.168.1.15]
[2001:db8::b3ff, 2001:db8::0202]
|
IP アドレスのブロック
|
IPv4 CIDR ブロックまたは IPv6 アドレス プレフィクス表記
|
192.168.1.0/24
2001:db8::/32
|
特定の 1 つの IP アドレスまたはアドレス セットを除くすべて
|
拒否する IP アドレスの前に付ける「! 」記号
|
!192.168.1.15
!2001:db8::0202:b3ff:fe1e
|
特定の 1 つ以上の IP アドレスを除く、IP アドレス ブロック内のすべて
|
アドレス ブロックの後に、除外アドレスのリストまたはブロック
|
[10.0.0/8, !10.2.3.4, !10.1.0.0/16]
[2001:db8::/32, !2001:db8::8329, !2001:db8::0202]
|
ネットワーク変数で定義された IP アドレス
|
$ で始まる大文字の変数名
プリプロセッサ ルールは、侵入ルールで使われているネットワーク変数で定義されたホストとは無関係に、イベントをトリガーできることに注意してください。
|
$HOME_NET
|
IP アドレス変数で定義されたアドレスを除く、すべての IP アドレス
|
大文字の変数名の前に !$ を付ける
|
!$HOME_NET
|
ネットワーク オブジェクトまたはネットワーク オブジェクト グループで定義された IP アドレス
|
!{object_name} という形式でオブジェクト名またはグループ名。
|
${192.168sub16}
|
ネットワーク オブジェクトまたはネットワーク オブジェクト グループで定義されたアドレスを除く、すべての IP アドレス
|
オブジェクト名またはグループ名を中カッコ({} )で囲み、その前に !$ を付ける。
|
!${192.168sub16}
|
以下の説明では、いくつかの IP アドレス入力方法に関する追加情報を提供します。
任意の IP アドレス
任意の IPv4 または IPv6 アドレスを示す「any
」という単語を、ルールの送信元 IP アドレスまたは宛先 IP アドレスとして指定できます。
たとえば、次のルールでは [Source IPs] フィールドと [Destination IPs] フィールドで引数 any を使用して、任意の IPv4 または IPv6 の送信元または宛先アドレスを持つパケットを評価します。
alert tcp any any -> any any
また、任意の IPv6 アドレスを示すために ::
を指定することもできます。
複数の IP アドレス
次の例に示すように、カンマを使って複数の IP アドレスを区切り、オプションで、非拒否リストを大カッコで囲むことにより、個別の IP アドレスを列挙できます。
[192.168.1.100,192.168.1.103,192.168.1.105]
IPv4 アドレスと IPv6 アドレスのいずれかだけを列挙することも、任意に組み合わせて列挙することもできます(次の例を参照)。
[192.168.1.100,2001:db8::1234,192.168.1.105]
以前のソフトウェア リリースでは IP アドレス リストを大カッコで囲む必要がありましたが、現在ではこれが必須でないことに注意してください。また、オプションで、リストを入力するときに各カンマの前または後にスペースを含めることができます。
(注) |
|
また、IPv4 クラスレス ドメイン間ルーティング(CIDR)表記または IPv6 プレフィクス長を使用してアドレス ブロックを指定することもできます。次に例を示します。
-
192.168.1.0/24 は、サブネット マスク 255.255.255.0 の 192.168.1.0 ネットワーク内の IPv4 アドレス、つまり 192.168.1.0 ~ 192.168.1.255 を指定します。
-
2001:db8::/32 は、プレフィクス長 32 ビットの 2001:db8:: ネットワーク内の IPv6 アドレス、つまり 2001:db8:: ~ 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff を指定します。
ヒント |
IP アドレスのブロックを指定する必要があるが、CIDR またはプレフィクス長表記を単独で使ってそれを表現できない場合は、1 つの IP アドレス リスト内でいくつかの CIDR ブロックとプレフィクス長を使用できます。
|
ネットワーク オブジェクト
次の構文を使用して、ネットワーク オブジェクトまたはネットワーク オブジェクト グループを指定できます。
${object_name | group_name}
引数の説明
192.168sub16
という名前のネットワーク オブジェクトと all_subnets
という名前のネットワーク オブジェクト グループをすでに作成済みであるとします。ネットワーク オブジェクトを使用して IP アドレスを特定するには、たとえば次のように指定できます。
${192.168sub16}
ネットワーク オブジェクト グループを使用するには、次のように指定できます。
${all_subnets}
さらに、ネットワーク オブジェクトとネットワーク オブジェクト グループで否定を使用することもできます。次に例を示します。
!${192.168sub16}
IP アドレスの否定
特定の IP アドレスを否定するために感嘆符(!
)を使用できます。つまり、1 つ以上の特定の IP アドレスを除く、すべての IP アドレスに一致させることができます。たとえば、!192.168.1.1
は 192.168.1.1 以外の任意の IP アドレスを、!2001:db8:ca2e::fa4c
は 2001:db8:ca2e::fa4c 以外の任意の IP アドレスを指定します。
一連の IP アドレスを拒否するには、大かっこで囲んだ IP アドレスのリストの前に「!
」記号を付けます。たとえば、![192.168.1.1,192.168.1.5]
は 192.168.1.1 と 192.168.1.5 を除くすべての IP アドレスを定義します。
(注) |
IP アドレスのリストを否定するには、大カッコを使用する必要があります。
|
否定文字と一緒に IP アドレス リストを使用する場合は注意が必要です。たとえば、192.168.1.1 と 192.168.1.5 を除くすべてのアドレスと一致させるために [!192.168.1.1,!192.168.1.5]
を使用した場合、システムはこの構文を「192.168.1.1 以外のすべて、または 192.168.1.5 以外のすべて」と解釈します。
192.168.1.5 は 192.168.1.1 ではなく、192.168.1.1 は 192.168.1.5 ではないため、この両方の IP アドレスが [!192.168.1.1,!192.168.1.5]
という IP アドレス値に一致します。つまり、実質的に「any
」を使用するのと同じです。
代わりに ![192.168.1.1,192.168.1.5]
を使用してください。システムはこの構文を「192.168.1.1 でなく、しかも 192.168.1.5 でない」と解釈し、大カッコ内に列挙されたものを除くすべての IP アドレスに一致します。
論理的に言って、any
を除外(negation)と同時に使用できないことに注意してください。any を除外すると「アドレスなし」を意味することになります。