ACL によるネットワーク セキュリティに関する情報
この章では、アクセス コントロール リスト(ACL)を使用して、スイッチのネットワーク セキュリティを設定する方法について説明します。コマンドや表では、ACL をアクセス リストと呼ぶこともあります。
ACL の概要
パケット フィルタリングは、ネットワーク トラフィックを限定し、特定のユーザまたはデバイスによるネットワークの使用を制限するうえで役立ちます。ACL はコントローラを通過するトラフィックをフィルタリングし、特定のインターフェイスを通過するパケットを許可または拒否します。ACL は、パケットに適用される許可条件および拒否条件の順序付けられた集まりです。パケットがインターフェイスに着信すると、スイッチはパケット内のフィールドを適用される ACL と比較し、アクセス リストに指定された基準に基づいて、パケットが転送に必要な権限を持っているかどうかを確認します。アクセス リスト内の条件を 1 つずつ調べ、パケットをテストします。最初に一致した条件によって、スイッチがパケットを受け入れるか拒否するかが決定されます。スイッチは最初に一致した時点でテストを中止するので、リストに条件を指定する順序が重要です。一致する条件がない場合、スイッチはパケットを拒否します。スイッチは、制限条件がない場合はパケットを転送し、制限条件がある場合はパケットをドロップします。スイッチは、転送されるすべてのパケットに ACL を使用します。暗黙のホスト拒否拒否ルールがあります。
ネットワークに基本的なセキュリティを導入する場合は、ルータまたはレイヤ 3 スイッチにアクセス リストを設定します。ACL を設定しなければ、スイッチを通過するすべてのパケットがネットワークのあらゆる部分で許可される可能性があります。ACL を使用すると、ネットワークの場所ごとにアクセス可能なホストを制御したり、ルータ インターフェイスで転送またはブロックされるトラフィックの種類を決定したりできます。たとえば、電子メール トラフィックの転送を許可し、Telnet トラフィックの転送を拒否することもできます。
アクセス コントロール エントリ
ACL には、アクセス コントロール エントリ(ACE)の順序付けられたリストが含まれています。各 ACE には、permit または deny と、パケットが ACE と一致するために満たす必要のある一連の条件を指定します。permit または deny の意味は、ACL が使用されるコンテキストによって変わります。
![]() (注) |
中央スイッチングのアクセスポリシー(ACL)の下で適用できる ACE の最大数は 256 ACE です。Flex モードまたはローカルスイッチングに適用できる ACE の最大数は 64 ACE です。 |
ACL でサポートされるタイプ
スイッチは、IP ACL とイーサネット(MAC)ACL をサポートします。
-
IP ACL は、TCP、ユーザ データグラム プロトコル(UDP)、インターネット グループ管理プロトコル(IGMP)、およびインターネット制御メッセージ プロトコル(ICMP)などの IPv4 トラフィックをフィルタリングします。
-
イーサネット ACL は非 IP トラフィックをフィルタリングします。
このスイッチは、Quality of Service(QoS)分類 ACL もサポートしています。
サポートされる ACL
スイッチでは、トラフィックをフィルタリングするために、次に示す 3 種類の ACL がサポートされています。
-
ポート ACL は、レイヤ 2 インターフェイスに入るトラフィックをアクセス コントロールします。IPv4 と MAC どちらのアクセス リスト タイプのどの方向に対してでも、レイヤ 2 インターフェイスにポート ACL を適応できます。
-
ルータ ACL は、VLAN 間でルーティングされたトラフィックのアクセスを制御し、レイヤ 3 インターフェイスで特定の方向(着信または発信)に適用されます。
-
Punt/Redirect/Downloadable Access Control List(dACL):downloadable ACL(dACL)の場合、完全な ACE および dacl 名はすべて Cisco ISE でのみ設定されます。Cisco ISE はその ACCESS-Accept 属性で dACL 名をデバイスに送信します。デバイスは取得した dACL 名を、ACCESS-request 属性を使用して ACE のために Cisco ISE に送り返します。
-
FQDN ACL:FQDN ACL は、IPv6 ACL とともにエンコードされ、AP に送信されます。FQDN ACL は常にカスタム ACL です。AP は、DNS スヌーピングを行い、IPv4 および IPv6 アドレスをコントローラに送信します。
ACL 優先順位
、ポート ACL、およびルータ ACL が同じスイッチに設定されている場合、入力トラフィックの場合のフィルタの優先順位は上からポート ACL、、およびルータ ACL です。出力トラフィックの場合、フィルタの優先順位は、ルータ ACL、ポート ACL です。
次の例で、簡単な使用例を説明します。
-
スイッチ仮想インターフェイス(SVI)に入力ルータ ACL および入力ポート ACL が設定されている場合に、ポート ACL が適用されているポートにパケットが着信すると、このパケットはポート ACL によってフィルタリングされます。ポートで受信した着信のルーティング IP パケットには、ルータ ACL のフィルタが適用されます。他のパケットはフィルタリングされません。
-
SVI に出力ルータ ACL および入力ポート ACL が設定されている場合に、ポート ACL が適用されているポートにパケットが着信すると、このパケットはポート ACL によってフィルタリングされます。発信するルーティング IP パケットには、ルータ ACL のフィルタが適用されます。他のパケットはフィルタリングされません。
ポート ACL
-
送信元アドレスを使用する IP アクセス リスト
-
送信元および宛先のアドレスと任意でプロトコル タイプ情報を使用できる拡張 IP アクセス リスト
-
送信元および宛先の MAC アドレスと任意でプロトコル タイプ情報を使用できる MAC 拡張アクセス リスト
スイッチは、インターフェイス上の ACL を調べ、パケットが ACL 内のエントリとどのように一致するかに基づいてパケットの転送を許可または拒否します。このように、ACL がネットワークまたはネットワークの部分へのアクセスを制御します。
![ACL によるネットワークへのトラフィックの制御](/c/dam/en/us/td/i/100001-200000/100001-110000/101001-102000/101365.ps/_jcr_content/renditions/101365.jpg)
次に、すべてのワークステーションが同じ VLAN にある場合にポート ACL を使用してネットワークへのアクセスを制御する例を示します。レイヤ 2 の着信方向に適用された ACL は、ホスト A がヒューマン リソース ネットワークにアクセスすることを許可しますが、ホスト B が同一のネットワークにアクセスすることは拒否します。ポート ACL は、着信方向のレイヤ 2 インターフェイスだけに適用できます。
ポート ACL をトランク ポートに適用すると、ACL はそのトランク ポート上のすべての VLAN でトラフィックをフィルタリングします。ポート ACL を音声 VLAN ポートに適用すると、ACL はデータ VLAN と音声 VLAN の両方でトラフィックをフィルタリングします。
ポート ACL では、IP アクセス リストを使用して IP トラフィックをフィルタリングでき、MAC アドレスを使用して非 IP トラフィックをフィルタリングできます。同じレイヤ 2 インターフェイス上で IP トラフィックと非 IP トラフィックの両方をフィルタリングするには、そのインターフェイスに IP アクセス リストと MAC アクセス リストの両方を適用します。
![]() (注) |
レイヤ 2 インターフェイスに適用できるのは、IP アクセスリスト 1 つと MAC アクセスリスト 1 つだけです。すでに IP アクセス リストまたは MAC アクセス リストが設定されているレイヤ 2 インターフェイスに、新しい IP アクセス リストまたは MAC アクセス リストを適用すると、前に設定した ACL が新しい ACL に置き換わります。 |
ルータ ACL
VLAN へのレイヤ 3 インターフェイスであるスイッチ仮想インターフェイス(SVI)、物理層 3 インターフェイス、およびレイヤ 3 EtherChannel インターフェイスに、ルータ ACL を適用できます。ルータ ACL はインターフェイスの特定の方向(着信または発信)に対して適用されます。1 つのインターフェイスの方向ごとに、ルータ ACL を 1 つ適用できます。
スイッチは、IPv4 トラフィックの次のアクセス リストをサポートしています。
-
標準 IP アクセス リストでは、照合操作に送信元アドレスを使用します。
-
拡張 IP アクセス リストは、送信元アドレス、宛先アドレス、およびオプションのプロトコル タイプ情報を使用して一致処理を行います。
ポート ACL の場合と同様、スイッチはインターフェイスに設定されている機能に関連付けられている ACL が照合されます。パケットがスイッチのインターフェイスに着信すると、そのインターフェイスに設定されているすべての着信機能に対応する ACL が照合されます。パケットがルーティングされてからネクスト ホップに転送されるまでの間に、出力インターフェイスに設定された発信機能に対応するすべての ACL が照合されます。
ACL は ACL 内のエントリとパケットの一致結果に応じて、パケット転送を許可するか、拒否するかを決めます。ACL を使用すると、ネットワーク全体またはネットワークの一部に対するアクセス コントロールが行えます。
ACE およびフラグメント化されたトラフィックとフラグメント化されていないトラフィック
IP パケットは、ネットワークを通過するときにフラグメント化されることがあります。その場合、TCP または UDP ポート番号や ICMP タイプおよびコードなどのレイヤ 4 情報は、パケットの最初の部分があるフラグメントだけに含まれます。他のフラグメントには、この情報はありません。
アクセス コントロール エントリ(ACE)には、レイヤ 4 情報をチェックしないため、すべてのパケット フラグメントに適用されるものがあります。レイヤ 4 情報を調べる ACE は、フラグメント化された IP パケットのほとんどのフラグメントに標準的な方法では適用できません。フラグメントにレイヤ 4 情報が含まれておらず、ACE が一部のレイヤ 4 情報をチェックする場合、一致ルールは次のように変更されます。
-
フラグメント内のレイヤ 3 情報(TCP や UDP などのプロトコル タイプを含む)をチェックする許可 ACE は、含まれていないレイヤ 4 情報の種類にかかわらず、フラグメントと一致すると見なされます。
(注)
L4 Ops をともなう ACE の TCP では、フラグメント化パケットは RFC 1858 ごとにドロップします。
-
レイヤ 4 情報をチェックする拒否 ACE は、フラグメントにレイヤ 4 情報が含まれていない限り、フラグメントと一致しません。
ACE およびフラグメント化されたトラフィックとフラグメント化されていないトラフィックの例
次のコマンドで構成され、フラグメント化された 3 つのパケットに適用されるアクセス リスト 102 を例に取って説明します。
デバイス(config)# access-list 102 permit tcp any host 10.1.1.1 eq smtp
デバイス(config)# access-list 102 deny tcp any host 10.1.1.2 eq telnet
デバイス(config)# access-list 102 permit tcp any host 10.1.1.2
デバイス(config)# access-list 102 deny tcp any any
![]() (注) |
最初の 2 つの ACE には宛先アドレスの後に eq キーワードがありますが、これは既知の TCP 宛先ポート番号がそれぞれシンプル メール転送プロトコル(SMTP)および Telnet と一致するかどうかをチェックすることを意味します。 |
-
パケット A は、ホスト 10.2.2.2 のポート 65000 からホスト 10.1.1.1 の SMTP ポートに送信される TCP パケットです。このパケットがフラグメント化された場合、レイヤ 4 情報がすべて揃っているため、完全なパケットである場合と同じように最初のフラグメントが最初の ACE(permit)と一致します。残りのフラグメントも最初の ACE と一致します。これは、それらのフラグメントに SMTP ポート情報が含まれていなくても、最初の ACE が適用されたときにレイヤ 3 情報だけをチェックするからです。この例の情報は、パケットが TCP であることと、宛先が 10.1.1.1 であることです。
-
パケット B は、ホスト 10.2.2.2 のポート 65001 からホスト 10.1.1.2 の Telnet ポートに送信されます。このパケットがフラグメント化された場合、レイヤ 3 情報とレイヤ 4 情報がすべて揃っているため、最初のフラグメントが 2 つめの ACE(deny)と一致します。残りのフラグメントは、レイヤ 4 情報が含まれていないため、2 つめの ACE と一致しません。残りのフラグメントは 3 つめの ACE(permit)と一致します。
最初のフラグメントが拒否されたため、ホスト 10.1.1.2 は完全なパケットを再構成できず、その結果、パケット B は拒否されます。ただし、以降の許可されたフラグメントがネットワークの帯域幅を使用し、ホスト 10.1.1.2 がパケットを再構成しようとするときにホストのリソースが消費されます。
-
フラグメント化されたパケット C は、ホスト 10.2.2.2 のポート 65001 からホスト 10.1.1.3 のポート ftp に送信されます。このパケットがフラグメント化された場合、最初のフラグメントが 4 つめの ACE(deny)と一致します。ACE はレイヤ 4 情報をチェックせず、すべてのフラグメントのレイヤ 3 情報に宛先がホスト 10.1.1.3 であることが示され、前の permit ACE は異なるホストをチェックしていたため、他のフラグメントもすべて 4 つめの ACE と一致します。
標準 IPv4 ACL および拡張 IPv4 ACL
ここでは、IP ACL について説明します。
ACL は、許可条件と拒否条件の順序付けられた集まりです。スイッチは、アクセス リスト内の条件を 1 つずつ調べ、パケットをテストします。最初に一致した条件によって、スイッチがパケットを受け入れるか拒否するかが決定されます。スイッチは一致する最初の条件が見つかった時点でパケットのテストを停止するため、条件の順序が重要な意味を持ちます。一致する条件がない場合、スイッチはパケットを拒否します。
このソフトウェアは、IPv4 について次の ACL(アクセス リスト)をサポートします。
-
標準 IP アクセス リストでは、照合操作に送信元アドレスを使用します。
-
拡張 IP アクセス リストでは、照合操作に送信元アドレスと宛先アドレスを使用し、任意でプロトコル タイプ情報を使用して制御のきめ細かさを高めることもできます。
![]() (注) |
拡張 ACL のみがサポートされており、標準 ACL はサポートされていません。 |
IPv4 ACL スイッチでサポートされていない機能
このスイッチで IPv4 ACL を設定する手順は、他の Cisco スイッチやルータで IPv4 ACL を設定する手順と同じです。
以下の ACL 関連の機能はサポートされていません。
-
非 IP プロトコル ACL または
-
IP アカウンティング
-
再帰 ACL およびダイナミック ACL はサポートされていません。
アクセス リスト番号
ACL を識別するために使用する番号は、作成するアクセス リストのタイプを表します。
次の一覧に、アクセス リスト番号と対応するアクセス リスト タイプを挙げ、このスイッチでサポートされているかどうかを示します。このスイッチは、IPv4 標準アクセス リストおよび拡張アクセス リスト(1 ~ 199 および 1300 ~ 2699)をサポートします。
アクセス リスト番号 |
タイプ |
サポートあり |
---|---|---|
1 ~ 99 |
IP 標準アクセス リスト |
あり |
100 ~ 199 |
IP 拡張アクセス リスト |
あり |
200 ~ 299 |
プロトコル タイプコード アクセス リスト |
なし |
300 ~ 399 |
DECnet アクセス リスト |
なし |
400 ~ 499 |
XNS 標準アクセス リスト |
なし |
500 ~ 599 |
XNS 拡張アクセス リスト |
なし |
600 ~ 699 |
AppleTalk アクセス リスト |
なし |
700 ~ 799 |
48 ビット MAC アドレス アクセス リスト |
なし |
800 ~ 899 |
IPX 標準アクセス リスト |
なし |
900 ~ 999 |
IPX 拡張アクセス リスト |
なし |
1000 ~ 1099 |
IPX SAP アクセス リスト |
なし |
1100 ~ 1199 |
拡張 48 ビット MAC サマリー アドレス アクセス リスト |
なし |
1200 ~ 1299 |
IPX サマリー アドレス アクセス リスト |
なし |
1300 ~ 1999 |
IP 標準アクセス リスト(拡張範囲) |
あり |
2000 ~ 2699 |
IP 拡張アクセス リスト(拡張範囲) |
あり |
番号付き標準 ACL および番号付き拡張 ACL に加え、サポートされる番号を使用して名前付き標準 ACL および名前付き拡張 ACL も作成できます。標準 IP ACL の名前は 1 ~ 99 で、拡張 IP ACL の名前は 100 ~ 199 です。番号付きリストの代わりに名前付き ACL を使用することには、エントリを個別に削除できるという利点があります。
番号付き標準 IPv4 ACL
ACL を作成するときには、ACL の末尾にデフォルトで暗黙的な deny ステートメントが追加され、ACL の終わりに到達するまで一致する条件が見つからなかったすべてのパケットに適用されることに注意してください。標準アクセス リストでは、関連付けられた IP ホスト アドレス ACL の指定からマスクを省略すると、0.0.0.0 がマスクと見なされます。
スイッチは、host 一致条件があるエントリと don’t care マスク 0.0.0.0 を含む一致条件があるエントリがリストの先頭に移動し、0 以外の don’t care マスクを含むエントリよりも前に位置するように、標準アクセス リストの順序を書き換えます。そのため、show コマンドの出力やコンフィギュレーション ファイルでは、ACE が必ずしも入力されたとおりの順序で配置されません。
作成した番号付き標準 IPv4 ACL を 、端末回線、またはインターフェイスに適用できます。
番号付き拡張 IPv4 ACL
標準 ACL では照合に送信元アドレスだけを使用しますが、拡張 ACL では、照合操作に送信元アドレスと宛先アドレスを使用でき、任意でプロトコル タイプ情報を使用して制御のきめ細かさを高めることができます。番号付き拡張アクセス リストの ACE を作成するときには、作成した ACE がリストの末尾に追加されることに注意してください。番号付きリストでは、ACE の順序を変更したり、リスト内の特定の場所に対して ACE を追加または削除したりできません。
このスイッチは、ダイナミックまたは再帰アクセスリストをサポートしていません。また、タイプ オブ サービス(ToS)の minimize-monetary-cost ビットに基づくフィルタリングもサポートしていません。
一部のプロトコルには、特定のパラメータやキーワードも適用されます。
拡張 TCP、UDP、ICMP、IGMP、またはその他の IP ACL を定義できます。また、このスイッチはこれらの IP プロトコルをサポートします。
これらの IP プロトコルがサポートされます。
-
認証ヘッダー プロトコル(ahp )
-
カプセル化セキュリティペイロード(esp )
-
Enhanced Interior Gateway Routing Protocol(eigrp )
-
総称ルーティング カプセル化(gre )
-
インターネット制御メッセージ プロトコル(icmp )
-
インターネット グループ管理プロトコル(igmp )
-
すべての内部プロトコル(ip )
-
IP-in-IP トンネリング(ipinip )
-
KA9Q NOS 互換 IP over IP トンネリング(nos )
-
Open Shortest Path First ルーティング(ospf )
-
ペイロード圧縮プロトコル(pcp )
-
プロトコル独立マルチキャスト(pim )
-
伝送制御プロトコル(tcp )
-
ユーザ データグラム プロトコル(udp )
名前付き IPv4 ACL
IPv4 ACL を識別する手段として、番号ではなく英数字のストリング(名前)を使用できます。名前付き ACL を使用すると、ルータ上で番号付きアクセス リストの場合より多くの IPv4 アクセス リストを設定できます。アクセス リストの識別手段として名前を使用する場合のモードとコマンド構文は、番号を使用する場合とは多少異なります。ただし、IP アクセス リストを使用するすべてのコマンドを名前付きアクセス リストで使用できるわけではありません。
![]() (注) |
標準 ACL または拡張 ACL に指定する名前は、アクセス リスト番号のサポートされる範囲内の番号にすることもできます。標準 IP ACL の名前は 1 ~ 99 です。番号付きリストの代わりに名前付き ACL を使用することには、エントリを個別に削除できるという利点があります。 |
名前付き ACL を設定するときには、次の注意事項に留意してください。
-
また、番号付き ACL も使用できます。
-
標準 ACL と拡張 ACL に同じ名前は使用できません。
ACL ロギング
標準 IP アクセス リストによって許可または拒否されたパケットに関するログ メッセージが、スイッチのソフトウェアによって表示されます。つまり、ACL と一致するパケットがあった場合は、そのパケットに関するログ通知メッセージがコンソールに送信されます。コンソールに表示されるメッセージのレベルは、syslog メッセージを管理する logging console コマンドで管理されます。
![]() (注) |
ルーティングはハードウェアで、ロギングはソフトウェアで実行されます。したがって、log キーワードを含む許可(permit)または拒否(deny)ACE と一致するパケットが多数存在する場合、ソフトウェアはハードウェアの処理速度に追いつくことができないため、一部のパケットはロギングされない場合があります。 |
ACL を起動した最初のパケットについては、ログ メッセージがすぐに表示されますが、それ以降のパケットについては、5 分間の収集時間が経過してから表示またはロギングされます。ログ メッセージにはアクセス リスト番号、パケットの許可または拒否に関する状況、パケットの送信元 IP アドレス、および直前の 5 分間に許可または拒否された送信元からのパケット数が示されます。
![]() (注) |
ロギング メッセージが多すぎて処理できない場合、または 1 秒以内に処理する必要があるロギング メッセージが複数ある場合、ロギング設備ではロギング メッセージ パケットの一部をドロップすることがあります。この動作によって、ロギング パケットが多すぎてルータがクラッシュすることを回避します。そのため、課金ツールや、アクセス リストと一致する数の正確な情報源としてロギング設備をを使用しないでください。 |
ハードウェアおよびソフトウェアによる IP ACL の処理
ACL 処理はハードウェアで実行されます。ハードウェアで ACL の設定を保存する領域が不足すると、そのインターフェイス上のすべてのパケットがドロップします。
![]() (注) |
スイッチまたはスタック メンバーのリソース不足が原因でハードウェアに ACL を設定できない場合、影響を受けるのは、スイッチに着信した該当 VLAN 内のトラフィックだけです。 |
show ip access-lists 特権 EXEC コマンドを入力した場合、表示される一致カウントには、ハードウェアでアクセスが制御されるパケットは含まれません。スイッチド パケットおよびルーテッド パケットに関するハードウェアの ACL の基本的な統計情報を取得する場合は、 特権 EXEC コマンドを使用します。
IPv4 ACL のインターフェイスに関する注意事項
インバウンド ACL の場合、パケットの受信後スイッチはパケットを ACL と照合します。ACL がパケットを許可する場合、スイッチはパケットの処理を継続します。ACL がパケットを拒否する場合、スイッチはパケットを廃棄します。
アウトバウンド ACL の場合、パケットを受信し制御対象インターフェイスにルーティングしたあと、スイッチはパケットを ACL と照合します。ACL がパケットを許可する場合、スイッチはパケットを送信します。ACL がパケットを拒否する場合、スイッチはパケットを廃棄します。
未定義の ACL をインターフェイスに適用すると、スイッチは ACL がインターフェイスに適用されていないと判断し、すべてのパケットを許可します。ネットワーク セキュリティのために未定義の ACL を使用する場合は、このような結果が生じることに注意してください。