ACL の概要
アクセス コントロール リスト(ACL)とは、トラフィックのフィルタリングに使用する順序付きのルール セットのことです。各ルールには、パケットがルールに一致するために満たさなければならない条件のセットが規定されています。スイッチは、あるパケットに対してある ACL を適用するかどうかを判断するとき、そのパケットを ACL 内のすべてのルールの条件に対してテストします。一致する条件が最初に見つかった時点で、パケットを許可するか拒否するかが決まります。一致する条件が見つからないと、スイッチは適用可能なデフォルトのルールを適用します。許可されたパケットについては処理が続行され、拒否されたパケットはドロップされます。
ACL を使用すると、ネットワークおよび特定のホストを、不要なトラフィックや望ましくないトラフィックから保護できます。たとえば、ACL を使用して、厳重にセキュリティ保護されたネットワークからインターネットに HTTP トラフィックが流入するのを禁止できます。また、特定のサイトへの HTTP トラフィックだけを許可することもできます。その場合は、サイトの IP アドレスが、IP ACL に指定されているかどうかによって判定します。
IP ACL のタイプと適用
Cisco Nexus デバイスは、セキュリティ トラフィック フィルタリングのために IPv4、IPv6、および MAC ACL をサポートします。スイッチでは、次の表に示すように、ポート ACL、およびルータ ACL として、IP アクセス コントロール リスト(ACL)を使用できます。
適用 |
サポートするインターフェイス |
サポートする ACL のタイプ |
---|---|---|
ポート ACL |
ACL は、次のいずれかに適用した場合、ポート ACL と見なされます。
|
IPv4 ACL IPv6 ACL MAC ACL |
ルータ ACL |
|
IPv4 ACL IPv6 ACL |
VTY ACL |
VTY |
IPv4 ACL IPv6 ACL |
適用順序
デバイスは、パケットを処理する際に、そのパケットの転送パスを決定します。デバイスがトラフィックに適用する ACL はパスによって決まります。デバイスは、次の順序で ACL を適用します。
-
ポート ACL
-
入力ルータ ACL
ルール
アクセス リスト コンフィギュレーション モードでルールを作成するには、permit または deny コマンドを使用します。スイッチは、許可ルール内の基準と一致するトラフィックを許可し、拒否ルール内の基準と一致するトラフィックをブロックします。ルールに一致するためにトラフィックが満たさなければならない基準を設定するためのオプションが多数用意されています。
送信元と宛先
各ルールには、ルールに一致するトラフィックの送信元と宛先を指定します。指定する送信元および宛先には、特定のホスト、ホストのネットワークまたはグループ、あるいは任意のホストを使用できます。
プロトコル
IPv4および MAC の ACL では、トラフィックをプロトコルで識別できます。指定の際の手間を省くために、一部のプロトコルは名前で指定できます。たとえば、IPv4 ACL では、ICMP を名前で指定できます。
インターネット プロトコル番号を表す整数でプロトコルを指定できます。
暗黙のルール
IP ACL および MAC ACL には暗黙ルールがあります。暗黙ルールは、実行コンフィギュレーションには設定されていませんが、ACL 内の他のルールと一致しない場合にスイッチがトラフィックに適用するルールです。
すべての IPv4 ACL には、次の暗黙のルールがあります。
deny ip any any
この暗黙のルールによって、どの条件にも一致しない IP トラフィックは拒否されます。
すべての IPv6 ACL には、次の暗黙のルールがあります。
deny ipv6 any any
すべての MAC ACL には、次の暗黙のルールがあります。
deny any any protocol
この暗黙ルールによって、デバイスは、トラフィックのレイヤ 2 ヘッダーに指定されているプロトコルに関係なく、不一致トラフィックを確実に拒否します。
その他のフィルタリング オプション
追加のオプションを使用してトラフィックを識別できます。IPv4 ACL には、次の追加フィルタリング オプションが用意されています。
-
レイヤ 4 プロトコル
-
TCP/UDP ポート
-
IGMP タイプ
-
確立済み TCP 接続
シーケンス番号
Cisco Nexus デバイスはルールのシーケンス番号をサポートしています。入力するすべてのルールにシーケンス番号が割り当てられます(ユーザによる割り当てまたはデバイスによる自動割り当て)。シーケンス番号によって、次の ACL 設定作業が容易になります。
-
既存のルールの間に新規のルールを追加する:シーケンス番号を指定することによって、ACL 内での新規ルールの挿入場所を指定します。たとえば、ルール番号 100 と 110 の間に新しいルールを挿入する必要がある場合は、シーケンス番号 105 を新しいルールに割り当てます。
-
ルールを削除する:シーケンス番号を使用しない場合は、ルールを削除するのに、次のようにルール全体を入力する必要があります。
switch(config-acl)# no permit tcp 10.0.0.0/8 any
このルールに 101 番のシーケンス番号が付いていれば、次コマンドだけでルールを削除できます。
switch(config-acl)# no 101
-
ルールを移動する:シーケンス番号を使用すれば、同じ ACL 内の異なる場所にルールを移動する必要がある場合に、そのルールのコピーをシーケンス番号で正しい位置に挿入してから、元のルールを削除できます。この方法により、トラフィックを中断せずにルールを移動できます。
シーケンス番号を使用せずにルールを入力すると、デバイスはそのルールを ACL の最後に追加し、そのルールの直前のルールのシーケンス番号よりも 10 大きい番号を割り当てます。たとえば、ACL 内の最後のルールのシーケンス番号が 225 で、シーケンス番号を指定せずにルールを追加した場合、デバイスはその新しいルールにシーケンス番号 235 を割り当てます。
また、デバイスでは、ACL 内ルールのシーケンス番号を再割り当てすることができます。シーケンス番号の再割り当ては、ACL 内に、100、101 のように連続するシーケンス番号のルールがある場合、それらのルールの間に 1 つ以上のルールを挿入する必要があるときに便利です。
論理演算子と論理演算ユニット
TCP および UDP トラフィックの IP ACL ルールでは、論理演算子を使用して、ポート番号に基づきトラフィックをフィルタリングできます。
Cisco Nexus デバイスは、演算子とオペランドの組み合わせを論理演算ユニット(LOU)というレジスタ内に格納し、IP ACL で指定された TCP および UDP ポート上で演算(より大きい、より小さい、等しくない、包含範囲)を行います。