Catalyst 6500 シリーズ スイッチ/Cisco 7600 シ リーズ ルータ Firewall Services Module コンフィ ギュレーション ガイド(CLI を使用)
アクセス リストでのトラフィックの識別
アクセス リストでのトラフィックの識別
発行日;2012/02/03 | 英語版ドキュメント(2010/04/08 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 13MB) | フィードバック

目次

アクセス リストでのトラフィックの識別

アクセス リストの概要

アクセス リストのタイプ

ACE の順序

アクセス リストの暗黙拒否

NAT 使用時のアクセス リスト用の IP アドレス

アクセス リストのコミット

ACE の最大数

拡張アクセス リストの追加

拡張アクセス リストの概要

トランスペアレント ファイアウォールを通過できるブロードキャスト トラフィックとマルチキャスト トラフィック

拡張 ACE の追加

EtherType アクセス リストの追加

サポートされているEtherType

双方向にアクセス リストを適用

アクセス リストの末尾にある暗黙拒否は IP トラフィックと ARP トラフィックに影響しない

同じインターフェイス上で拡張アクセス リストと EtherType アクセス リストを使用

MPLS の許可

EtherType ACE の追加

標準アクセス リストの追加

オブジェクトのグループ化によるアクセス リストの簡素化

オブジェクト グループ化の機能

オブジェクト グループの追加

プロトコル オブジェクト グループの追加

ネットワーク オブジェクト グループの追加

サービス オブジェクト グループの追加

ICMP タイプ オブジェクト グループの追加

オブジェクト グループのネスト

アクセス リストでのオブジェクト グループの使用

オブジェクト グループの表示

オブジェクト グループの削除

アクセス リストへのコメントの追加

アクセス リスト グループ最適化

アクセス リスト グループ最適化の機能

アクセス リスト グループ最適化の設定

拡張アクセス リストのアクティベーションのスケジューリング

時間範囲の追加

時間範囲の ACE への適用

アクセス リスト アクティビティのロギング

アクセス リスト ロギングの概要

ACE ロギングの設定

拒否フローの管理

アクセス リストでのトラフィックの識別

この章では、アクセス リストでトラフィックを識別する方法について説明します。アクセス リストはさまざまな機能で使用します。モジュラ ポリシー フレームワーク を使用する機能の場合は、アクセス リストを使用してトラフィック クラス マップ内のトラフィックを識別できます。モジュラ ポリシー フレームワーク の詳細については、「モジュラ ポリシー フレームワークの使用」を参照してください。この章で説明する内容は、次のとおりです。

「アクセス リストの概要」

「拡張アクセス リストの追加」

「EtherType アクセス リストの追加」

「標準アクセス リストの追加」

「オブジェクトのグループ化によるアクセス リストの簡素化」

「アクセス リストへのコメントの追加」

「アクセス リスト グループ最適化」

「拡張アクセス リストのアクティベーションのスケジューリング」

「アクセス リスト アクティビティのロギング」

IPv6 アクセス リストの詳細については、「IPv6 アクセス リストの設定」を参照してください。

アクセス リストの概要

アクセス リストは 1 つまたは複数の Access Control Entry(ACE; アクセス制御エントリ)で構成されます。ACE は許可または拒否のルールを指定する、アクセス リストの個々のエントリであり、プロトコル、送信元 IP アドレス、宛先 IP アドレス、またはネットワークに適用されます。任意で、送信元ポートと宛先ポートにも適用されます。

ここでは、次の内容について説明します。

「アクセス リストのタイプ」

「ACE の順序」

「アクセス リストの暗黙拒否」

「NAT 使用時のアクセス リスト用の IP アドレス」

「アクセス リストのコミット」

「ACE の最大数」

アクセス リストのタイプ

表 12-1 に、アクセス リストのタイプと一般的な用途を示します。

 

表 12-1 アクセス リストのタイプと一般的な用途

アクセス リストの用途
アクセス リストの
タイプ
説明

IP トラフィック(ルーテッド(routed)モード/トランスペアレント(transparent)モード)のネットワーク アクセスの制御

拡張

FWSM は、拡張アクセス リストで明示的に許可されていないかぎり、どのようなトラフィックの通過も許可しません。

(注) 管理アクセス用に FWSM インターフェイスにアクセスするために、アクセス リストでホスト IP アドレスを許可する必要はありません。「管理アクセスの設定」に従って管理アクセスを設定するだけで済みます。

AAA ルールの対象トラフィックの特定

拡張

AAA ルールではアクセス リストを使用してトラフィックを特定します。

特定ユーザの IP トラフィックについてネットワーク アクセスの制御

拡張、ユーザ別に AAA サーバから
ダウンロード

ユーザに適用するダイナミック アクセス リストをダウンロードするように RADIUS サーバを設定できます。RADIUS サーバは、FWSM ですでに設定済みのアクセス リストの名前を送信することもできます。

NAT(ポリシー NAT および NAT
除外)の対象アドレスの特定

拡張

ポリシー NAT では、拡張アクセス リストで送信元アドレスと宛先アドレスを指定することによって、アドレス変換対象のローカル アドレスを特定します。

VPN アクセスの確立

拡張

VPN コマンドで拡張アクセス リストを使用できます。

トラフィック クラス マップでの Modular Policy のトラフィックの識別

拡張

EtherType

モジュラ ポリシー フレームワーク をサポートする機能では、アクセス リストを使用してクラス マップ内のトラフィックを識別できます。モジュラ ポリシー フレームワーク をサポートする機能には、TCP、一般的な接続設定、インスペクションなどがあります。

トランスペアレント ファイアウォール モードにおける IP 以外のトラフィックのネットワーク アクセス制御

EtherType

EtherType に基づいてトラフィックを制御するアクセス リストを設定できます。

OSPF ルート再分配の指定

標準

標準アクセス リストには、宛先アドレスだけが含まれます。標準アクセス リストを使用して、OSPF ルートの再分配を制御できます。

ACE の順序

アクセス リストは 1 つまたは複数の Access Control Entry(ACE; アクセス制御エントリ)で構成されます。アクセス リストのタイプに応じて、送信元アドレス、宛先アドレス、プロトコル、ポート(TCP または UDP の場合)、ICMP タイプ(ICMP の場合)、または EtherType を指定できます。

任意のアクセス リスト名に入力した各 ACE は、ACE で行番号を指定した場合を除き、アクセス リストの末尾に追加されます(拡張アクセス リスト限定)。

ACE の順序は重要です。FWSM でパケットを転送するか廃棄するかを決定する場合、FWSM は各 ACE に対して、エントリの指定順にパケットをテストします。一致すると、それ以上、ACE は確認されません。たとえば、アクセス リストの先頭に、すべてのトラフィックを許可する ACE を設定した場合は、後ろのステートメントは一切確認されません。

ACE を非アクティブ状態にすることで、ACE をディセーブルにできます。

アクセス リストの暗黙拒否

アクセス リストの末尾に暗黙拒否が指定されているため、明示的に許可しないかぎり、トラフィックは通過できません。たとえば、特定のアドレスを除くすべてのユーザに、FWSM を通過してネットワークにアクセスすることを許可する場合、特定のアドレスを拒否したうえで、他のすべてのユーザを許可します。

NAT 使用時のアクセス リスト用の IP アドレス

NAT を使用する場合、アクセス リストに指定する IP アドレスは、アクセス リストを結合するインターフェイスによって決まります。インターフェイスに接続したネットワーク上で有効なアドレスを使用する必要があります。この注意事項は着信アクセス グループと発信アクセス グループの両方に当てはまります。使用されるアドレスを決定するのは、方向ではなく、インターフェイスだけです。

たとえば、内部インターフェイスの着信方向に対してアクセス リストを適用する場合、外部アドレスへのアクセス時に、内部送信元アドレスに対して NAT を実行するように FWSM を設定します。内部インターフェイスにアクセス リストが適用されるので、送信元アドレスは変換されていない元のアドレスになります。外部アドレスが変換されないので、アクセス リストで使用する宛先アドレスは実アドレスです(図 12-1を参照)。

図 12-1 アクセス リストの IP アドレス:送信元アドレスに NAT を使用

 

この例に対応するコマンドは、次のとおりです。

hostname(config)# access-list INSIDE extended permit ip 10.1.1.0 255.255.255.0 host 209.165.200.225
hostname(config)# access-group INSIDE in interface inside
 

外部ホストから内部ホストにアクセスできるようにする場合は、外部インターフェイス上で着信アクセス リストを適用できます。アクセス リストに内部ホストの変換後のアドレスを指定する必要があります。これが外部ネットワーク上で使用できるアドレスであるためです(図 12-2を参照)。

図 12-2 アクセス リストの IP アドレス:宛先アドレスに NAT を使用

 

この例に対応するコマンドは、次のとおりです。

hostname(config)# access-list OUTSIDE extended permit ip host 209.165.200.225 host 209.165.201.5
hostname(config)# access-group OUTSIDE in interface outside
 

両方のインターフェイスで NAT を実行する場合は、個々のインターフェイスに見せるアドレスを覚えておいてください。図 12-3では、外部サーバがスタティック NAT を使用するので、変換されたアドレスが内部ネットワークに表示されます。

図 12-3 アクセス リストの IP アドレス:送信元アドレスと宛先アドレスに NAT を使用

 

この例に対応するコマンドは、次のとおりです。

hostname(config)# access-list INSIDE extended permit ip 10.1.1.0 255.255.255.0 host 10.1.1.56
hostname(config)# access-group INSIDE in interface inside

アクセス リストのコミット

アクセス リストに ACE が追加されると、FWSM はネットワーク プロセッサにアクセス リストをコミットすることによって、そのアクセス リストをアクティブにします。FWSM は、 access-list コマンドが最後に入力されてから少し待機したあとで、アクセス リストをコミットします。コミットの開始後に ACE を入力した場合、FWSM はこのコミットを打ち切り、少し待機したあとでアクセス リストを再コミットします。FWSM がアクセス リストをコミットすると、次のようなメッセージが表示されます。

Access Rules Download Complete: Memory Utilization: < 1%
 

約 60 K の ACE で構成される大きなアクセス リストの場合、大きさにより、コミットに 3 ~ 4 分かかることがあります。


) 各アクセス リストの変更後とネットワーク プロセッサへの以降のコミット後にこのメッセージが表示されないようにするには、np acl-notify disable コマンドを入力します。このコマンドはローカルであり、スタートアップ コンフィギュレーションに保存されていないため、フェールオーバーによってピアに複製されません。したがって、リロードを実行するごとにこのコマンドを入力し直す必要があります。


メモリ限度の超過については、「ACE の最大数」を参照してください。

ACE の最大数

FWSM はシステム全体で最大数の ACE をサポートしています。ルールの制限(ACE のルールを含む)と別のタイプのルールの詳細については、「ルールの制限」を参照してください。

アクセス リストによっては、他のアクセス リストよりメモリを多く使用します。大きいポート番号範囲やオーバーラップしたネットワーク(たとえば、ある ACE で 10.0.0.0/8 を指定し、別の ACE で 10.1.1.0/24 を指定して、ACE のネットワークがオーバーラップする場合など)を使用するアクセス リストがこれに該当します。また、アクセス リストのタイプによっては、システムでサポートできる実際の制限値が最大値よりも小さくなります。

ACE でオブジェクト グループを使用した場合、実際に入力する ACE の数は少なくなりますが、 拡張 ACE の数はオブジェクト グループを使用しない場合と同じになり、 拡張 ACE カウントがシステム限度に近づきます。アクセス リストに指定されている拡張 ACE の数を確認するには、 show access-list コマンドを入力します。

ACE を追加した場合に、FWSM がアクセス リストをコミットすると、コンソールに次のようなメッセージで使用メモリが表示されます。

Access Rules Download Complete: Memory Utilization: < 1%
 

メモリ限度を超えると、エラー メッセージとシステム ログ メッセージ(106024)が表示され、このコミットで追加されたすべてのアクセス リストがコンフィギュレーションから削除されます。前回のコミットで正常にコミットされた 1 組のアクセス リストだけが使用されます。たとえば、プロンプトに 1000 個の ACE をペーストし、最後の ACE でメモリ限度を超えた場合、1000 個の ACE がすべて拒否されます。

拡張アクセス リストの追加

ここでは、拡張アクセス リストの追加方法について説明します。内容は次のとおりです。

「拡張アクセス リストの概要」

「トランスペアレント ファイアウォールを通過できるブロードキャスト トラフィックとマルチキャスト トラフィック」

「拡張 ACE の追加」

拡張アクセス リストの概要

拡張アクセス リストは 1 つまたは複数の ACE で構成され、ACE を挿入する行番号、送信元アドレスと宛先アドレス、ACE のタイプに応じてプロトコル、ポート(TCP/UDP の場合)、または ICMP タイプ(ICMP の場合)を指定できます。これらのすべてのパラメータを access-list コマンドで指定できます。また、各パラメータに対応するオブジェクト グループを使用することもできます。ここでは、コマンド内でパラメータを指定する方法について説明します。オブジェクト グループを使用する場合は、「オブジェクトのグループ化によるアクセス リストの簡素化」を参照してください。

ACE の末尾に追加できるロギング オプションについては、「アクセス リスト アクティビティのロギング」を参照してください。時間範囲オプションについては、「拡張アクセス リストのアクティベーションのスケジューリング」を参照してください。

ルーテッド モードとトランスペアレント モードの両方のモードの TCP および UDP 接続では、トラフィックを戻すのにアクセス リストを使用する必要はありません。この理由として、FWSM は確立済みの双方向接続ですべての戻りトラフィックを許可するためです。ただし、ICMP などのコネクションレス型プロトコルの場合、FWSM は単方向セッションを確立するため、アクセス リストで(アクセス リストを送信元インターフェイスと宛先インターフェイスに適用することによって)ICMP を双方向に使用できるようにするか、または ICMP インスペクション エンジンをイネーブルにする必要があります。ICMP インスペクション エンジンは、ICMP セッションを双方向接続として扱います。

インターフェイスの各方向に、各タイプ(拡張および EtherType)のアクセス リストを 1 つだけ適用できます。同じアクセス リストを複数のインターフェイスに適用することもできます。アクセス リストのインターフェイスへの適用の詳細については、「ネットワーク アクセスの許可または拒否」を参照してください。


) アクセス リストの設定を変更し、既存の接続がタイムアウトになる前に新しいアクセス リスト情報を使用する場合は、clear local-host コマンドを使用して接続を消去できます。


トランスペアレント ファイアウォールを通過できるブロードキャスト トラフィックとマルチキャスト トラフィック

ルーテッド ファイアウォール モードでは、ブロードキャスト トラフィックとマルチキャスト トラフィックはアクセス リストで許可されている場合でもブロックされます。これには、サポートされていないダイナミック ルーティング プロトコルや DHCP(DHCP リレーを設定している場合を除く)などがあります。トランスペアレント ファイアウォール モードでは、すべての IP トラフィックの通過を許可します。この機能は、ダイナミック ルーティングなどを許可していないマルチコンテキスト モードで特に役立ちます。


) このような特殊なトラフィック タイプはコネクションレス型であり、両方のインターフェイスにアクセス リストを適用しなければならないので、戻りトラフィックの通過が可能です。


表 12-2 に、トランスペアレント ファイアウォールを通過させることができる一般的なトラフィック タイプを示します。

 

表 12-2 トランスペアレント ファイアウォールの特殊なトラフィック

トラフィック
タイプ
プロトコルまたはポート
説明

DHCP

UDP ポート 67 および 68

DHCP サーバをイネーブルにした場合、FWSM は DHCP パケットを通過させません。

EIGRP

プロトコル 88

OSPF

プロトコル 89

マルチキャスト ストリーム

UDP ポートはアプリケーションに応じて変動

マルチキャスト ストリームの宛先は常にクラス D アドレス(224.0.0.0 ~ 239.x.x.x)です。

RIP
(v1 または v2)

TCP ポート 520

拡張 ACE の追加

任意のアクセス リスト名を指定して access-list コマンドを入力すると、 line の番号を指定した場合を除き、そのアクセス リストの末尾に ACE が追加されます。

次のコマンドを入力して、ACE を追加します。

hostname(config)# access-list access_list_name [line line_number] [extended] {deny | permit} protocol source_address mask [operator port] dest_address mask [operator port | icmp_type] [inactive]
 

ヒント コンフィギュレーションを確認するときに名前をわかりやすくするために、アクセス リスト名は大文字で入力してください。インターフェイスを示すアクセス リスト名(INSIDE など)、または作成された目的を示すアクセス リスト名(NO_NAT、VPN など)を指定できます。


通常、プロトコルとして ip キーワードを指定しますが、他のプロトコルも受け付けることができます。プロトコル名のリストについては、「プロトコルおよびアプリケーション」を参照してください。

単一アドレスを指定する場合は、IP アドレスの前に host キーワードを入力します。この場合、マスクは入力しません。すべてのアドレスを指定する場合は、アドレスとマスクの代わりに any キーワードを入力します。

送信元ポートと宛先ポートは、 tcp または udp プロトコルの場合にかぎり指定できます。使用できるキーワードおよび well-known ポートの割り当てのリストについては、「TCP ポートおよび UDP ポート」を参照してください。DNS、Discard、Echo、Ident、NTP、RPC、SUNRPC、および Talk はいずれも、TCP 用の定義と UDP 用の定義が 1 つずつ必要です。TACACS+ は、TCP ポート 49 の定義が 1 つ必要です。

演算子を使用して、送信元または宛先に使用させるポート番号を一致させます。使用できる演算子は、次のとおりです。

lt :less than(より小さい)

gt :greater than(より大きい)

eq :equal to(等しい)

neq :not equal to(等しくない)

range :指定された値を含む範囲。この演算子を使用する場合は、次の例のように、2 つのポート番号を指定します。

range 100 200
 

ICMP タイプは icmp プロトコルの場合にだけ指定できます。ICMP はコネクションレス型プロトコルなので、アクセス リストを使用して(送信元インターフェイスと宛先インターフェイスにアクセス リストを適用することによって)双方向で ICMP を使用できるようにするか、または ICMP インスペクション エンジンをイネーブルにする必要があります(「ICMP タイプ オブジェクト グループの追加」を参照)。ICMP インスペクション エンジンは、ICMP セッションをステートフル接続として扱います。ping を制御するには、 echo-reply 0 )(FWSM からホストへ)または echo 8 )(ホストから FWSM へ)を指定します。ICMP タイプのリストについては、「ICMP タイプ オブジェクト グループの追加」を参照してください。

ネットワーク マスクを指定する方法は、Cisco IOS ソフトウェアの access-list コマンドとは異なります。FWSM ではネットワーク マスクが使用されます(クラス C マスクに対する 255.255.255.0 など)。Cisco IOS ではマスクはワイルドカード ビットを使用します(0.0.0.255 など)。

ACE を非アクティブ状態にするには、 inactive キーワードを使用します。再度イネーブルにするには、 inactive キーワードを使用せずに ACE 全体を入力します。この機能によってコンフィギュレーション内の非アクティブな ACE を記録し、再イネーブルを容易にすることができます。

次の例を参照してください。

次のアクセス リストは、(アクセス リストが適用されるインターフェイス上の)すべてのホストに FWSM の通過を許可します。

hostname(config)# access-list ACL_IN extended permit ip any any
 

次のアクセス リストの例は、192.168.1.0/24 上のホストに対して、ネットワーク 209.165.201.0/27 へのアクセスを阻止します。それ以外のすべてのアドレスは許可されます。

hostname(config)# access-list ACL_IN extended deny tcp 192.168.1.0 255.255.255.0 209.165.201.0 255.255.255.224
hostname(config)# access-list ACL_IN extended permit ip any any
 

アクセスを一部のホストだけに限定する場合は、制限付き許可 ACE を入力します。デフォルトでは、他のすべてのトラフィックは明示的に許可しないかぎり拒否されます。

hostname(config)# access-list ACL_IN extended permit ip 192.168.1.0 255.255.255.0 209.165.201.0 255.255.255.224
 

次のアクセス リストは、(アクセス リストが適用されるインターフェイス上の)すべてのホストに対して、アドレス 209.165.201.29 の Web サイトへのアクセスを制限します。その他のすべてのトラフィックは許可されます。

hostname(config)# access-list ACL_IN extended deny tcp any host 209.165.201.29 eq www
hostname(config)# access-list ACL_IN extended permit ip any any
 

EtherType アクセス リストの追加

トランスペアレント ファイアウォール モード限定

EtherType アクセス リストは EtherType を指定する 1 つまたは複数の ACE からなります。ここでは、次の内容について説明します。

「サポートされているEtherType」

「双方向にアクセス リストを適用」

「アクセス リストの末尾にある暗黙拒否は IP トラフィックと ARP トラフィックに影響しない」

「同じインターフェイス上で拡張アクセス リストと EtherType アクセス リストを使用」

「MPLS の許可」

サポートされているEtherType

EtherType ACE は、16 ビットの 16 進数で指定されたあらゆる EtherType を制御します。

EtherType アクセス リストは、イーサネット V2 フレームをサポートします。

802.3 フォーマットのフレームは、タイプ フィールドではなく長さフィールドを使用するので、アクセス リストでは処理されません。

唯一の例外は、アクセス リストで処理される Bridge Protocol Data Unit(BPDU; ブリッジ プロトコル データ ユニット)です。BPDU は SNAP でカプセル化され、FWSM は BPDU を処理できるように設計されています。

FWSM のポートはトランク ポート(シスコ独自)であるため、FWSM はトランク ポート BPDU を受信します。トランク BPDU にはペイロード内に VLAN 情報が含まれるので、BPDU を許可した場合、FWSM は発信 VLAN を使用してペイロードを変更します。


) フェールオーバーを使用する場合は、ブリッジング ループを防止するために、EtherType アクセス リストで両方のインターフェイスの BPDU を許可する必要があります。


双方向にアクセス リストを適用

EtherType はコネクションレス型なので、双方向にトラフィックを流す場合は、両方のインターフェイスにアクセス リストを適用する必要があります。

アクセス リストの末尾にある暗黙拒否は IP トラフィックと ARP トラフィックに影響しない

EtherType アクセス リストの場合、アクセス リストの末尾にある暗黙拒否は IPv4 トラフィックと ARP トラフィックに影響しません。たとえば、EtherType 8037 を許可すると、アクセス リストの末尾にある暗黙拒否は、拡張アクセス リストですでに許可されている IP トラフィックをブロックしません。IPv4 トラフィックと ARP トラフィックは、EtherType アクセス リストで制御することができません。

同じインターフェイス上で拡張アクセス リストと EtherType アクセス リストを使用

インターフェイスの各方向に、各タイプ(拡張および EtherType)のアクセス リストを 1 つだけ適用できます。同じアクセス リストを複数のインターフェイスに適用することもできます。

MPLS の許可

MPLS を許可した場合は、Label Distribution Protocol(LDP; ラベル配布プロトコル)および Tag Distribution Protocol(TDP; タグ配布プロトコル)TCP 接続が FWSM を介して確立されるようにする必要があります。このためには、FWSM のインターフェイス上の IP アドレスを LDP または TDP セッションのルータ ID として使用するように、FWSM に接続された両方の MPLS ルータを設定します (LDP および TDP によって、MPLS ルータはパケット転送用ラベル「アドレス」のネゴシエーションができます)。

Cisco IOS ルータ上で、プロトコル(LDP または TDP)に応じたコマンドを入力します。 interface は FWSM に接続されたインターフェイスです。

hostname(config)# mpls ldp router-id interface force
 

または

hostname(config)# tag-switching tdp router-id interface force
 

EtherType ACE の追加

次のコマンドを入力して、EtherType ACE を追加します。

hostname(config)# access-list access_list_name ethertype {permit | deny} {ipx | bpdu | mpls-unicast | mpls-multicast | any | hex_number}
 

hex_number は、0x600 以上の 16 ビット 16 進数で指定できる任意の EtherType です。EtherType のリストについては、 http://www.ietf.org/rfc/rfc1700.txt にアクセスして、RFC 1700「Assigned Numbers」を参照してください。

任意のアクセス リスト名を指定して access-list コマンドを入力すると、そのアクセス リストの末尾に ACE が追加されます。


ヒント コンフィギュレーションを確認するときに名前をわかりやすくするために、access_list_name は大文字で入力してください。インターフェイスを示すアクセス リスト名(INSIDE など)、または目的を示すアクセス リスト名(MPLS、IPX など)を指定できます。


たとえば、次のアクセス リストの例では、内部インターフェイスを起点とする一般的な EtherType を許可します。

hostname(config)# access-list ETHER ethertype permit ipx
hostname(config)# access-list ETHER ethertype permit bpdu
hostname(config)# access-list ETHER ethertype permit mpls-unicast
hostname(config)# access-group ETHER in interface inside
 

次のアクセス リストでは、一部の EtherType に FWSM の通過を許可しますが、IPX は拒否します。

hostname(config)# access-list ETHER ethertype deny ipx
hostname(config)# access-list ETHER ethertype permit 0x1234
hostname(config)# access-list ETHER ethertype permit bpdu
hostname(config)# access-list ETHER ethertype permit mpls-unicast
hostname(config)# access-group ETHER in interface inside
hostname(config)# access-group ETHER in interface outside
 

次のアクセス リストでは、EtherType 0x1256 が指定されたトラフィックを拒否しますが、それ以外はすべて、両方のインターフェイスについて許可します。

hostname(config)# access-list nonIP ethertype deny 1256
hostname(config)# access-list nonIP ethertype permit any
hostname(config)# access-group ETHER in interface inside
hostname(config)# access-group ETHER in interface outside

標準アクセス リストの追加

標準アクセス リストは、宛先 IP アドレスを識別する一部のコマンドでだけ使用します。たとえば、標準アクセス リストを使用して、OSPF 再分配用のルート マップで使用する OSPF ルートの宛先アドレスを識別します。トラフィックを制御するインターフェイスに標準アクセス リストを適用することはできません。

次のコマンドで標準 ACE を追加します。アクセス リストの末尾に別の ACE を追加する場合は、同じアクセス リスト名を指定して access-list コマンドをもう 1 つ入力します。

次のコマンドを入力して、ACE を追加します。

hostname(config)# access-list access_list_name standard {deny | permit} {any | ip_address mask}
 

次に、アクセス リストで 192.168.1.0/24 へのルートを識別する例を示します。

hostname(config)# access-list OSPF standard permit 192.168.1.0 255.255.255.0

オブジェクトのグループ化によるアクセス リストの簡素化

ここでは、オブジェクトをグループ化してアクセス リストの作成/管理を簡素化する方法について説明します。ここでは、次の内容について説明します。

「オブジェクト グループ化の機能」

「オブジェクト グループの追加」

「オブジェクト グループのネスト」

「オブジェクト グループの表示」

「オブジェクト グループの削除」

「アクセス リストでのオブジェクト グループの使用」

オブジェクト グループ化の機能

類似のオブジェクトをグループとしてまとめることによって、オブジェクトごとに個別に ACE を入力しなくても、ACE でオブジェクト グループを使用できます。次のタイプのオブジェクト グループを作成できます。

プロトコル

ネットワーク

サービス

ICMP タイプ

例として、次の 3 つのオブジェクト グループを取り上げます。

MyServices:内部ネットワークにアクセスできるサービス要求の TCP および UDP ポート番号を指定します。

TrustedHosts:最大範囲のサービスとサーバにアクセスできるホストおよびネットワークのアドレスを指定します。

PublicServers:最大限のアクセス権を与えるサーバのホスト アドレスを指定します。

これらのグループを作成したあとで、ACE を 1 つだけ使用して、信頼できるホストがパブリック サーバのグループに対して、特定のサービス要求を行うことができるようにします。

オブジェクト グループを他のオブジェクト グループにネストすることもできます。


) 拡張アクセス リストには ACE のシステム限度が適用されます。ACE でオブジェクト グループを使用した場合、実際に入力する ACE の数は少なくなりますが、拡張 ACE の数はオブジェクト グループを使用しなかった場合と同じになります。オブジェクト グループは通常、手動で追加する場合より多くの ACE を作成します。手動で ACE を作成する場合の方がオブジェクト グループよりアドレスを集約する傾向があるからです。アクセス リストに指定されている拡張 ACE の数を確認するには、show access-list コマンドを入力します。

たとえば、送信元の数が 100 の 1 つのネットワーク オブジェクト グループ、宛先の数が 100 の 1 つのネットワーク オブジェクト グループ、およびポートの数が 5 の 1 つのポート オブジェクト グループがあるとします。この場合に送信元から宛先へのポートを許可すると、拡張アクセス リスト内の ACE の数が 50,000(5 × 100 × 100)になります。


オブジェクト グループの追加

ここでは、オブジェクト グループの追加方法について説明します。内容は次のとおりです。

「プロトコル オブジェクト グループの追加」

「ネットワーク オブジェクト グループの追加」

「サービス オブジェクト グループの追加」

「ICMP タイプ オブジェクト グループの追加」

プロトコル オブジェクト グループの追加

プロトコル オブジェクト グループを追加または変更する手順は、次のとおりです。グループを追加したあと、同じグループ名で次の手順を繰り返し、他のオブジェクトを指定することによって、オブジェクトを必要なだけ追加できます。既存のオブジェクトを再入力する必要はありません。設定済みのコマンドは、そのコマンドの no 形式を指定して削除しないかぎり維持されます。

プロトコル グループを追加する手順は、次のとおりです。


ステップ 1 次のコマンドを入力して、プロトコル グループを追加します。

hostname(config)# object-group protocol grp_id
 

grp_id は、最大 64 文字の文字列です。

プロンプトがプロトコル コンフィギュレーション モードに変わります。

ステップ 2 (任意)次のコマンドを入力して、説明を追加します。

hostname(config-protocol)# description text
 

説明に使用できる文字数は最大 200 文字です。

ステップ 3 プロトコルごとに次のコマンドを入力して、グループのプロトコルを定義します。

hostname(config-protocol)# protocol-object protocol
 

protocol は、特定の IP プロトコルを表す識別番号(1 ~ 254)または識別キーワード( icmp tcp 、または udp )です。すべての IP プロトコルを指定する場合は、 ip キーワードを使用します。指定が可能なプロトコルのリストについては、「プロトコルおよびアプリケーション」を参照してください。


 

たとえば、TCP、UDP、および ICMP に対応するプロトコル グループを作成する場合は、次のコマンドを入力します。

hostname(config)# object-group protocol tcp_udp_icmp
hostname(config-protocol)# protocol-object tcp
hostname(config-protocol)# protocol-object udp
hostname(config-protocol)# protocol-object icmp

ネットワーク オブジェクト グループの追加

ネットワーク オブジェクト グループを追加または変更する手順は、次のとおりです。グループを追加したあと、同じグループ名で次の手順を繰り返し、他のオブジェクトを指定することによって、オブジェクトを必要なだけ追加できます。既存のオブジェクトを再入力する必要はありません。設定済みのコマンドは、そのコマンドの no 形式を指定して削除しないかぎり維持されます。


) ネットワーク オブジェクト グループは、アクセス リストのタイプに応じて IPv4 アドレスおよび IPv6 アドレスをサポートします。IPv6 アクセス リストの詳細については、「IPv6 アクセス リストの設定」を参照してください。


ネットワーク グループを追加する手順は、次のとおりです。


ステップ 1 次のコマンドを入力して、ネットワーク グループを追加します。

hostname(config)# object-group network grp_id
 

grp_id は、最大 64 文字の文字列です。

プロンプトがネットワーク コンフィギュレーション モードに変わります。

ステップ 2 (任意)次のコマンドを入力して、説明を追加します。

hostname(config-network)# description text
 

説明に使用できる文字数は最大 200 文字です。

ステップ 3 ネットワークまたはアドレスごとに次のコマンドを入力して、グループのネットワークを定義します。

hostname(config-network)# network-object {host ip_address | ip_address mask}
 


 

たとえば、3 人の管理者の IP アドレスからなるネットワーク グループを作成する場合は、次のコマンドを入力します。

hostname(config)# object-group network admins
hostname(config-network)# description Administrator Addresses
hostname(config-network)# network-object host 10.1.1.4
hostname(config-network)# network-object host 10.1.1.78
hostname(config-network)# network-object host 10.1.1.34

サービス オブジェクト グループの追加

サービス オブジェクト グループを追加または変更する手順は、次のとおりです。グループを追加したあと、同じグループ名で次の手順を繰り返し、他のオブジェクトを指定することによって、オブジェクトを必要なだけ追加できます。既存のオブジェクトを再入力する必要はありません。設定済みのコマンドは、そのコマンドの no 形式を指定して削除しないかぎり維持されます。

サービス グループを追加する手順は、次のとおりです。


ステップ 1 次のコマンドを入力して、サービス グループを追加します。

hostname(config)# object-group service grp_id {tcp | udp | tcp-udp}
 

grp_id は、最大 64 文字の文字列です。

追加するサービス(ポート)に対応するプロトコルを指定します。 tcp udp 、または tcp-udp キーワードのいずれかになります。DNS(ポート 53)のように、サービスが同じポート番号で TCP と UDP の両方を使用する場合は、 tcp-udp キーワードを入力します。

プロンプトがサービス コンフィギュレーション モードに変わります。

ステップ 2 (任意)次のコマンドを入力して、説明を追加します。

hostname(config-service)# description text
 

説明に使用できる文字数は最大 200 文字です。

ステップ 3 ポートまたはポート範囲ごとに次のコマンドを入力して、グループのポートを定義します。

hostname(config-service)# port-object {eq port | range begin_port end_port}
 

使用できるキーワードおよび well-known ポートの割り当てのリストについては、「プロトコルおよびアプリケーション」を参照してください。


 

たとえば、DNS(TCP/UDP)、LDAP(TCP)、および RADIUS(UDP)からなるサービス グループを作成する場合は、次のコマンドを入力します。

hostname(config)# object-group service services1 tcp-udp
hostname(config-service)# description DNS Group
hostname(config-service)# port-object eq domain
 
hostname(config-service)# object-group service services2 udp
hostname(config-service)# description RADIUS Group
hostname(config-service)# port-object eq radius
hostname(config-service)# port-object eq radius-acct
 
hostname(config-service)# object-group service services3 tcp
hostname(config-service)# description LDAP Group
hostname(config-service)# port-object eq ldap

ICMP タイプ オブジェクト グループの追加

ICMP タイプ オブジェクト グループを追加または変更する手順は、次のとおりです。グループを追加したあと、同じグループ名で次の手順を繰り返し、他のオブジェクトを指定することによって、オブジェクトを必要なだけ追加できます。既存のオブジェクトを再入力する必要はありません。設定済みのコマンドは、そのコマンドの no 形式を指定して削除しないかぎり維持されます。

ICMP タイプ グループを追加する手順は、次のとおりです。


ステップ 1 次のコマンドを入力して、ICMP タイプ グループを追加します。

hostname(config)# object-group icmp-type grp_id
 

grp_id は、最大 64 文字の文字列です。

プロンプトが ICMP タイプ コンフィギュレーション モードに変わります。

ステップ 2 (任意)次のコマンドを入力して、説明を追加します。

hostname(config-icmp-type)# description text
 

説明に使用できる文字数は最大 200 文字です。

ステップ 3 タイプごとに次のコマンドを入力して、グループの ICMP タイプを定義します。

hostname(config-icmp-type)# icmp-object icmp_type
 

ICMP タイプのリストについては、「ICMP のタイプ」を参照してください。


 

たとえば、(ping を制御する)echo-reply および echo からなる ICMP タイプ グループを作成する場合は、次のコマンドを入力します。

hostname(config)# object-group icmp-type ping
hostname(config-service)# description Ping Group
hostname(config-icmp-type)# icmp-object echo
hostname(config-icmp-type)# icmp-object echo-reply

オブジェクト グループのネスト

オブジェクト グループを同じタイプの別のオブジェクト グループにネストする場合は、「オブジェクト グループの追加」に従って、ネストするグループを先に作成します。さらに、次の作業を行います。


ステップ 1 次のコマンドを入力して、別のオブジェクト グループをネストするオブジェクト グループを追加または編集します。

hostname(config)# object-group {{protocol | network | icmp-type} grp_id | service grp_id {tcp | udp | tcp-udp}}
 

ステップ 2 次のコマンドを入力して、ステップ 1 で指定したオブジェクト グループの中に指定のグループを追加します。

hostname(config-group_type)# group-object grp_id
 

ネストするグループは、同じタイプでなければなりません。

1 つのオブジェクト グループの中で、ネストされたグループ オブジェクトと標準オブジェクトを混在させて照合できます。


 

各部門の権限のあるユーザからなるネットワーク オブジェクト グループを作成する例を示します。

hostname(config)# object-group network eng
hostname(config-network)# network-object host 10.1.1.5
hostname(config-network)# network-object host 10.1.1.9
hostname(config-network)# network-object host 10.1.1.89
 
hostname(config-network)# object-group network hr
hostname(config-network)# network-object host 10.1.2.8
hostname(config-network)# network-object host 10.1.2.12
 
hostname(config-network)# object-group network finance
hostname(config-network)# network-object host 10.1.4.89
hostname(config-network)# network-object host 10.1.4.100
 

さらに、3 つのグループを 1 つにネストします。

hostname(config)# object-group network admin
hostname(config-network)# group-object eng
hostname(config-network)# group-object hr
hostname(config-network)# group-object finance
 

次のように、ACE で管理(admin)オブジェクト グループを指定するだけで済むようになります。

hostname(config)# access-list ACL_IN extended permit ip object-group admin host 209.165.201.29

アクセス リストでのオブジェクト グループの使用

アクセス リストでオブジェクト グループを使用するには、標準プロトコル( protocol )、ネットワーク( source_address mask など)、サービス( operator port )、または ICMP タイプ( icmp_type )パラメータを object-group grp_id パラメータに置き換えます。

たとえば、 access-list { tcp | udp } コマンドで使用できるすべてのパラメータにオブジェクト グループを使用する場合は、次のコマンドを入力します。

hostname(config)# access-list access_list_name [line line_number] [extended] {deny | permit} {tcp | udp} object-group nw_grp_id [object-group svc_grp_id] object-group nw_grp_id [object-group svc_grp_id]
 

すべてのパラメータにオブジェクト グループを使用する必要はありません。たとえば、送信元アドレスにオブジェクト グループを使用すれば、宛先アドレスはアドレスとマスクで特定できるといったことが可能です。

次のオブジェクト グループを使用しない標準アクセス リストは、内部ネットワーク上の複数のホストに対して、複数の Web サーバへのアクセスを制限します。その他のすべてのトラフィックは許可されます。

hostname(config)# access-list ACL_IN extended deny tcp host 10.1.1.4 host 209.165.201.29 eq www
hostname(config)# access-list ACL_IN extended deny tcp host 10.1.1.78 host 209.165.201.29 eq www
hostname(config)# access-list ACL_IN extended deny tcp host 10.1.1.89 host 209.165.201.29 eq www
hostname(config)# access-list ACL_IN extended deny tcp host 10.1.1.4 host 209.165.201.16 eq www
hostname(config)# access-list ACL_IN extended deny tcp host 10.1.1.78 host 209.165.201.16 eq www
hostname(config)# access-list ACL_IN extended deny tcp host 10.1.1.89 host 209.165.201.16 eq www
hostname(config)# access-list ACL_IN extended deny tcp host 10.1.1.4 host 209.165.201.78 eq www
hostname(config)# access-list ACL_IN extended deny tcp host 10.1.1.78 host 209.165.201.78 eq www
hostname(config)# access-list ACL_IN extended deny tcp host 10.1.1.89 host 209.165.201.78 eq www
hostname(config)# access-list ACL_IN extended permit ip any any
hostname(config)# access-group ACL_IN in interface inside
 

内部ホストと Web サーバ用に 1 つずつ、2 つのネットワーク オブジェクト グループを作成すると、設定が簡素化され、ホストを追加するときの変更が容易になります。

hostname(config)# object-group network denied
hostname(config-network)# network-object host 10.1.1.4
hostname(config-network)# network-object host 10.1.1.78
hostname(config-network)# network-object host 10.1.1.89
 
hostname(config-network)# object-group network web
hostname(config-network)# network-object host 209.165.201.29
hostname(config-network)# network-object host 209.165.201.16
hostname(config-network)# network-object host 209.165.201.78
 
hostname(config-network)# access-list ACL_IN extended deny tcp object-group denied object-group web eq www
hostname(config)# access-list ACL_IN extended permit ip any any
hostname(config)# access-group ACL_IN in interface inside

オブジェクト グループの表示

現在設定されているオブジェクト グループを表示するには、次のコマンドを入力します。

hostname(config)# show object-group [protocol | network | service | icmp-type | id grp_id]
 

パラメータを指定しないでコマンドを入力すると、設定されているすべてのオブジェクト グループが表示されます。

次に、 show object-group コマンドの出力例を示します。

hostname# show object-group
object-group network ftp_servers
description: This is a group of FTP servers
network-object host 209.165.201.3
network-object host 209.165.201.4
object-group network TrustedHosts
network-object host 209.165.201.1
network-object 192.168.1.0 255.255.255.0
group-object ftp_servers

オブジェクト グループの削除

オブジェクト グループを削除するには、次のいずれかのコマンドを入力します。


) アクセス リストで使用中のオブジェクト グループは、削除することも空にすることもできません。


特定のオブジェクト グループを削除する場合は、次のコマンドを入力します。

hostname(config)# no object-group grp_id
 

指定したタイプのオブジェクト グループをすべて削除する場合は、次のコマンドを入力します。

hostname(config)# clear object-group [protocol | network | services | icmp-type]
 

タイプを入力しなかった場合は、すべてのオブジェクト グループが削除されます。

アクセス リストへのコメントの追加

拡張アクセス リスト、EtherType アクセス リスト、標準アクセス リストをはじめ、あらゆるアクセス リストでエントリに関するコメントを追加できます。コメントによってアクセス リストがわかりやすくなります。

次のコマンドを入力して、アクセス リストにコメントを追加します。

hostname(config)# access-list access_list_name [line line_number] remark text
 

任意のアクセス リスト名を指定して access-list remark コマンドを入力すると、 line の番号を指定した場合を除き、そのアクセス リストの末尾にコメントが追加されます。

clear configure access-list access_list_name コマンドを使用してアクセス リストを削除すると、コメントもすべて削除されます。

テキストは最大 100 文字の長さまで入力できます。テキストの先頭に先行スペースを入力することもできます。後続スペースは無視されます。

たとえば、各 ACE の前にコメントを追加すると、アクセス リスト内のその位置にコメントが入ります。コメント テキストの前にダッシュ(-)を入力すると、ACE との区別が容易になります。

hostname(config)# access-list OUT remark - this is the inside admin address
hostname(config)# access-list OUT extended permit ip host 209.168.200.3 any
hostname(config)# access-list OUT remark - this is the hr admin address
hostname(config)# access-list OUT extended permit ip host 209.168.200.4 any
 

アクセス リスト グループ最適化

アクセス リスト最適化機能では、重複した ACE と競合した ACE の結合や削除によって、アクセス リストのセマンティックに影響を与えることなくグループ当たりの ACE の数が削減されます。

ここでは、次の内容について説明します。

「アクセス リスト グループ最適化の機能」

「アクセス リスト グループ最適化の設定」

アクセス リスト グループ最適化の機能

最適化の実行中に、2 つのルールを結合できるかどうかを判別するために、4 つのケース(サブセット、スーパーセット、隣接、および重複)が検査されます。

サブセット:ルール x がルール y のサブセットである場合、ルール x はルール y に下位結合されます。

最適化前

access-list test extended permit tcp 10.1.1.1 255.255.255.255 any eq 80 [rule x]
access-list test extended permit tcp 10.1.1.0 255.255.255.0 any [rule y]
 

最適化後

access-list test extended permit tcp 10.1.1.0 255.255.255.0 any [rule y]
 

スーパーセット:ルール x がルール y のスーパーセットである場合、ルール y はルール x に上位結合されます。

最適化前

access-list test extended permit udp 10.1.1.0 255.255.255.0 any [rule x]
access-list test extended permit udp 10.1.1.1 255.255.255.255 any [rule y]
 

最適化後

access-list test extended permit udp 10.1.1.0 255.255.255.0 any [rule x]
 

隣接:ルール x がルール y に隣接している場合、ルール y はルール x に上位結合されます。

最適化前

access-list test extended permit ip 10.1.1.0 255.255.255.128 any [rule x]
access-list test extended permit ip 10.1.1.128 255.255.255.128 any [rule y]
 

最適化後

access-list test extended permit ip 10.1.1.0 255.255.255.0 any [rule x]
 

重複:ルール x がルール y と重複している場合、ルール y はルール x に上位結合されます。

最適化前

access-list test extended permit tcp any any range 50 100 [rule x]
access-list test extended permit tcp any any range 60 120 [rule y]
 

最適化後

access-list test extended permit tcp any any range 50 120 rule x]
 

) 重複した 2 つのルール間のアクセス リストに競合したルールが存在する場合、これらのルールの結合はできません。


許可/拒否:ルール x がルール y およびルール z と重複しており、ルール y に異なる権限/アクションが定義されている場合、ルール x とルール z は、両方のルールに同じ権限/アクションが定義されている場合でも結合できません。

最適化前

access-list test extended permit tcp any any range 50 100 [rule x]
access-list test extended deny tcp any any range 80 130 [rule y]
access-list test extended permit tcp any any range 60 120 [rule z]
 

最適化後

access-list test extended permit tcp any any range 50 100 [rule x]
access-list test extended deny tcp any any range 80 130 [rule y]
access-list test extended permit tcp any any range 60 120 [rule z]
 

ロギング(default キーワードと disable キーワード):「log default」キーワードが定義されたルール x と「log disable」キーワードが定義されたルール y が重複している場合、ルール x とルール y は、両方のルールに「permit」アクションが定義されている場合にかぎり結合できます。

最適化前

access-list test extended permit tcp any any range 50 100 log default [rule x]
access-list test extended permit tcp any any range 80 130 log disable [rule y]
 

最適化後

access-list test extended permit tcp any any range 50 130 log default [rule x]
 

最適化前

access-list test extended deny tcp any any range 50 100 log default [rule x]
access-list test extended deny tcp any any range 80 130 log disable [rule y]
 

最適化後

access-list test extended deny tcp any any range 50 100 log default [rule x]
access-list test extended deny tcp any any range 80 130 log disable [rule y]
 

ロギング(syslog レベル/時間範囲/非アクティブ):ログ レベル、時間範囲、または非アクティブが定義されたルールは、他のルールと結合できません。このルールは、ブロッキング ルールになることもあります。

最適化前

access-list test extended permit tcp any any range 50 100 [rule x]
access-list test extended permit tcp any any range 80 130 log critical [rule y]
access-list test extended permit tcp any any range 60 120 [rule z]
 

最適化後

access-list test extended permit tcp any any range 50 100 [rule x]
access-list test extended permit tcp any any range 80 130 log critical [rule y]
access-list test extended permit tcp any any range 60 120 [rule z]

) アクセス リスト最適化が適用されるのは、静的な拡張アクセス リストだけです。動的なアクセス リストは最適化されません。また、アクセス リストが AAA、ポリシー NAT、およびフィックスアップ モジュールに結合された場合は、これらのルールの 2 つのコピーがシステム内に同時に存在することになります。最適化されたコピーは、アクセス リストがアクセス グループに結合された場合に使用され、最適化されていない元のコピーは、AAA、ポリシー NAT、およびフィックスアップに使用されます。


アクセス リスト グループ最適化の設定

アクセス リスト グループ最適化を設定する手順は、次のとおりです。


ステップ 1 アクセス リスト グループ最適化をイネーブルにするには、次のコマンドを入力します。

hostname(config)# access-list optimization enable
 

アクセス リスト グループ最適化をディセーブルにする場合は、そのコマンドの no 形式を使用します。

ステップ 2 最適化されたアクセス リストに関する情報を表示するには、次のコマンドを使用します。

hostname(config)# show access-list [id] [optimization [detail] [range low high]]
 

id 引数は、特定のアクセス リストを示します。detail キーワードは、最適化の詳細を示します。range キーワードには、特定のアクセス リストの範囲を low 引数と high 引数で指定できます。

ステップ 3 最適化された実行コンフィギュレーションを指定の場所にコピーするには、次のコマンドを使用します。

hostname(config)# copy optimized-running-config [url | running-config | startup-config | system]
 

url 引数には、コピーする送信元ファイルまたは宛先ファイルを指定します( disk: 、ftp : 、または tftp: )。


copy optimized-running-config コマンドは実行コンフィギュレーションを上書きするため、設定を保存した場合に、実行コンフィギュレーションから object-group アクセス リストの行が失われる可能性があります。通常、最適化された設定には object-group よりも正規の ACE が多く含まれているため、この処理によって、実行コンフィギュレーションのサイズが拡張する場合があります。また、多数のアクセス リストが設定に含まれている場合は、この処理によって、サイズが 3 MB を超える大規模な設定ファイルが生成されることがあります。したがって、このコマンドは、スタートアップ コンフィギュレーションのサイズ制限を超えないことが確実な場合に使用してください。



 

次に、最適化されたアクセス リスト設定の例を示します。

元のアクセス リスト設定を表示します。

hostname(config)# sh access-list test
access-list test; 13 elements
access-list test line 1 extended permit tcp host 10.1.1.6 host 10.1.1.20 eq www (hitcnt=0) 0x1d3335f6
access-list test line 2 extended permit tcp any host 10.1.1.90 eq ssh (hitcnt=0) 0x9f0b14e0
access-list test line 3 extended permit tcp any host 10.1.1.90 eq ftp (hitcnt=0) 0x7d023e5f
access-list test line 4 extended permit tcp any object-group dns-servers eq domain 0xb4b0751d
access-list test line 4 extended permit tcp any host 10.10.10.5 eq domain (hitcnt=0) 0x9664696e
access-list test line 4 extended permit tcp any host 10.10.10.6 eq domain (hitcnt=0) 0xde9a7aec
access-list test line 4 extended permit tcp any host 10.10.10.7 eq domain (hitcnt=0) 0x5847c29a
access-list test line 4 extended permit tcp any host 10.10.10.8 eq domain (hitcnt=0) 0xa4246eba
access-list test line 4 extended permit tcp any host 10.10.10.9 eq domain (hitcnt=0) 0x85fc0e4a
access-list test line 5 extended permit udp any any eq domain (hitcnt=0) 0xbaf2384c
access-list test line 6 extended permit tcp 10.1.1.0 255.255.255.0 any (hitcnt=0) 0xd07a176b
access-list test line 7 extended permit icmp any any (hitcnt=0) 0xb422e9c2
access-list test line 8 extended permit udp any any neq domain (hitcnt=0) 0x8e2ee97e
access-list test line 9 extended permit tcp any host 10.10.10.5 (hitcnt=0) 0xaa819def
 

アクセス リスト グループ最適化をイネーブルにします。

hostname(config)# access-list optimization enable
ACL group optimization is enabled
hostname(config)#
Access Lists Optimization Complete
Access Rules Download Complete: Memory Utilization: < 1%
 

) 最適化をイネーブルにすると、ルールが最適化されて NP にダウンロードされます。最適化されていない元のルールは非アクティブになります。ルールの追加/削除は、最適化されていない元のアクセス リストで実行する必要があります。新しいルールを追加/削除すると、最適化処理が繰り返されたあと、最適化が終了したことを示す「アクセス リスト最適化完了」メッセージが表示されます。この処理期間中のアクセス リスト情報には、最適化処理が完了するまで正確でないものもあります。


最適化されていない(元の)アクセス リストをもう一度表示します。

hostname(config)# show access-list test
access-list test; 13 elements
access-list test line 1 extended permit tcp host 10.1.1.6 host 10.1.1.20 eq www (hitcnt=*) 0x1d3335f6
access-list test line 2 extended permit tcp any host 10.1.1.90 eq ssh (hitcnt=*) 0x9f0b14e0
access-list test line 3 extended permit tcp any host 10.1.1.90 eq ftp (hitcnt=*) 0x7d023e5f
access-list test line 4 extended permit tcp any object-group dns-servers eq domain 0xb4b0751d
access-list test line 4 extended permit tcp any host 10.10.10.5 eq domain (hitcnt=*) 0x9664696e
access-list test line 4 extended permit tcp any host 10.10.10.6 eq domain (hitcnt=*) 0xde9a7aec
access-list test line 4 extended permit tcp any host 10.10.10.7 eq domain (hitcnt=*) 0x5847c29a
access-list test line 4 extended permit tcp any host 10.10.10.8 eq domain (hitcnt=*) 0xa4246eba
access-list test line 4 extended permit tcp any host 10.10.10.9 eq domain (hitcnt=*) 0x85fc0e4a
access-list test line 5 extended permit udp any any eq domain (hitcnt=*) 0xbaf2384c
access-list test line 6 extended permit tcp 10.1.1.0 255.255.255.0 any (hitcnt=0) 0xd07a176b
access-list test line 7 extended permit icmp any any (hitcnt=0) 0xb422e9c2
access-list test line 8 extended permit udp any any neq domain (hitcnt=*) 0x8e2ee97e
access-list test line 9 extended permit tcp any host 10.10.10.5 (hitcnt=0) 0xaa819def
 

) 一部のヒット カウント値はアスタリスク「*」で表されます。アスタリスクは、そのルールが別のルールと結合されているため、ヒット カウント値が正確でないことを示します。最適化されたルールのヒット カウントは、結合されたルールと削除されたルールのすべてのヒット カウントを累積した値になります。結合されたルールまたは削除されたルールごとにヒット カウントを求める方法はありません。


Show the optimized access list:
 
hostname(config)# show access-list test optimization
access-list test;
13 elements before optimization
7 elements after optimization
 
Reduction rate = 46%
 
access-list test line 2 extended permit tcp any host 10.1.1.90 range ftp ssh (hitcnt=0) 0x9f0b14e0
access-list test line 4 extended permit tcp any 10.10.10.6 255.255.255.254 eq domain (hitcnt=0) 0xde9a7aec
access-list test line 4 extended permit tcp any 10.10.10.8 255.255.255.254 eq domain (hitcnt=0) 0xa4246eba
access-list test line 5 extended permit udp any any (hitcnt=0) 0xbaf2384c
access-list test line 6 extended permit tcp 10.1.1.0 255.255.255.0 any (hitcnt=0) 0xd07a176b
access-list test line 7 extended permit icmp any any (hitcnt=0) 0xb422e9c2
access-list test line 10 extended permit tcp any host 10.10.10.5 (hitcnt=0) 0xaa819def
 

最適化されたアクセス リストの詳細を表示します。

hostname(config)# show access-list test optimization detail
access-list test;
13 elements before optimization
7 elements after optimization
 
Reduction rate = 46%
 
SUBSET rules : 2
ADJACENT rules : 5
 
access-list test line 1 extended permit tcp host 10.1.1.6 host 10.1.1.20 eq www (hitcnt=0) 0x00000000 [Merged to 6: SUBSET]
access-list test line 2 extended permit tcp any host 10.1.1.90 range ftp ssh (hitcnt=0) 0x9f0b14e0 [(3)]
access-list test line 3 extended permit tcp any host 10.1.1.90 eq ftp (hitcnt=0) 0x00000000 [Merged to 2: ADJACENT]
access-list test line 4 extended permit tcp any object-group dns-servers eq domain 0xb4b0751d
access-list test line 4.1 extended permit tcp any host 10.10.10.5 eq domain (hitcnt=0) 0x00000000 [Merged to 9: SUBSET]
access-list test line 4.2 extended permit tcp any 10.10.10.6 255.255.255.254 eq domain (hitcnt=0) 0xde9a7aec [(4.3)]
access-list test line 4.3 extended permit tcp any host 10.10.10.7 eq domain (hitcnt=0) 0x00000000 [Merged to 4.2: ADJACENT]
access-list test line 4.4 extended permit tcp any 10.10.10.8 255.255.255.254 eq domain (hitcnt=0) 0xa4246eba [(4.5)]
access-list test line 4.5 extended permit tcp any host 10.10.10.9 eq domain (hitcnt=0) 0x00000000 [Merged to 4.4: ADJACENT]
access-list test line 5 extended permit udp any any (hitcnt=0) 0xbaf2384c [(8.1,8.2)]
access-list test line 6 extended permit tcp 10.1.1.0 255.255.255.0 any (hitcnt=0) 0xd07a176b [(1)]
access-list test line 7 extended permit icmp any any (hitcnt=0) 0xb422e9c2
access-list test line 8.1 extended permit udp any any lt domain (hitcnt=0) 0x00000000 [Merged to 5: ADJACENT]
access-list test line 8.2 extended permit udp any any gt domain (hitcnt=0) 0x00000000 [Merged to 5: ADJACENT]
access-list test line 9 extended permit tcp any host 10.10.10.5 (hitcnt=0) 0xaa819def [(4.1)]
 

) ルール情報の中には、結合された時点で変更されるものもあります。ルール 2 は、ルール 3 と結合されたために変更されました。最適化されていない元のルール 2 を表示する場合、ユーザは(たとえば、show access-list test コマンドを使用して)最適化されていない(元の)アクセス リストを参照する必要があります。


最適化されたアクセス リストの範囲 2 ~ 5 を表示します。

hostname(config)# show access-list test optimization range 2 5
access-list test;
13 elements before optimization
7 elements after optimization
 
Reduction rate = 46%
 
access-list test line 2 extended permit tcp any host 10.1.1.90 range ftp ssh (hitcnt=0) 0x9f0b14e0
access-list test line 4 extended permit tcp any 10.10.10.6 255.255.255.254 eq domain (hitcnt=0) 0xde9a7aec
access-list test line 4 extended permit tcp any 10.10.10.8 255.255.255.254 eq domain (hitcnt=0) 0xa4246eba
access-list test line 5 extended permit udp any any (hitcnt=0) 0xbaf2384c
 

最適化されたアクセス リストの範囲 6 ~ 9 の詳細を表示します。

hostname(config)# show access-list test optimization detail range 6 9
access-list test;
13 elements before optimization
7 elements after optimization
 
Reduction rate = 46%
 
SUBSET rules : 2
ADJACENT rules : 5
 
access-list test line 6 extended permit tcp 10.1.1.0 255.255.255.0 any (hitcnt=0) 0xd07a176b [(1)]
access-list test line 7 extended permit icmp any any (hitcnt=0) 0xb422e9c2
access-list test line 8.1 extended permit udp any any lt domain (hitcnt=0) 0x00000000 [Merged to 5: ADJACENT]
access-list test line 8.2 extended permit udp any any gt domain (hitcnt=0) 0x00000000 [Merged to 5: ADJACENT]
access-list test line 9 extended permit tcp any host 10.10.10.5 (hitcnt=0) 0xaa819def [(4.1)]
 

最適化が現在実行中のアクセス リストを表示します。

hostname(config)# show running-config access-list test optimization
access-list test extended permit tcp any host 10.1.1.90 range ftp ssh
access-list test extended permit tcp any 10.10.10.6 255.255.255.254 eq domain
access-list test extended permit tcp any 10.10.10.8 255.255.255.254 eq domain
access-list test extended permit udp any any
access-list test extended permit tcp 10.1.1.0 255.255.255.0 any
access-list test extended permit icmp any any
access-list test extended permit tcp any host 10.10.10.5
 

元のアクセス リストを、最適化されたアクセス リストに置き換えます。

hostname(config)# copy optimized-running-config running-config
 
Destination filename [running-config]?
 
hostname(config)#
Access Lists Optimization Complete
Access Rules Download Complete: Memory Utilization: < 1%

) アクセス リスト最適化を常時イネーブルにすると、計算リソースとメモリ リソースが無駄に消費されることがあります。最適化されたアクセス リストの結合方法に問題がない場合は、元のアクセス リストを、最適化されたアクセス リストに置き換えることができます。このアクションを実行すると、元のアクセス リストがすべて消去される点に注意してください。最適化されたアクセス リストをコピーしたら、アクセス リスト最適化をディセーブルにすることができます。これは、最適化されたアクセス リストを新たにコピーしても、さらに最適化されることがないためです。


アクセス リスト グループ最適化をディセーブルにします。

hostname(config)# no access-list optimization enable
Disabling ACL optimization will cause ACL rules get increased.
The non optimized rules might be more than the partition rule max
and might cause memory exhaustion to lose partial or all the
access-list configuration after disabling the optimization.
Please save a copy of your current optimized access-list config
before committing this command.
Continue ? [Y]es/[N]o:
ACL group optimization is disabled
hostname(config)# Access Rules Download Complete: Memory Utilization: < 1%
 
hostname(config)#
 

) アクセス リスト最適化をディセーブルにする場合は、最適化されていない元のルールの数(ほとんどの場合、最適化されたルールの数よりも多くなります)が、これらのルールを保存できるメモリの量を超えることがある点に注意してください。この状況でディセーブル化を行うと、いくつかのルールが削除されます。この場合は、アクセス リスト グループ最適化をディセーブルにする前に、元の設定のバックアップを取っておくことを推奨します。


拡張アクセス リストのアクティベーションのスケジューリング

ACE に時間範囲を適用して、各 ACE を特定の時刻および曜日にアクティブ化するようにスケジューリングできます。ここでは、次の内容について説明します。

「時間範囲の追加」

「時間範囲の ACE への適用」

時間範囲の追加

時間範囲を追加して時間ベースのアクセス リストを実装するには、次の手順を実行します。


ステップ 1 次のコマンドを入力して、時間範囲名を指定します。

hostname(config)# time-range name
 

ステップ 2 時間範囲として、定期時間範囲または絶対間範囲のどちらかを指定します。


) ACL に対して指定された終了時間が非アクティブになったあと、約 80 ~ 100 秒の遅延が発生することがあります。たとえば、指定された終了時間が 3:50 の場合、この終了時間は包括時間であるため、3:51:00 ~ 3:51:59 間の任意の時点でコマンドが取得されます。コマンドが取得されると、セキュリティ アプライアンスにより、現在実行中のタスクが終了し、コマンドで ACL の非アクティブ化が実行されます。


time-range コマンドごとに複数の定期エントリを入力できます。 time-range コマンドに absolute 値と periodic 値の両方を指定した場合、 periodic コマンドは absolute 開始時間の到達後にだけ評価され、 absolute 終了時間の到達後には評価されません。

定期時間範囲:

hostname(config-time-range)# periodic days-of-the-week time to [days-of-the-week] time
 

days-of-the-week に対して次の値を指定できます。

monday tuesday wednesday thursday friday saturday 、および sunday

daily

weekdays

weekend

time の形式は hh : mm です。たとえば、8:00 は午前 8 時を意味し、20:00 は午後 8 時を意味します。

絶対時間範囲:

hostname(config-time-range)# absolute start time date [end time date]
 

time の形式は hh : mm です。たとえば、8:00 は午前 8 時を意味し、20:00 は午後 8 時を意味します。

date の形式は であり、 1 january 2006 のようになります。


 

次に、2006 年 1 月 1 日の午前 8 時に始まる絶対時間範囲の例を示します。終了日時が指定されていないため、時間範囲が無期限に有効になります。

hostname(config)# time-range for2006
hostname(config-time-range)# absolute start 8:00 1 january 2006
 

次に、平日の午前 8 時から午後 6 時までの週単位の定期時間範囲の例を示します。

hostname(config)# time-range workinghours
hostname(config-time-range)# periodic weekdays 8:00 to 18:00
 

時間範囲の ACE への適用

次のコマンドを入力して、時間範囲を ACE に適用します。

hostname(config)# access-list access_list_name [extended] {deny | permit}...[time-range name]
 

access-list コマンド構文の詳細については、「拡張アクセス リストの追加」を参照してください。


) ACE のロギングもイネーブルにする場合、time-range キーワードの前に log キーワードを使用します。inactive キーワードを使用して ACE をディセーブルにする場合、最後のキーワードとして inactive キーワードを使用します。


次に、「Sales」という名前のアクセス リストを「New_York_Minute」という名前の時間範囲に結合する例を示します。

hostname(config)# access-list Sales line 1 extended deny tcp host 209.165.200.225 host 209.165.201.1 time-range New_York_Minute
 

アクセス リスト アクティビティのロギング

ここでは、拡張アクセス リストと Webtype アクセス リストにアクセス リスト ロギングを設定する方法について説明します。

ここでは、次の内容について説明します。

「アクセス リスト ロギングの概要」

「ACE ロギングの設定」

「拒否フローの管理」

アクセス リスト ロギングの概要

デフォルトでは、拡張 ACE によってトラフィックが拒否された場合、FWSM は拒否されたパケットごとにシステム ログ メッセージ 106023 を生成します。このメッセージの形式は次のとおりです。

%XXX-106023: Deny protocol src [interface_name:source_address/source_port] dst interface_name:dest_address/dest_port [type {string}, code {code}] by access_group acl_id
 

FWSM が攻撃を受けると、拒否されたパケットに関して膨大な数のシステム ログ メッセージが生成されることがあります。代わりに、システム ログ メッセージ 106100 を使用したロギングをイネーブルにすることを推奨します。これにより、各 ACE の統計情報を入手し、生成されるシステム ログ メッセージの数を制限できます。または、すべてのロギングをディセーブルにすることもできます。


) ロギング メッセージを生成するのは、アクセス リストで指定された ACE だけです。アクセス リストの末尾の暗黙拒否はメッセージを生成しません。拒否されたすべてのトラフィックでメッセージが生成されるようにする場合は、次のように、アクセス リストの末尾に暗黙的な ACE を手動で追加します。

hostname(config)# access-list TEST deny ip any any log


 

拡張 access-list コマンドの末尾に log オプションを指定すると、次の動作を設定できます。

メッセージ 106023 の代わりにメッセージ 106100 をイネーブルにする

すべてのロギングをディセーブルにする

メッセージ 106023 を使用するデフォルトのロギングに戻す

システム ログ メッセージ 106100 の形式は、次のとおりです。

%XXX-n-106100: access-list acl_id {permitted | denied} protocol interface_name/source_address(source_port) -> interface_name/dest_address(dest_port) hit-cnt number ({first hit | number-second interval})
 

メッセージ 106100 のロギングをイネーブルにした場合に、パケットが ACE と一致すると、FWSM は一定の間隔で受信したパケット数を追跡するフロー エントリを作成します。FWSM は、最初のヒット時と各間隔の終了時に、その間隔での合計ヒット数を示すシステム ログ メッセージを生成します。各間隔の終了時に、FWSM はヒット カウントを 0 にリセットします。間隔内で ACE と一致したパケットが存在しない場合、FWSM はフロー エントリを削除します。


) ACL では SYN パケットだけが拒否されるため、別のタイプのパケットが入ってきた場合、そのパケットはアクセス リストのヒット カウンタに示されません。SYN パケット以外のタイプの TCP パケット(RST、SYN-ACK、ACK、PSH、および FIN)は、アクセス リストで廃棄される前に FWSM で廃棄されます。SYN パケットの場合にかぎり、Adaptive Security Algorithm(ASA; アダプティブ セキュリティ アルゴリズム)でセッションを作成できるため、SYN パケットだけがアクセス リストで評価されます。


フローは送信元 IP アドレス、宛先 IP アドレス、プロトコル、およびポートによって定義されます。同じ 2 つのホスト間でも、新しい接続では送信元ポートが異なる可能性があり、接続用に新しいフローが作成されるので、フローの増加分が同じではないことがあります。

確立済みの接続に属する許可パケットは、改めてアクセス リストと照合する必要はありません。最初のパケットだけを記録し、ヒット カウントに含めます。ICMP などのコネクションレス型プロトコルの場合は、許可された場合でも、すべてのパケットが記録されます。拒否されたパケットはすべて記録されます。

システム ログ メッセージの詳細については、『 Catalyst 6500 Series Switch and Cisco 7600 Series Router Firewall Services Module System Log Messages 』を参照してください。

ACE ロギングの設定

ACE ロギングを設定する場合は、次の log オプションの説明を参照してください。

hostname(config)# access-list access_list_name [extended] {deny | permit}...[log [[level] [interval secs] | disable | default]]
 

access-list コマンド構文の詳細については、「拡張アクセス リストの追加」を参照してください。


) ACE の時間範囲もイネーブルにする場合、time-range キーワードの前に log キーワードを使用します。inactive キーワードを使用して ACE をディセーブルにする場合、最後のキーワードとして inactive キーワードを使用します。


引数を指定せずに log オプションを入力する場合は、システム ログ メッセージ 106100 をデフォルト レベル(6)とデフォルト間隔(300 秒)でイネーブルにします。次のオプションを指定できます。

level :重大度レベルを 0 ~ 7 の範囲内で指定します。デフォルト値は 6 です。

interval secs :システム ログ メッセージの時間間隔(秒単位)を 1 ~ 600 の範囲内で指定します。デフォルト値は 300 です。この値は、非アクティブなフローを削除するタイムアウト値としても使用されます。

disable :すべてのアクセス リスト ロギングがディセーブルになります。

default :メッセージ 106023 のロギングがイネーブルになります。この設定は、 log オプションを指定しない場合と同じ意味になります。

次に、アクセス リストの設定例を示します。

hostname(config)# access-list outside-acl permit ip host 1.1.1.1 any log 7 interval 600
hostname(config)# access-list outside-acl permit ip host 2.2.2.2 any
hostname(config)# access-list outside-acl deny ip any any log 2
hostname(config)# access-group outside-acl in interface outside
 

outside-acl の最初の ACE でパケットが許可された場合、FWSM は次のようなシステム ログ メッセージを生成します。

%PIX-7-106100: access-list outside-acl permitted tcp outside/1.1.1.1(12345) -> inside/192.168.1.1(1357) hit-cnt 1 (first hit)
 

この接続ではさらに 20 のパケットが外部インターフェイスに届きますが、トラフィックをアクセス リストと照合する必要はなく、ヒット カウントも増えません。

10 分と指定したインターバルの間に、同じホストでさらにもう 1 つ接続が開始された場合(送信元ポートと宛先ポートは同じまま)、ヒット カウントは 1 だけ増え、10 分のインターバルの最後に次のようなメッセージが表示されます。

%PIX-7-106100: access-list outside-acl permitted tcp outside/1.1.1.1(12345)-> inside/192.168.1.1(1357) hit-cnt 2 (600-second interval)
 

3 番めの ACE でパケットが拒否された場合、FWSM は次のようなシステム ログ メッセージを生成します。

%PIX-2-106100: access-list outside-acl denied ip outside/3.3.3.3(12345) -> inside/192.168.1.1(1357) hit-cnt 1 (first hit)
 

5 分のインターバル(デフォルト)の試行回数が 20 回だった場合、5 分経過後に次のようなメッセージが表示されます。

%PIX-2-106100: access-list outside-acl denied ip outside/3.3.3.3(12345) -> inside/192.168.1.1(1357) hit-cnt 21 (300-second interval)
 

拒否フローの管理

メッセージ 106100 のロギングをイネーブルにした場合に、パケットが ACE と一致すると、FWSM は一定の間隔で受信したパケット数を追跡するフロー エントリを作成します。FWSM が ACE に使用するロギング フローは、最大で 64 K です。多数のフローが同時に存在可能です。メモリと CPU のリソースが無限に消費されないように、FWSM は同時に存在する 拒否 フロー数を制限します。この限度が設定されるのは、(許可フローではなく)拒否フローだけです。これは、拒否フローが攻撃を示す可能性があるためです。この限度に達した場合、FWSM は既存のフローがタイムアウトになるまで、ロギング用の新しい拒否フローを作成しません。

たとえば、誰かが DoS 攻撃を開始した場合、FWSM は短時間のうちに膨大な数の拒否フローを作成する可能性があります。拒否フロー数を制限することによって、メモリおよび CPU リソースが無限に消費されることがなくなります。

拒否フローの最大数に達すると、FWSM はシステム ログ メッセージ 106100 を発行します。

%XXX-1-106101: The number of ACL log deny-flows has reached limit (number).
 

拒否フローの最大数を設定し、拒否フロー アラート メッセージ(106101)のインターバルを設定する場合は、次のコマンドを入力します。

FWSM がロギングを停止するまで 1 つのコンテキストで許可される拒否フローの最大数を設定するには、次のコマンドを入力します。

hostname(config)# access-list deny-flow-max number
 

number には、1 ~ 4096 の範囲内の値を入力します。デフォルト値は 4096 です。

拒否フローの最大数に達したことを示すシステム ログ メッセージ(106101)の発行間隔を設定するには、次のコマンドを入力します。

hostname(config)# access-list alert-interval secs
 

seconds には、1 ~ 3600 の範囲内の値を入力します。デフォルト値は 300 です。