ACLの概要
パケット フィルタリングを使用すると、ネットワーク トラフィックを制限したり、特定のユーザやデバイスによるネットワークの使用を制限することができます。ACLはルータまたはスイッチを通過するトラフィックをフィルタリングし、特定のインターフェイスまたはVLANでパケットを許可、または拒否します。ACLは、パケットに適用される許可および拒否条件を順番に並べたものです。インターフェイスにパケットが着信すると、スイッチはパケットのフィールドを該当するACLと比較し、ACLで指定されている条件に基づいて、パケットに対して転送が許可されているかどうかを検証します。パケットは、アクセス リスト内の条件に対して1つずつテストされます。最初に見つかった一致条件によって、パケットが許可されるか、または拒否されるかが決まります。スイッチは、最初の一致が見つかるとテストを終了するので、アクセス リスト内の条件の順序が重要となります。一致する条件がない場合、パケットは拒否されます。制約がない場合、スイッチはパケットを転送し、制約がある場合はパケットを廃棄します。スイッチは、VLAN内でブリッジングされるパケットを含めて、スイッチングされるすべてのパケットのアクセスを制御できます。
ネットワークに基本的なセキュリティを導入する場合は、ルータまたはレイヤ3スイッチにアクセス リストを設定します。ACLを設定しないと、スイッチを通過するすべてのパケットが、ネットワーク内のすべての場所に転送されることがあります。ACLを使用すると、ネットワークの場所ごとにアクセス可能なホストを制御したり、ルータ インターフェイスで転送またはブロックされるトラフィックの種類を決定することができます。たとえば、電子メール トラフィックの転送を許可して、Telnetトラフィックの転送を禁止することが可能です。ACLを着信トラフィック、発信トラフィック、またはその両方をブロックするように設定することもできます。
ACLにはAccess Control Entry(ACE;アクセス制御エントリ)が順番に記述されています。各ACEは、許可( permit )または拒否( deny )、およびACEと一致するためにパケットが満たす必要がある条件を指定します。 許可 または 拒否 の意味は、ACLの使用状況に応じて変わります。
スイッチはIP ACLおよびイーサネット(MAC[メディア アクセス制御])ACLをサポートします。
• IP ACLは、TCP、UDP、Internet Group Management Protocol(IGMP)、Internet Control Message Protocol(ICMP)などのIPトラフィックをフィルタリングします。
• イーサネットACLは、非IPトラフィックをフィルタリングします。
このスイッチは、Quality of Service(QoS;サービス品質)分類ACLもサポートしています。詳細については、「QoS ACLに基づく分類」を参照してください。
ここでは、次の内容について説明します。
• 「サポートされるACL」
• 「分割されたトラフィックおよび分割されていないトラフィックの処理」
• 「ACLおよびスイッチ スタック」
サポートされるACL
トラフィックをフィルタリングするため、次に示す3種類のACLがサポートされています。
• ポートACLは、レイヤ2インターフェイスに入るトラフィックをアクセス制御します。発信方向のポートACLはサポートされません。1つのレイヤ2インターフェイスに適用できるのは、IPアクセス リスト1つとMACアクセス リスト1つだけです。
• ルータACLは、VLAN間でルーティングされたトラフィックをアクセス制御し、特定の方向(着信または発信)のレイヤ3インターフェイスに適用されます。
• VLAN ACLまたはVLANマップは、すべてのパケット(ブリッジド パケットおよびルーテッド パケット)をアクセス制御します。VLANマップを使用すると、同じVLAN内のデバイス間で転送されるトラフィックをフィルタリングすることができます。VLANマップは、IPのレイヤ3アドレスに基づいてアクセス制御するように設定されています。サポートされていないプロトコルはイーサネットACEを使用し、MACアドレスを通じてアクセス制御されます。VLANマップをVLANに適用すると、VLANに入るすべてのパケット(ルーテッド パケットまたはブリッジド パケット)がVLANマップと照合されます。パケットはスイッチ ポートを経由して、ルーティングされたパケットの場合はルーテッド ポートを経由して、VLANに入ります。
同じスイッチ上で入力ポートACL、ルータACL、VLANマップを併用できます。ただし、ポートACLはルータACLまたはVLANマップよりも優先されます。
• 入力ポートACLとVLANマップが両方とも適用されている場合に、ポートACLが適用されたポートにパケットが着信すると、このパケットはポートACLによってフィルタリングされます。その他のパケットは、VLANマップによってフィルタリングされます。
• Switch Virtual Interface(SVI)に入力ルータACLおよび入力ポートACLが設定されている場合に、ポートACLが適用されているポートにパケットが着信すると、このパケットはポートACLによってフィルタリングされます。その他のポートに着信したルーテッドIPパケットは、ルータACLによってフィルタリングされます。その他のパケットはフィルタリングされません。
• SVIに出力ルータACLおよび入力ポートACLが設定されている場合に、ポートACLが適用されているポートにパケットが着信すると、このパケットはポートACLによってフィルタリングされます。発信されるルーテッドIPパケットは、ルータACLによってフィルタリングされます。その他のパケットはフィルタリングされません。
• SVIにVLANマップ、入力ルータACL、および入力ポートACLが設定されている場合に、ポートACLが適用されているポートにパケットが着信すると、このパケットはポートACLによってのみフィルタリングされます。その他のポートに着信したルーテッドIPパケットは、VLANマップおよびルータACLの両方によってフィルタリングされます。その他のパケットは、VLANマップによってのみフィルタリングされます。
• SVIにVLANマップ、出力ルータACL、および入力ポートACLが設定されている場合に、ポートACLが適用されているポートにパケットが着信すると、このパケットはポートACLによってのみフィルタリングされます。発信されるルーテッドIPパケットは、VLANマップおよびルータACLの両方によってフィルタリングされます。その他のパケットは、VLANマップによってのみフィルタリングされます。
ポートACL
ポートACLは、スイッチのレイヤ2インターフェイスに適用されるACLです。ポートACLは物理インターフェイスでのみサポートされ、EtherChannelインターフェイスではサポートされません。また、着信方向のインターフェイスにのみ、適用されます。レイヤ2インターフェイスでは、次のアクセス リストがサポートされています。
• 送信元アドレスを使用する標準IPアクセス リスト
• 送信元アドレス、宛先アドレス、およびオプションのプロトコル タイプ情報を使用する拡張IPアクセス リスト
• 送信元MACアドレス、宛先MACアドレス、およびオプションのプロトコル タイプ情報を使用するMAC拡張アクセス リスト
スイッチはインターフェイスに設定されている着信機能に関連付けられているACLすべてをテストし、パケットがACL内のエントリと一致するかどうかによって、パケットの転送を許可または拒否します。このようにして、ACLはネットワーク全体、またはネットワークの一部へのアクセスを制御するために使用されます。図 28-1に、すべてのワークステーションが同じVLAN内にいる場合に、ポートACLを使用してネットワークへのアクセスを制御する例を示します。レイヤ2への入力に適用されているACLにより、ホストAは人事部ネットワークへのアクセスが許可されますが、ホストBは拒否されます。レイヤ2インターフェイスで、ポートACLを適用できるのは、着信方向に対してのみです。
図 28-1 ACLによるネットワーク トラフィックの制御
ポートACLをトランク ポートに適用すると、そのトランク ポートにあるすべてのVLANでACLによるトラフィックのフィルタリングが実行されます。音声VLANがあるポートにポートACLを適用すると、データVLANと音声VLANの両方でそのACLによるトラフィックのフィルタリングが実行されます。
ポートACLを使用すると、IPアクセス リストを使用してIPトラフィックをフィルタリングし、MACアドレスを使用して非IPトラフィックをフィルタリングできます。同じレイヤ2インターフェイスにIPアクセス リストとMACアクセス リストを両方適用すると、そのレイヤ2インターフェイスでIPトラフィックと非IPトラフィックをフィルタリングできます。
(注) 1つのレイヤ2インターフェイスに適用できるのは、IPアクセス リスト1つとMACアクセス リスト1つだけです。すでにIPアクセス リストまたはMACアクセス リストが1つ設定されているレイヤ2インターフェイスに、新しいIPアクセス リストまたはMACアクセス リストを適用すると、前に設定したACLが新しいACLに置き換わります。
ルータACL
VLANへのレイヤ3インターフェイスであるSVI、物理レイヤ3インターフェイス、およびレイヤ3 EtherChannelインターフェイスに、ルータACLを適用できます。ルータACLはインターフェイスの特定の方向(着信または発信)に対して適用します。1つのインターフェイスの方向ごとに、ルータACLを1つ適用することができます。
1つのACLをある特定インターフェイスの複数の機能に使用することができます。また、1つの機能に複数のACLを使用することもできます。1つのルータACLを複数の機能で使用する場合、そのルータACLは複数回、照合されます。
• 標準IPアクセス リストは、送信元アドレスを使用して一致処理を行います。
• 拡張IPアクセス リストは、送信元アドレス、宛先アドレス、およびオプションのプロトコル タイプ情報を使用して一致処理を行います。
ポートACLの場合と同様、スイッチはインターフェイスに設定されている機能に関連付けられているACLをテストします。しかし、ルータACLは双方向でサポートされています。パケットがスイッチのインターフェイスに着信すると、そのインターフェイスに設定されているすべての着信機能に対応するACLが照合されます。パケットがルーティングされてからネクストホップに転送されるまでの間に、出力インターフェイスに設定された発信機能に対応するすべてのACLが照合されます。
ACLはACL内のエントリとパケットの一致結果に応じて、パケット転送を許可するか、拒否するかを決めます。ACLを使用すると、ネットワーク全体またはネットワークの一部に対するアクセス制御が行えます。図 28-1では、ルータへの入力に適用されているACLにより、ホストAは人事部ネットワークへのアクセスが許可されますが、ホストBは拒否されます。
VLANマップ
VLAN ACLまたはVLANマップは、 すべての トラフィックをアクセス制御することができます。VLANとの間でルーティングされる、またはスタックのVLAN内でブリッジングされる すべてのパケット に、VLANマップを適用することができます。VLANマップは、セキュリティ パケット フィルタリングに使用されます。VLANマップは方向(着信または発信)ごとに定義されません。
VLANマップを設定すると、IPトラフィックのレイヤ3アドレスと照合することができます。すべての非IPプロトコルは、MAC VLANマップを使用してMACアドレスおよびEtherTypeによってアクセス制御されます(IPトラフィックには、MAC VLANマップによるアクセス制御が 行われません )。VLANマップはスイッチを通過するパケットにのみ適用できます。ハブのホスト間、またはこのスイッチに接続された別のスイッチのホスト間を通過するトラフィックには、VLANマップを適用できません。
VLANマップを使用すると、マップに指定されたアクションに基づいてパケットの転送が許可または拒否されます。図 28-2に、VLANマップを適用して、特定のトラフィック タイプをVLAN 10のホストAから転送できないように設定する例を示します。1つのVLANに適用できるVLANマップは、1つだけです。
図 28-2 VLANマップによるトラフィックの制御
分割されたトラフィックおよび分割されていないトラフィックの処理
ネットワークを通過するIPパケットは分割できます。IPパケットを分割すると、パケットの先頭を含むフラグメントにのみ、TCP、UDPポート番号、ICMPタイプおよびコードなどのレイヤ4情報が格納されます。その他のすべてのフラグメントには、この情報が格納されません。
一部のACEではレイヤ4情報が確認されないため、このようなACEはすべてのパケット フラグメントに適用されます。通常の方法では、レイヤ4情報をテストするACEを、分割されたIPパケットのほとんどのフラグメントに適用できません。レイヤ4情報が格納されていないフラグメントに対してレイヤ4情報がテストされる場合、一致規則は次のように変更されます。
• フラグメントのレイヤ3情報(TCPやUDPのようなプロトコル タイプなど)を確認する許可ACEの場合は、格納されていないレイヤ4情報に関係なく、フラグメントが一致するとみなされます。
• レイヤ4情報を確認する拒否ACEの場合は、フラグメントが一致しないとみなされます。ただし、フラグメントにレイヤ4情報が格納されている場合は、一致するとみなされます。
次のコマンドで設定し、3つの分割パケットに適用されるaccess-list 102の例を以下に示します。
Switch(config)# access-list 102 permit tcp any host 10.1.1.1 eq smtp
Switch(config)# access-list 102 deny tcp any host 10.1.1.2 eq telnet
Switch(config)# access-list 102 permit tcp any host 10.1.1.2
Switch(config)# access-list 102 deny tcp any any
(注) この例の最初および2番めのACEでは、宛先アドレスのあとにeqキーワードが指定されています。これは、TCP宛先ポートのうち、Simple Mail Transfer Protocol(SMTP)およびTelnetそれぞれに対応する一般的な番号についてテストすることを示します。
• パケットAは、ホスト10.2.2.2のポート65000からホスト10.1.1.1のSMTPポートに送信されるTCPパケットです。このパケットが分割パケットの場合、最初のフラグメントにはすべてのレイヤ4情報が格納されているため、完全なパケットと同様にみなされ、最初のACE(許可)に一致します。SMTPポート情報が入っていなくても、残りのフラグメントも最初のACEに一致します。最初のACEはフラグメントに適用されたとき、レイヤ3情報のみを確認するためです。この例での情報は、パケットがTCPで、宛先が10.1.1.1です。
• パケットBは、ホスト10.2.2.2のポート65001からホスト10.1.1.2のTelnetポートに送信されます。このパケットが分割パケットの場合、最初のフラグメントにはレイヤ3情報およびレイヤ4情報がすべて格納されているため、2番めのACE(拒否)に一致します。このパケットの残りのフラグメントにはレイヤ4情報が格納されていないため、2番めのACEには一致しません。残りのフラグメントは3番めのACE(許可)に一致します。
最初のフラグメントが拒否されているため、ホスト10.1.1.2は完全なパケットを再構築できません。したがって、実際にはパケットBは拒否されます。ただし、ホスト10.1.1.2がパケットを再構築しようとするとき、許可されたフラグメントによってネットワーク帯域幅とこのホストのリソースが消費されます。
• 分割パケットCはホスト10.2.2.2のポート65001からホスト10.1.1.3のポートftpに送信されます。このパケットが分割バケットの場合、最初のフラグメントは4番めのACE(拒否)に一致します。その他のすべてのフラグメントも4番めのACEに一致します。これは、すべてのフラグメントについてレイヤ4情報が確認されず、レイヤ3情報によってすべてのフラグメントがホスト10.1.1.3に送信中であることが認識されたため、およびこの宛先ホストがこれ以前の許可ACEの確認対象から外れていたためです。
ACLおよびスイッチ スタック
スイッチ スタックのACLサポート機能は、スタンドアロン スイッチの場合と同じです。ACLの設定情報は、スタック内のすべてのスイッチに伝播されます。スタック マスターを含むスタック内のすべてのスイッチは、情報を処理し、ハードウェアをプログラミングします(スイッチ スタックの詳細については、 第5章「スイッチ スタックの管理」 を参照)。
スタック マスターは、次に示すACL機能を実行します。
• ACL設定を処理し、情報をすべてのスタック メンバーに伝播します。
• ACL情報を、スタックに加入しているすべてのスイッチに配信します。
• 何らかの理由でパケットをソフトウェアで転送する必要がある場合(ハードウェア リソースが不足している場合など)、マスター スイッチはパケットにACLを適用したあとにのみ、パケットを転送します。
• 処理するACL情報を使用して、ハードウェアをプログラミングします。
スタック メンバーは、次に示すACL機能を実行します。
• マスター スイッチからACL情報を受け取り、ハードウェアをプログラミングします。
• スタンバイ スイッチとして機能します。既存のマスター スイッチに障害が発生した場合、新規スタック マスターに選択されたスタック メンバーは、スタック マスターの役割を引き継ぐことができます。
スタック マスターに障害が発生し、新規スタック マスターが選択された場合、新規に選択されたマスターはバックアップされた実行コンフィギュレーションを解析し直します( 第5章「スイッチ スタックの管理」 を参照)。実行コンフィギュレーションの一部であるACL設定も、この時に解析し直されます。新規スタック マスターは、ACL情報をスタック内のすべてのスイッチに配信します。
IP ACLの設定
スイッチにIP ACLを設定する手順は、シスコ製スイッチおよびルータにIP ACLを設定する場合と同じです。その手順を簡単に説明します。ACLの設定の詳細については、『 Cisco IP and IP Routing Configuration Guide for IOS 』Release 12.1の「Configuring IP Services」の章を参照してください。コマンドの詳細については、『 Cisco IOS IP and IP Routing Command Reference for IOS 』Release 12.1を参照してください。
スイッチは、次のCisco IOSルータACL関連機能をサポートしません。
• 非IPプロトコルのACL(アクセス リスト番号を参照)またはブリッジグループACL
• IPアカウンティング
• 着信速度および発信速度の制限(QoS ACLによる制限を除く)
• 再帰ACLまたはダイナミックACL(スイッチ クラスタリング機能で使用される一部の特殊なダイナミックACLは除く)
• ポートACLおよびVLANマップに関するACLロギング
スイッチ上でIP ACLを使用する手順は、次のとおりです。
ステップ 1 アクセス リスト番号または名前、およびアクセス条件を指定してACLを作成します。
ステップ 2 ACLをインターフェイスまたは端末回線に適用します。標準および拡張IP ACLをVLANマップに適用することもできます。
ここでは次の内容について説明します。
• 「標準および拡張IP ACLの作成」
• 「端末回線へのIP ACLの適用」
• 「インターフェイスへのIP ACLの適用」
• 「IP ACLのハードウェアおよびソフトウェア処理」
• 「IP ACLの設定例」
標準および拡張IP ACLの作成
ここでは、IP ACLについて説明します。ACLは許可および拒否条件を順に並べたものです。パケットは、ACL内の条件に対して1つずつ照合されます。最初に見つかった一致条件によって、パケットが許可されるか、または拒否されるかが決まります。最初の一致が見つかると条件のテストを終了するので、条件の順序が重要となります。一致する条件がない場合、パケットは拒否されます。
ソフトウェアは次に示すACLタイプ、またはIPのアクセス リストをサポートします。
• 標準IPアクセス リストは、送信元アドレスを使用して一致処理を行います。
• 拡張IPアクセス リストは、送信元アドレスおよび宛先アドレスを使用して一致処理を行います。より細部にわたる制御を行う場合は、オプションのプロトコルタイプを使用します。
ここでは、アクセス リストの概要および作成方法について説明します。
• 「アクセス リスト番号」
• 「番号指定標準ACLの作成」
• 「番号指定拡張ACLの作成」
• 「名前指定の標準および拡張ACLの作成」
• 「ACLでの時間範囲の使用法」
• 「ACLへのコメントの挿入」
アクセス リスト番号
ACLを表す番号は、作成しているアクセス リストのタイプを示します。 表 28-1 に、アクセス リスト番号および対応するアクセスリスト タイプ、スイッチでのアクセス リストに対するサポートの有無を示します。スイッチでは、IP標準およびIP拡張アクセス リストがサポートされています(番号は1~199、1300~2699)。
表 28-1 アクセス リスト番号
|
|
|
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以外に、サポートされている番号を使用して名前指定の標準IP ACLおよび拡張IP ACLを作成することもできます。つまり、標準IP ACLの名前には1~99を、拡張IP ACLの名前には100~199を使用できます。番号指定のACLではなく名前指定のACLを使用することで、名前指定リストから個別にエントリを削除することが可能となります。
番号指定標準ACLの作成
番号指定の標準ACLを作成するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
access-list access-list-number { deny | permit } source [ source-wildcard ] [ log ] |
送信元アドレスおよびワイルドカードを使用し、標準IPアクセス リストを定義します。 access-list-number は1~99または1300~1999の10進数です。 条件が一致する場合にアクセスを拒否するか、許可するかを指定するため、 deny または permit を入力します。 source はパケットの送信元であるネットワークまたはホストのアドレスです。次のいずれかで指定します。 • ドット付き10進表記による32ビットの数値 • source と source-wildcard の値0.0.0.0 255.255.255.255の短縮形であるキーワード any 。source-wildcardを入力する必要はありません。 • sourceとsource-wildcardの値 source 0.0.0.0の短縮形である host (任意) source-wildcard を指定すると、送信元にワイルドカード ビットが適用されます。 (任意) log を指定すると、エントリと一致するパケットに関するログ通知メッセージがコンソールに送信されます。 |
ステップ 3 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 4 |
show access-lists [number | name] |
アクセス リストの設定を表示します。 |
ステップ 5 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
ACL全体を削除するには、 no access-list access-list-number グローバル コンフィギュレーション コマンドを使用します。番号指定のアクセス リストからは、ACEを個別に削除できません。
(注) ACLを作成するときは、ACLの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。標準ACLでは、対応するIPホスト アドレスのACLを指定するときにマスクを省略すると、0.0.0.0がマスクとして使用されます。
次に、IPホスト171.69.198.102へのアクセスを拒否してそれ以外のアドレスへのアクセスを許可し、その結果を表示する標準ACLの作成例を示します。
Switch (config)# access-list 2 deny host 171.69.198.102
Switch (config)# access-list 2 permit any
Switch(config)# end
Switch# show access-lists
Standard IP access list 2
host 一致条件が指定されたエントリ、および0.0.0.0の無視( don't care )マスクが指定されたエントリが、リストの先頭(ゼロ以外の 無視 マスクが指定された、すべてのエントリの上)に来るように、標準アクセス リストの順序が書き換えられます。したがって、 show コマンドの出力およびコンフィギュレーション ファイルで、ACEは必ずしも入力した順番に表示されません。
標準IPアクセス リストによって許可または拒否されたパケットに関するログ メッセージが、スイッチのソフトウェアによって表示されます。つまり、ACLと一致するパケットがあった場合は、そのパケットに関するログ通知メッセージがコンソールに送信されます。コンソールに表示されるメッセージのレベルは、Syslogメッセージを制御するロギング コンソール コマンドで制御されます。
(注) ルーティングはハードウェアで、ロギングはソフトウェアで実行されます。したがって、logキーワードを含む許可(permit)または拒否(deny)ACEと一致するパケットが多数存在する場合、ソフトウェアはハードウェアの処理速度に追いつくことができないため、一部のパケットはロギングされない場合があります。
ACLを起動した最初のパケットについては、ログ メッセージがすぐに表示されますが、それ以降のパケットについては、5分間の収集時間が経過してから表示またはロギングされます。ログ メッセージにはアクセス リスト番号、パケットの許可または拒否に関する状況、パケットの送信元IPアドレス、および直前の5分間に許可または拒否された送信元からのパケット数が示されます。
作成した番号指定の標準IP ACLは、端末回線(端末回線へのIP ACLの適用を参照)、インターフェイス(インターフェイスへのIP ACLの適用を参照)、またはVLAN(VLANマップの設定を参照)に適用できます。
番号指定拡張ACLの作成
標準ACLの場合、一致基準には送信元アドレスのみが使用されますが、拡張ACLの場合は、一致処理に送信元アドレスおよび宛先アドレスを使用したり、オプションのプロトコル タイプ情報を使用してより細部にわたる制御を行うことができます。番号指定の拡張ACLを作成したあとにACEを新たに作成するときは、リストの末尾に新しいACEが配置されることに注意してください。リストを再び並べ替えたり、番号が指定されたACLの特定の位置でACEを追加または削除することはできません。
一部のプロトコルには、専用のパラメータおよびキーワードも使用できます。
次のIPプロトコルがサポートされます(プロトコル キーワードはカッコ内の太字)。
Authentication Header Protocol( ahp )、Enhanced Interior Gateway Routing Protocol( eigrp) 、Encapsulation Security Payload( esp )、generic routing encapsulation( gre )、Internet Control Message Protocol( icmp )、Internet Group Management Protocol( igmp )、Interior Gateway Routing Protocol( igrp )、任意のInterior Protocol( ip )、IP in IPトンネリング( ipinip )、KA9Q NOS互換IP over IPトンネリング( nos )、Open Shortest Path Firstルーティング( ospf )、Payload Compression Protocol( pcp )、Protocol Independent Multicast( pim )、TCP( tcp )、またはUDP( udp )
(注) ICMPエコー応答はフィルタリングできません。他のすべてのICMPコードまたはタイプはフィルタリング可能です。
各プロトコルに関連するキーワードの詳細については、『 Cisco IP and IP Routing Command Reference IOS 』Release 12.1を参照してください。
(注) ダイナミック アクセス リストや再帰アクセス リストはサポートされません。また、最小コストのType of Service(ToS;サービス タイプ)ビットに基づくフィルタリングもサポートされません。
サポートされているパラメータは、TCP、UDP、ICMP、IGMP、または他のIPの、いずれかのカテゴリにグループ分けできます。
拡張ACLを作成するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2a |
access-list access-list-number { deny | permit } protocol source source-wildcard destination destination-wildcard [ precedence precedence ] [ tos tos ] [ fragments ] [ log ] [ log-input ] [ time-range time-range-name ] [ dscp dscp ]
(注) dscp値を入力した場合、tosまたはprecedenceを入力することはできません。dscpを入力しない場合は、tosとprecedenceを両方とも入力することができます。
|
拡張IPアクセス リストおよびアクセス条件を定義します。 access-list-number は100~199または2000~2699の10進数です。 条件が一致する場合にパケットを拒否するか許可するかを指定するため、 deny または permit を入力します。 protocol には、IPプロトコルの名前または番号( ahp 、 eigrp 、 esp 、 gre 、 icmp 、 igmp 、 igrp 、 ip 、 ipinip 、 nos 、 ospf 、 pcp 、 pim 、 tcp 、 udp )、またはIPプロトコル番号を表す0~255の整数を使用できます。すべてのインターネット プロトコル(ICMP、TCP、UDPを含む)と一致させる場合は、キーワード ip を使用します。
(注) このステップには、ほとんどのIPプロトコルに使用可能なオプションが含まれます。TCP、UDP、ICMP、IGMPの具体的なパラメータについては、ステップ2b~2eを参照してください。
source はパケットの送信元であるネットワークまたはホストの番号です。 source-wildcard を指定すると、送信元にワイルドカード ビットが適用されます。 destination はパケットの宛先となるネットワークまたはホストの番号です。 destination-wildcard を指定すると、宛先にワイルドカード ビットが適用されます。 source、source-wildcard、destination、destination-wildcardは、次の3つの方法で指定することができます。 • ドット付き10進表記による32ビットの数値 • 0.0.0.0 255.255.255.255を表すキーワード any (任意のホスト) • 単一のホスト0.0.0.0を表すキーワード host |
|
|
その他のキーワードは任意で、意味は次のとおりです。 • precedence ― 0~7の番号または名前で指定された優先順位を使用し、パケットを比較します。使用できる名前および番号は、 routine ( 0 )、 priority ( 1 )、 immediate ( 2 )、 flash ( 3 )、 flash-override ( 4 )、 critical ( 5 )、 internet(6) 、 network ( 7 )です。 • fragments ― 先頭以外のフラグメントを確認します。 • tos ― 0~15の番号または名前で指定されたToSレベルを使用して比較します。使用できる名前および番号は、 normal ( 0 )、 max-reliability ( 2 )、 max-throughput ( 4 )、 min-delay ( 8 )です。 • log ― エントリと一致するパケットに関するログ通知メッセージを作成し、コンソールに送信します。 log-input を指定すると、ログ エントリに入力インターフェイスが追加されます。 • time-range ― このキーワードの説明については、「ACLでの時間範囲の使用法」を参照してください。 • dscp ― 0~63の番号で指定されたDSCP値を使用してパケットを比較します。疑問符(?)を使用すると、使用可能な値のリストが表示されます。 |
または |
access-list access-list-number { deny | permit } protocol any any [ precedence precedence ] [ tos tos ] [ fragments ] [ log ] [log-input] [ time-range time-range-name ] [ dscp dscp ] |
アクセス リスト コンフィギュレーション モードで、送信元と送信元ワイルドカードの値0.0.0.0 255.255.255.255の短縮形を使用するか、または宛先と宛先ワイルドカードの値0.0.0.0 255.255.255.255の短縮形を使用し、拡張IPアクセス リストを定義します。 送信元/宛先アドレスとワイルドカードの代わりに、 any キーワードを使用できます。 |
または |
access-list access-list-number { deny | permit } protocol host source host destination [ precedence precedence ] [ tos tos ] [ fragments ] [ log ] [ log-input ] [ time-range time-range-name ] [ dscp dscp ] |
送信元と送信元ワイルドカードの値 source 0.0.0.0の短縮形を使用するか、または宛先と宛先ワイルドカードの値 destination 0.0.0.0の短縮形を使用し、拡張IPアクセス リストを定義します。 送信元と宛先のワイルドカードまたはマスクの代わりに、 host キーワードを使用できます。 |
ステップ 2b |
access-list access-list-number { deny | permit } tcp source source-wildcard [ operator port ] destination destination-wildcard [ operator port ] [ established ] [ precedence precedence ] [ tos tos ] [ fragments ] [ log ] [ log-input ] [ time-range time-range-name ] [ dscp dscp ] [ flag ] |
(任意)拡張TCPアクセス リストおよびアクセス条件を定義します。 TCPの場合は tcp を入力します。 次に示す例外を除き、ステップ2aで説明するパラメータと同じパラメータを使用します。 (任意) operator および port を入力すると、送信元ポート( source source-wildcard のあとに入力した場合)または宛先ポート( destination destination-wildcard のあとに入力した場合)が比較されます。使用可能な演算子は eq (等しい)、 gt (より大きい)、 lt (より小さい)、 neq (等しくない)、 range (包含範囲)などです。演算子にはポート番号を指定する必要があります( range の場合は2つのポート番号をスペースで区切って指定する必要があります)。 port にポート番号を10進数(0~65535)として入力するか、またはTCPポート名を入力します。TCPポート名を表示する場合は、疑問符(?)を使用します。または『 Cisco IOS IP and IP Routing Command Reference for IOS 』Release 12.1の「Configuring IP Services」を参照してください。TCPをフィルタリングするときは、TCPポートの番号または名前のみを使用します。 その他のオプションのキーワードの意味は次のとおりです。 • established ― 確立された接続と比較します。このキーワードは、 ack または rst フラグを指定した場合の一致検索機能と同じです。 • flag ― 指定されたTCPヘッダー ビットを基準にして比較します。入力できるフラグは、 ack (確認応答)、 fin (終了)、 psh (プッシュ)、 rst (リセット)、 syn (同期)、 urg (緊急)です。 |
ステップ 2c |
access-list access-list-number { deny | permit } udp source source-wildcard [ operator port ] destination destination-wildcard [ operator port ] [ precedence precedence ] [ tos tos ] [ fragments ] [ log ] [log-input] [ time-range time-range-name ] [ dscp dscp ] |
(任意)拡張UDPアクセス リストおよびアクセス条件を定義します。 UDPの場合は、 udp を入力します。 UDPパラメータはTCPに関して説明されているパラメータと同じです。ただし、[ operator [ port ]]のポート番号またはポート名は、UDPポートの番号または名前とします。UDPの場合、 flag および established パラメータは無効です。 |
ステップ 2d |
access-list access-list-number { deny | permit } icmp source source-wildcard destination destination-wildcard [ icmp-type | [[ icmp-type icmp-code ] | [ icmp-message ]] [ precedence precedence ] [ tos tos ] [ fragments ] [ log ] [log-input] [ time-range time-range-name ] [ dscp dscp ] |
(任意)拡張ICMPアクセス リストおよびアクセス条件を定義します。 ICMPの場合は、 icmp を入力します。 ICMPパラメータはステップ2aのIPプロトコルで説明されているパラメータと同じですが、ICMPメッセージ タイプとコード パラメータが追加されています。オプションのキーワードの意味は次のとおりです。 • icmp-type ― ICMPメッセージ タイプを使用してフィルタリングします。0~255の値を使用できます。 • icmp-code ― ICMPメッセージ タイプを基準にしてフィルタリングされたICMPパケットを、ICMPメッセージ コードを基準にしてフィルタリングします。0~255の値を使用できます。 • icmp-message ― ICMPメッセージ タイプ名またはICMPメッセージのタイプおよびコード名を基準にして、ICMPパケットをフィルタリングします。ICMPメッセージ タイプ名とICMPメッセージのタイプおよびコード名を表示する場合は、疑問符(?)を入力します。または『 Cisco IOS IP and IP Routing Command Reference for IOS 』Release 12.1の「Configuring IP Services」を参照してください。 |
ステップ 2e |
access-list access-list-number { deny | permit } igmp source source-wildcard destination destination-wildcard [ igmp-type ] [ precedence precedence ] [ tos tos ] [ fragments ] [ log ] [log-input] [ time-range time-range-name ] [ dscp dscp ] |
(任意)拡張IGMPアクセス リストおよびアクセス条件を定義します。 IGMPの場合は、 igmp を入力します。 IGMPパラメータはステップ2aのIPプロトコルで説明されているパラメータと同じですが、次に示すパラメータが追加されています。 igmp-type ― IGMPメッセージ タイプと比較するには、0~15の番号またはメッセージ名( dvmrp 、 host-query 、 host-report 、 pim 、または trace )を入力します。 |
ステップ 3 |
show access-lists [ number | name ] |
アクセス リストの設定を確認します。 |
ステップ 4 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
アクセス リスト全体を削除するには、 no access-list access-list-number グローバル コンフィギュレーション コマンドを使用します。番号指定のアクセス リストからは、ACEを個別に削除できません。
次に、ネットワーク171.69.198.0内の任意のホストからネットワーク172.20.52.0内の任意のホストへのTelnetアクセスを拒否し、それ以外のアクセスを許可する拡張アクセス リストを作成、表示する例を示します( eq キーワードを宛先アドレスのあとに指定すると、Telnetに対応するTCP宛先ポート番号がテストされます)。
Switch(config)# access-list 102 deny tcp 171.69.198.0 0.0.0.255 172.20.52.0 0.0.0.255 eq telnet
Switch(config)# access-list 102 permit tcp any any
Switch# show access-lists
Extended IP access list 102
deny tcp 171.69.198.0 0.0.0.255 172.20.52.0 0.0.0.255 eq telnet
ACLが作成されたあとに追加されたACE(端末から入力されたACEなど)は、リストの末尾に配置されます。番号が指定されたアクセス リストの特定の位置でACEを追加または削除することはできません。
(注) ACLを作成するときは、アクセス リストの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。
作成した番号指定の拡張ACLは、端末回線(端末回線へのIP ACLの適用を参照)、インターフェイス(インターフェイスへのIP ACLの適用を参照)、またはVLAN(VLANマップの設定を参照)に適用できます。
名前指定の標準および拡張ACLの作成
IP ACLは、番号でなく英数字(名前)で指定することもできます。名前指定のACLを使用すると、番号指定のアクセス リストの場合より多くのIPアクセス リストをルータに設定できます。アクセス リストを番号でなく名前で指定する場合は、モードおよびコマンド構文が若干異なります。ただし、IPアクセス リストを使用するすべてのコマンドで、名前指定のアクセス リストを使用できるとは限りません。
(注) 標準または拡張ACLに指定する名前には、サポートされているアクセス リスト番号範囲内の番号を指定することもできます。つまり、標準IP ACLの名前には1~99を、拡張IP ACLの名前には100~199を使用できます。番号指定ACLではなく名前指定ACLを使用することで、名前指定リストから個別にエントリを削除することが可能となります。
名前指定のACLを設定する前に、次に示す注意事項および制限事項を考慮してください。
• 番号指定のACLを指定できるすべてのコマンドで、名前指定のACLを指定できるとは限りません。インターフェイスのパケット フィルタおよびルート フィルタ用のACL、VLANマップには名前を使用できます。
• 標準ACLと拡張ACLに、同じ名前は設定できません。
• 番号指定のACLも使用できます(標準および拡張IP ACLの作成を参照)。
• VLANマップには、標準ACLおよび拡張ACL(名前指定または番号指定)を使用できます。
名前指定の標準ACLを作成するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
ip access-list standard name |
名前を使用して標準IPアクセス リストを定義し、アクセス リスト コンフィギュレーション モードを開始します。
(注) 名前は1~99の番号にすることができます。
|
ステップ 3 |
deny { source [ source-wildcard ] | host source | any } [ log ] または permit { source [ source-wildcard ] | host source | any } [ log ] |
アクセス リスト コンフィギュレーション モードで、1つまたは複数の条件を拒否または許可に指定し、パケットの転送または廃棄を決定します。 • host source ― 送信元と送信元ワイルドカードの値 source 0.0.0.0 • any ― 送信元と送信元ワイルドカードの値0.0.0.0 255.255.255.255 |
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
show access-lists [number | name] |
アクセス リストの設定を表示します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
名前指定の標準ACLを削除するには、 no ip access-list standard name グローバル コンフィギュレーション コマンドを使用します。
名前を使用して拡張ACLを作成するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
ip access-list extended name |
名前を使用して拡張IPアクセス リストを定義し、アクセス リスト コンフィギュレーション モードを開始します。
(注) 名前は100~199の番号にすることができます。
|
ステップ 3 |
{ deny | permit } protocol { source [ source-wildcard ] | host source | any } { destination [ destination-wildcard ] | host destination | any } [ precedence precedence ] [ tos tos ] [ established ] [ log ] [ time-range time-range-name ] |
アクセスリスト コンフィギュレーション モードで、許可または拒否の条件を指定します。 log キーワードを使用すると、違反を含むアクセス リストのログ メッセージを取得できます。 プロトコルおよびその他キーワードの定義については、「番号指定拡張ACLの作成」を参照してください。 • host source ― 送信元と送信元ワイルドカードの値 source 0.0.0.0 • host destination ― 宛先と宛先ワイルドカードの値 destination 0.0.0.0 • any ― 送信元と送信元ワイルドカードの値、または宛先と宛先ワイルドカードの値である0.0.0.0 255.255.255.255 |
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
show access-lists [number | name] |
アクセス リストの設定を表示します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
名前指定の拡張ACLを削除するには、 no ip access-list extended name グローバル コンフィギュレーション コマンドを使用します。
標準または拡張ACLを作成するときは、ACLの末尾に暗黙的な拒否ステートメントがデフォルトで存在し、それ以前のステートメントで一致が見つからなかったすべてのパケットに適用されることに注意してください。標準ACLでは、対応するIPホスト アドレスのアクセス リストを指定するときにマスクを省略すると、0.0.0.0がマスクとして使用されます。
ACLを作成したあとに追加されたACEは、リストの末尾に配置されます。特定のACLでは個別にACEエントリを追加することはできません。ただし、 no permit および no deny アクセスリスト コンフィギュレーション モード コマンドを使用すると、名前指定のACLからエントリを削除できます。次に、名前指定のアクセス リスト border-list からACEを個別に削除する例を示します。
Switch(config)# ip access-list extended border-list
Switch(config-ext-nacl)# no permit ip host 10.1.1.3 any
番号指定のACLではなく、名前指定のACLを使用することで、名前指定のACLから行を個別に削除することが可能となります。
作成した名前指定のACLはインターフェイス(インターフェイスへのIP ACLの適用を参照)またはVLAN(VLANマップの設定を参照)に適用できます。
ACLでの時間範囲の使用法
曜日および時刻に基づいて拡張ACLを選択的に適用するには、 time-range グローバル コンフィギュレーション コマンドを使用します。最初に時間範囲の名前を定義し、時間範囲の時刻、日付、または曜日を設定します。次に、ACLを適用するときに時間範囲名を入力し、アクセス リストに制限を適用します。時間範囲を使用することで、ACLの許可ステートメントまたは拒否ステートメントが有効な時間(指定期間内、指定曜日など)を定義できます。 time-range キーワードおよび引数については、前述の「標準および拡張IP ACLの作成」および「名前指定の標準および拡張ACLの作成」に記載されている、名前指定および番号指定の拡張ACLのタスク表を参照してください。
時間範囲を使用する利点の一部を次に示します。
• アプリケーションなどのリソース(IPアドレスとマスクのペア、およびポート番号で識別)へのユーザ アクセスをより厳密に許可または拒否できます。
• ログ メッセージを制御できます。ACLエントリを使用して特定の時刻に関してのみトラフィックをロギングできるため、ピーク時間に生成される多数のログを分析しなくても、簡単にアクセスを拒否できます。
時間ベースのアクセス リストを使用すると、CPUに負荷が生じます。これは、アクセス リストの新規設定を他の機能や、Ternary Content Addressable Memory(TCAM)にロードされた結合済みの設定と統合する必要があるためです。このため、複数のアクセス リストが短期間に連続して(互いに数分以内に)有効となるような設定を行わないように、注意する必要があります。
(注) 時間範囲には、スイッチのシステム クロックが使用されるため、信頼できるクロック ソースが必要です。スイッチ クロックを同期するには、Network Time Protocol(NTP)を使用してください。詳細については、「システム日時の管理」を参照してください。
ACLのtime-rangeパラメータを設定するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
time-range time-range-name |
作成する時間範囲には意味のある名前( workhours など)を割り当て、時間範囲コンフィギュレーション モードを開始します。名前の先頭には文字を指定し、途中にスペースまたは引用符を含めないようにします。 |
ステップ 3 |
absolute [ start time date ] [ end time date ] または periodic day-of-the-week hh:mm to [ day-of-the-week ] hh:mm または periodic { weekdays | weekend | daily } hh:mm to hh:mm |
時間範囲を適用する機能が作動する時間を指定します。 • 時間範囲内では、 absolute ステートメントを1回に限り使用できます。複数のabsoluteステートメントを設定した場合は、最後に設定されたステートメントのみが実行されます。 • 複数の periodic ステートメントを入力できます。たとえば、平日と週末で異なる時間を設定することができます。 設定例を参照してください。 |
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
show time-range |
設定した時間範囲を確認します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
異なる時刻に有効となるように設定する項目が複数ある場合は、このステップを繰り返します。
設定された時間範囲の制限を削除するには、 no time-range time-range-name グローバル コンフィギュレーション コマンドを使用します。
次に、営業時間( workhours )および会社の休業日を表す時間範囲を設定し、その設定を確認する例を示します。
Switch(config)# time-range workhours
Switch(config-time-range)# periodic weekdays 8:00 to 12:00
Switch(config-time-range)# periodic weekdays 13:00 to 17:00
Switch(config-time-range)# exit
Switch(config)# time-range new_year_day_2003
Switch(config-time-range)# absolute start 00:00 1 Jan 2003 end 23:59 1 Jan 2003
Switch(config-time-range)# exit
Switch(config)# time-range thanksgiving_2003
Switch(config-time-range)# absolute start 00:00 27 Nov 2003 end 23:59 28 Nov 2003
Switch(config-time-range)# exit
Switch(config)# time-range christmas_2003
Switch(config-time-range)# absolute start 00:00 24 Dec 2003 end 23:50 25 Dec 2003
Switch(config-time-range)# end
time-range entry: christmas_2003 (inactive)
absolute start 00:00 24 December 2003 end 23:50 25 December 2003
time-range entry: new_year_day_2003 (inactive)
absolute start 00:00 01 January 2003 end 23:59 01 January 2003
time-range entry: thanksgiving_2000 (inactive)
absolute start 00:00 22 November 2003 end 23:59 23 November 2003
time-range entry: workhours (inactive)
periodic weekdays 8:00 to 12:00
periodic weekdays 13:00 to 17:00
時間範囲を適用するには、時間範囲を実行できる拡張ACL内に、時間範囲名を入力します。次に、定義された休日中に任意の送信元から任意の宛先に送信されるTCPトラフィックを拒否し、営業時間中にすべてのTCPトラフィックを許可する拡張アクセス リスト188を作成、確認する例を示します。
Switch(config)# access-list 188 deny tcp any any time-range new_year_day_2003
Switch(config)# access-list 188 deny tcp any any time-range thanskgiving_2003
Switch(config)# access-list 188 deny tcp any any time-range christmas_2003
Switch(config)# access-list 188 permit tcp any any time-range workhours
Switch# show access-lists
Extended IP access list 188
deny tcp any any time-range new_year_day_2003 (inactive)
deny tcp any any time-range thanskgiving_2003 (active)
deny tcp any any time-range christmas_2003 (inactive)
permit tcp any any time-range workhours (inactive)
次に、名前指定のACLを使用して、同じトラフィックを許可および拒否する例を示します。
Switch(config)# ip access-list extended deny_access
Switch(config-ext-nacl)# deny tcp any any time-range new_year_day_2003
Switch(config-ext-nacl)# deny tcp any any time-range thanksgiving_2003
Switch(config-ext-nacl)# deny tcp any any time-range christmas_2003
Switch(config-ext-nacl)# exit
Switch(config)# ip access-list extended may_access
Switch(config-ext-nacl)# permit tcp any any time-range workhours
Switch(config-ext-nacl)# end
Switch# show ip access-lists
Extended IP access list deny_access
deny tcp any any time-range new_year_day_2003 (inactive)
deny tcp any any time-range thanksgiving_2003 (inactive)
deny tcp any any time-range christmas_2003 (inactive)
Extended IP access list may_access
permit tcp any any time-range workhours (inactive)
ACLへのコメントの挿入
remark キーワードを使用すると、エントリに関するコメント(備考)を任意のIP標準および拡張ACLに追加できます。コメントを追加すると、ACLの把握および走査がより簡単になります。各コメント行には、100文字まで入力できます。
コメントは許可ステートメントまたは拒否ステートメントの前後に指定できます。コメントに対応する許可ステートメントまたは拒否ステートメントが明確になるように、コメントの記述位置を統一する必要があります。混乱を避けるため、たとえば、許可ステートメントまたは拒否ステートメントの前に記述されているコメントと、ステートメントのあとに記述されているコメントが混在しないようにします。
番号指定のIP標準または拡張ACLにコメントを挿入するには、 access-list access-list number remark remark グローバル コンフィギュレーション コマンドを使用します。コメントを削除するには、上記のコマンドの no 形式を使用します。
次の例では、Jonesが所有するワークステーションのアクセスは許可されていますが、Smithが所有するワークステーションのアクセスは禁止されています。
Switch(config)# access-list 1 remark Permit only Jones workstation through
Switch(config)# access-list 1 permit 171.69.2.88
Switch(config)# access-list 1 remark Do not allow Smith workstation through
Switch(config)# access-list 1 deny 171.69.3.13
名前指定のIP ACLにエントリする場合は、 remark アクセス リスト コンフィギュレーション コマンドを使用します。コメントを削除するには、上記のコマンドの no 形式を使用します。
次の例では、Jonesのサブネットは発信Telnetの使用が禁止されています。
Switch(config)# ip access-list extended telnetting
Switch(config-ext-nacl)# remark Do not allow Jones subnet to telnet out
Switch(config-ext-nacl)# deny tcp host 171.69.2.88 any eq telnet
端末回線へのIP ACLの適用
番号指定のACLを使用すると、1つまたは複数の端末回線へのアクセスを制御できます。端末回線には名前指定のACLを適用できません。すべての仮想端末回線にユーザが接続する可能性があるため、すべての仮想端末回線に同一の制限を設定する必要があります。
インターフェイスにACLを適用する手順については、「インターフェイスへのIP ACLの適用」を参照してください。VLANにACLを適用する手順については、「VLANマップの設定」を参照してください。
ACL内のアドレスと仮想端末回線との間の着信接続および発信接続を制限するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
line [ console | vty ] line-number |
設定する特定の回線を指定し、インライン コンフィギュレーション モードを開始します。 • console ― コンソール端末回線を指定します。コンソール ポートはDCEです。 • vty ― リモート コンソール アクセス用の仮想端末を指定します。 line-number は、連続した一連の番号の最初の回線番号で、回線タイプを指定するときに設定する必要があります。指定できる範囲は0~16です。 |
ステップ 3 |
access-class access-list-number { in | out } |
特定の仮想端末回線(デバイス側)とアクセス リストに指定されたアドレス間の着信接続および発信接続を制限します。 |
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
show running-config |
アクセス リストの設定を表示します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
端末回線からACLを削除するには、 no access-class access-list-number { in | out }ライン コンフィギュレーション コマンドを使用します。
インターフェイスへのIP ACLの適用
ここでは、ネットワーク インターフェイスにIP ACLを適用する手順について説明します。レイヤ3インターフェイスの場合は、ACLを着信または発信のいずれかの方向に適用できます。レイヤ2インターフェイスの場合は、ACLを着信方向にのみ適用できます。次の注意事項を考慮してください。
• インターフェイスへのアクセスを制御する場合は、名前指定または番号指定のACLを使用することができます。
• VLANに属しているレイヤ2インターフェイスにACLを適用した場合、レイヤ2(ポート)ACLはVLANインターフェイスに適用された入力方向のレイヤ3 ACL、またはVLANに適用されたVLANマップよりも優先します。レイヤ2ポートに着信したパケットは、常にポートACLでフィルタリングされます。
• レイヤ3インターフェイスにACLが適用され、スイッチ上でルーティングがイネーブルになっていない場合は、SNMP、Telnet、Webトラフィックなど、CPUで処理されるパケットのみがフィルタリングされます。レイヤ2インターフェイスにACLを適用する場合、ルーティングをイネーブルにする必要はありません。
(注) パケットがアクセス グループによって拒否された場合、デフォルトでは、ルータはICMP到達不能メッセージを送信します。アクセスグループによって拒否されたこれらのパケットはハードウェアで廃棄されず、スイッチのCPUにブリッジングされて、ICMP到達不能メッセージを生成します。
インターフェイスへのアクセスを制御するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
interface interface-id |
設定する特定のインターフェイスを指定し、インターフェイス コンフィギュレーション モードを開始します。 インターフェイスには、レイヤ2インターフェイス(ポートACL)またはレイヤ3インターフェイス(ルータACL)を指定できます。 |
ステップ 3 |
ip access-group { access-list-number | name } { in | out } |
指定したインターフェイスへのアクセスを制御します。 out キーワードは、レイヤ2インターフェイス(ポートACL)ではサポートされていません。 |
ステップ 4 |
end |
イネーブルEXECモードに戻ります。 |
ステップ 5 |
show running-config |
アクセス リストの設定を表示します。 |
ステップ 6 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
指定されたアクセス グループを削除するには、 no ip access-group { access-list-number | name } { in | out }インターフェイス コンフィギュレーション コマンドを使用します。
次に、アクセス リスト2をポートに適用して、ポートに入るパケットをフィルタリングする例を示します。
Switch(config)# interface gigabitethernet1/0/1
Router(config-if)# ip access-group 2 in
(注) ip access-groupインターフェイス コンフィギュレーション コマンドをレイヤ3インターフェイス(SVI、レイヤ3 EtherChannel、またはルーテッド ポート)に適用するには、そのインターフェイスにIPアドレスが設定されている必要があります。レイヤ3アクセス グループは、CPUのレイヤ3プロセスによってルーティングまたは受信されるパケットをフィルタリングします。このグループは、VLAN内でブリッジングされるパケットに影響を与えません。
着信ACLの場合、パケットの受信後スイッチはパケットをACLと照合します。ACLによってパケットが許可された場合は、パケットの処理が続行されます。拒否された場合、パケットは廃棄されます。
発信ACLの場合、パケットを受信し制御対象インターフェイスにルーティングしたあと、スイッチはパケットをACLと照合します。ACLによってパケットが許可された場合、パケットは送信されます。拒否された場合、パケットは廃棄されます。
デフォルトでは、パケットが廃棄された場合は、その原因が入力インターフェイスのACLまたは発信インターフェイスのACLのいずれであっても、常に入力インターフェイスからICMP到達不能メッセージが送信されます。ICMP到達不能メッセージは通常、入力インターフェイス1つにつき、0.5秒ごとに1つだけ生成されます。ただし、この設定は ip icmp rate-limit unreachable グローバル コンフィギュレーション コマンドを使用して変更することができます。
未定義のACLをインターフェイスに適用すると、スイッチはACLがインターフェイスに適用されていないと判断して処理を行い、すべてのパケットが許可されます。ネットワーク セキュリティのため、未定義のACLを使用する場合は注意してください。
IP ACLのハードウェアおよびソフトウェア処理
ACLは主にハードウェアで処理されますが、一部のトラフィックはCPUに転送してソフトウェアで処理する必要があります。ハードウェアの容量がいっぱいになり、ACL設定を保管できなくなると、パケットはCPUに送信されて転送されます。ソフトウェアで転送されるトラフィックの転送速度は、ハードウェアで転送されるトラフィックに比べて大幅に低下します。
(注) スタック メンバーのリソース不足が原因でハードウェアにACLを設定できない場合、影響を受ける(ソフトウェアで転送される)のは、スイッチに着信した該当VLAN内のトラフィックのみです。パケットのソフトウェア転送が発生すると、消費されるCPUサイクル数に応じて、スイッチ スタックのパフォーマンスが低下することがあります。
ルータACLの場合は、次の場合にパケットがCPUに送信されることがあります。
• log キーワードを使用する。
• ICMP到達不能メッセージを生成する。
トラフィック フローのロギングと転送の両方を行う場合、転送はハードウェアで処理されますが、ロギングはソフトウェアで処理する必要があります。ハードウェアとソフトウェアではパケット処理能力が異なるため、ロギング中であるすべてのフロー(許可フローと拒否フロー)の合計帯域幅が非常に大きい場合は、転送されたパケットの一部をロギングできません。
ルータACLの設定をハードウェアに適用できない場合、VLANに着信したルーティング対象パケットはソフトウェアでルーティングされますが、ブリッジングはハードウェアで行われます。ACLによって多数のパケットがCPUに転送されると、スイッチのパフォーマンスが低下することがあります。
show ip access-lists イネーブルEXECコマンドを入力したときに表示される一致の個数に、ハードウェアでアクセス制御されるパケットは含まれません。スイッチド パケットおよびルーテッド パケットに関するハードウェアのACLの基本的な統計情報を取得する場合は、show access-lists hardware countersイネーブルEXECコマンドを使用します。
ルータACLの機能は、次のとおりです。
• 標準ACLおよび拡張ACL(入力および出力)の許可アクションや拒否アクションをハードウェアで制御し、アクセス制御のセキュリティを強化します。
• ip unreachables がディセーブルの場合、 log を指定しないと、セキュリティACLの 拒否 ステートメントと一致するフローがハードウェアによって廃棄されます。 許可 ステートメントと一致するフローは、ハードウェアでスイッチングされます。
• ルータACLのACEに log キーワードを追加すると、パケットのコピーがCPUに送信され、ロギングのみが行われます。ACEが 許可 ステートメントの場合も、パケットはハードウェアでスイッチングおよびルーティングされます。
IP ACLの設定例
ここでは、IP ACLの設定例および適用例を示します。ACLの編集方法については、『Security Configuration Guide』、および『 Cisco IOS IP and IP Routing Configuration Guide for IOS 』Release 12.1の「IP Services」の章を参照してください。
図 28-3に、小規模ネットワークが構築されたオフィス環境を示します。ルーテッド ポート2に接続されたサーバAには、すべての従業員がアクセスできる収益などの情報が格納されています。ルーテッド ポート1に接続されたサーバBには、機密扱いの給与支払いデータが格納されています。サーバAにはすべてのユーザがアクセスできますが、サーバBにアクセスできるユーザは制限されています。
ルータACLを使用して上記のように設定するには、次のいずれかの方法を使用します。
• 標準ACLを作成し、ポート1からサーバに着信するトラフィックをフィルタリングします。
• 拡張ACLを作成し、サーバからポート1に着信するトラフィックをフィルタリングします。
図 28-3 ルータACLによるトラフィックの制御
次に、標準ACLを使用してポートからサーバBに着信するトラフィックをフィルタリングし、経理部の送信元アドレス172.20.128.64~172.20.128.95から送信されるトラフィックのみを許可する例を示します。このACLは、指定された送信元アドレスを持ちルーテッド ポート1から送信されるトラフィックに適用されます。
Switch(config)# access-list 6 permit 172.20.128.64 0.0.0.31
Switch# show access-lists
Standard IP access list 6
permit 172.20.128.64, wildcard bits 0.0.0.31
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# ip access-group 6 out
次に、拡張ACLを使用してサーバBからポートに着信するトラフィックをフィルタリングし、任意の送信元アドレス(この場合はサーバB)から経理部の宛先アドレス172.20.128.64~172.20.128.95に送信されるトラフィックのみを許可する例を示します。このACLは、ルーテッド ポート1に着信するトラフィックに適用され、指定の宛先アドレスに送信されるトラフィックのみを許可します。拡張ACLを使用する場合は、送信元および宛先情報の前に、プロトコル(IP)を入力する必要があります。
Switch(config)# access-list 106 permit ip any 172.20.128.64 0.0.0.31
Switch# show access-lists
Extended IP access list 106
permit ip any 172.20.128.64 0.0.0.31
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# ip access-group 106 in
番号指定ACL
次の例のネットワーク36.0.0.0は、2番めのオクテットがサブネットを指定するクラスAネットワークです。つまり、サブネット マスクは255.255.0.0です。ネットワーク アドレス36.0.0.0の3番めおよび4番めのオクテットは、特定のホストを指定します。アクセス リスト2を使用して、サブネット48のアドレスを1つ許可し、同じサブネットの他のアドレスはすべて拒否します。このアクセス リストの最終行は、ネットワーク36.0.0.0の他のすべてのサブネット上のアドレスが許可されることを示します。ACLは、ポートに入るパケットに適用されます。
Switch(config)# access-list 2 permit 36.48.0.3
Switch(config)# access-list 2 deny 36.48.0.0 0.0.255.255
Switch(config)# access-list 2 permit 36.0.0.0 0.255.255.255
Switch(config)# interface gigabitethernet2/0/1
Switch(config-if)# ip access-group 2 in
拡張ACL
次の例の先頭行は、1023よりも大きい宛先ポートへの着信TCP接続を許可します。2番めの行は、ホスト128.88.1.2のSMTPポートへの着信TCP接続を許可します。3番めの行は、エラー フィードバック用の着信ICMPメッセージを許可します。
Switch(config)# access-list 102 permit tcp any 128.88.0.0 0.0.255.255 gt 1023
Switch(config)# access-list 102 permit tcp any host 128.88.1.2 eq 25
Switch(config)# access-list 102 permit icmp any any
Switch(config)# interface gigabitethernet2/0/1
Switch(config-if)# ip access-group 102 in
拡張ACLを使用する別の例として、インターネットに接続されたネットワークがあり、ネットワーク上の任意のホストが、インターネット上の任意のホストとTCP接続を確立できるようにする場合を考えます。ただし、IPホストからは、専用メール ホストのメール(SMTP)ポートを除き、ネットワーク上のホストとTCP接続を確立できないようにするとします。
SMTPは、接続の一端ではTCPポート25、もう一端ではランダムなポート番号を使用します。接続している間は、同じポート番号が使用されます。インターネットから着信するメール パケットの宛先ポートは25です。発信パケットのポート番号は予約されています。安全なネットワーク システムでは常にポート25でのメール接続が使用されているため、着信サービスと発信サービスを個別に制御できます。ACLは発信インターフェイスの入力ACLおよび着信インターフェイスの出力ACLとして設定される必要があります。
次の例では、ネットワークはアドレスが128.88.0.0のクラスBネットワークで、メール ホストのアドレスは128.88.1.2です。 established キーワードは、確立された接続を表示するTCP専用のキーワードです。TCPデータグラムにACKまたはRSTビットが設定され、パケットが既存の接続に属していることが判明すると、一致とみなされます。スタック メンバー1のギガビット イーサネット インターフェイス1は、ルータをインターネットに接続するインターフェイスです。
Switch(config)# access-list 102 permit tcp any 128.88.0.0 0.0.255.255 established
Switch(config)# access-list 102 permit tcp any host 128.88.1.2 eq 25
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# ip access-group 102 in
名前指定ACL
次に、 internet_filter という名前の標準ACLおよび marketing_group という名前の拡張ACLを作成する例を示します。 internet_filter ACLは、送信元アドレス1.2.3.4から送信されるすべてのトラフィックを許可します。
Switch(config)# ip access-list standard Internet_filter
Switch(config-ext-nacl)# permit 1.2.3.4
Switch(config-ext-nacl)# exit
marketing_group ACLは、宛先アドレスと宛先ワイルドカードの値171.69.0.0 0.0.255.255への任意のTCP Telnetトラフィックを許可し、その他のTCPトラフィックを拒否します。また、ICMPトラフィックを許可し、任意の送信元から、宛先ポートが1024より小さい171.69.0.0~179.69.255.255の宛先アドレスへ送信されるUDPトラフィックを拒否します。それ以外のすべてのIPトラフィックを拒否して、結果を示すログが表示されます。
Switch(config)# ip access-list extended marketing_group
Switch(config-ext-nacl)# permit tcp any 171.69.0.0 0.0.255.255 eq telnet
Switch(config-ext-nacl)# deny tcp any any
Switch(config-ext-nacl)# permit icmp any any
Switch(config-ext-nacl)# deny udp any 171.69.0.0 0.0.255.255 lt 1024
Switch(config-ext-nacl)# deny ip any any log
Switch(config-ext-nacl)# exit
Internet_filter ACLは発信トラフィックに適用され、 marketing_group ACLはレイヤ3ポートの着信トラフィックに適用されます。
Switch(config)# interface gigabitethernet3/0/2
Switch(config-if)# no switchport
Switch(config-if)# ip address 2.0.5.1 255.255.255.0
Switch(config-if)# ip access-group Internet_filter out
Switch(config-if)# ip access-group marketing_group in
IP ACLに適用される時間範囲
次に、月曜から金曜の午前8時~午後6時(18:00)の間、IPのHTTPトラフィックを拒否する例を示します。また、土曜および日曜の正午~午後8時(20:00)の間のみ、UDPトラフィックを許可します。
Switch(config)# time-range no-http
Switch(config)# periodic weekdays 8:00 to 18:00
Switch(config)# time-range udp-yes
Switch(config)# periodic weekend 12:00 to 20:00
Switch(config)# ip access-list extended strict
Switch(config-ext-nacl)# deny tcp any any eq www time-range no-http
Switch(config-ext-nacl)# permit udp any any time-range udp-yes
Switch(config-ext-nacl)# exit
Switch(config)# interface gigabitethernet2/0/1
Switch(config-if)# ip access-group strict in
コメント付きのIP ACLエントリ
次に示す番号指定ACLの例では、Jonesが所有するワークステーションのアクセスは許可されますが、Smithが所有するワークステーションのアクセスは禁止されます。
Switch(config)# access-list 1 remark Permit only Jones workstation through
Switch(config)# access-list 1 permit 171.69.2.88
Switch(config)# access-list 1 remark Do not allow Smith workstation through
Switch(config)# access-list 1 deny 171.69.3.13
次に示す番号指定ACLの例では、WinterおよびSmithのワークステーションはWeb閲覧が禁止されます。
Switch(config)# access-list 100 remark Do not allow Winter to browse the web
Switch(config)# access-list 100 deny host 171.69.3.85 any eq www
Switch(config)# access-list 100 remark Do not allow Smith to browse the web
Switch(config)# access-list 100 deny host 171.69.3.13 any eq www
次に示す名前指定ACLの例では、Jonesのサブネットはアクセスが禁止されます。
Switch(config)# ip access-list standard prevention
Switch(config-std-nacl)# remark Do not allow Jones subnet through
Switch(config-std-nacl)# deny 171.69.0.0 0.0.255.255
次に示す名前指定ACLの例では、Jonesのサブネットは発信Telnetの使用が禁止されます。
Switch(config)# ip access-list extended telnetting
Switch(config-ext-nacl)# remark Do not allow Jones subnet to telnet out
Switch(config-ext-nacl)# deny tcp 171.69.0.0 0.0.255.255 any eq telnet
ACLのロギング
ルータACLでは、2種類のロギングがサポートされています。 log キーワードを指定すると、エントリと一致するパケットに関するログ通知メッセージがコンソールに送信されます。 log-input キーワードを指定すると、ログ エントリに入力インターフェイスが追加されます。
次の例では、名前指定の標準アクセス リスト stan1 は10.1.1.0 0.0.0.255からのトラフィックを拒否し、その他のすべての送信元からのトラフィックを許可します。 log キーワードも指定されています。
Switch(config)# ip access-list standard stan1
Switch(config-std-nacl)# deny 10.1.1.0 0.0.0.255 log
Switch(config-std-nacl)# permit any log
Switch(config-std-nacl)# exit
Switch(config)# interface gigabitethernet1/0/1
Switch(config-if)# ip access-group stan1 in
Syslog logging: enabled (0 messages dropped, 0 flushes, 0 overruns)
Console logging: level debugging, 37 messages logged
Monitor logging: level debugging, 0 messages logged
Buffer logging: level debugging, 37 messages logged
Trap logging: level debugging, 39 message lines logged
00:00:48: NTP: authentication delay calculation problems
00:09:34:%SEC-6-IPACCESSLOGS:list stan1 permitted 0.0.0.0 1 packet
00:09:59:%SEC-6-IPACCESSLOGS:list stan1 denied 10.1.1.15 1 packet
00:10:11:%SEC-6-IPACCESSLOGS:list stan1 permitted 0.0.0.0 1 packet
次に、名前指定の拡張アクセス リスト ext1 によって、任意の送信元から10.1.1.0 0.0.0.255へのICMPパケットを許可し、すべてのUDPパケットを拒否する例を示します。
Switch(config)# ip access-list extended ext1
Switch(config-ext-nacl)# permit icmp any 10.1.1.0 0.0.0.255 log
Switch(config-ext-nacl)# deny udp any any log
Switch(config-std-nacl)# exit
Switch(config)# interface gigabitethernet1/0/2
Switch(config-if)# ip access-group ext1 in
次に、拡張ACLのログの例を示します。
01:24:23:%SEC-6-IPACCESSLOGDP:list ext1 permitted icmp 10.1.1.15 -> 10.1.1.61 (0/0), 1 packet
01:25:14:%SEC-6-IPACCESSLOGDP:list ext1 permitted icmp 10.1.1.15 -> 10.1.1.61 (0/0), 7 packets
01:26:12:%SEC-6-IPACCESSLOGP:list ext1 denied udp 0.0.0.0(0) -> 255.255.255.255(0), 1 packet
01:31:33:%SEC-6-IPACCESSLOGP:list ext1 denied udp 0.0.0.0(0) -> 255.255.255.255(0), 8 packets
IP ACLのすべてのロギング エントリは%SEC-6-IPACCESSLOGで開始します。エントリの形式は、一致したACLやアクセス エントリの種類に応じて若干異なります。
次に、 log-input キーワードを指定した場合の出力メッセージの例を示します。
00:04:21:%SEC-6-IPACCESSLOGDP:list inputlog permitted icmp 10.1.1.10 (Vlan1 0001.42ef.a400) -> 10.1.1.61 (0/0), 1 packet
log キーワードを指定した場合、同様のパケットに関するログ メッセージには入力インターフェイス情報が追加されません。
00:05:47:%SEC-6-IPACCESSLOGDP:list inputlog permitted icmp 10.1.1.10 -> 10.1.1.61 (0/0), 1 packet
VLANマップの設定
ここでは、VLANマップを設定する方法について説明します。この方法は、VLAN内でフィルタリングを制御する唯一の方法です。VLANマップには方向がありません。VLANマップを使用して、特定の方向のトラフィックをフィルタリングするには、特定の送信元または宛先アドレスが指定されたACLを追加する必要があります。VLANマップ内に該当タイプのパケット(IPまたはMAC)に対するmatchステートメントが存在する場合、デフォルトではマップ内のどのエントリにも一致しないパケットが廃棄されます。該当タイプのパケットに対するmatchステートメントが存在しない場合、デフォルトではパケットが転送されます。
(注) ここで使用されるコマンドの構文および使用方法の詳細については、このリリースのコマンド リファレンスを参照してください。
VLANマップを作成して1つまたは複数のVLANに適用するには、次の手順を実行します。
ステップ 1 VLANに適用する標準IP ACLまたは拡張IP ACL、または名前指定のMAC拡張ACLを作成します。「標準および拡張IP ACLの作成」および「VLANマップの作成」を参照してください。
ステップ 2 VLAN ACLマップ エントリを作成するには、 vlan access-map グローバル コンフィギュレーション コマンドを入力します。
ステップ 3 アクセスマップ コンフィギュレーション モードでは、 action として forward (デフォルト)または drop を任意で入力できます。また、 match コマンドを入力し、既知のMACアドレスのみが格納されたIPパケットまたは非IPパケットを指定したり、1つまたは複数のACL(標準または拡張)とパケットを照合することもできます。
(注) パケット タイプ(IPまたはMAC)に対するmatchステートメントがVLANマップに存在する場合、パケットがそのタイプに一致しない場合は、デフォルトでパケットが廃棄されます。該当タイプのパケットに対するmatchステートメントがVLANマップ内になく、それに対するアクションが指定されていない場合、パケットは転送されます。
ステップ 4 VLANマップを1つまたは複数のVLANに適用するには、 vlan filter グローバル コンフィギュレーション コマンドを使用します。
ここでは、次の内容について説明します。
• 「VLANマップ設定時の注意事項」
• 「VLANマップの作成」
• 「VLANへのVLANマップの適用」
• 「ネットワークでのVLANマップの使用法」
VLANマップ設定時の注意事項
VLANマップの設定を行うときは、次の注意事項に従ってください。
• トラフィックを拒否するように設定されたACLがインターフェイスに存在せず、VLANマップが設定されて いない 場合は、すべてのトラフィックが許可されます。
• 各VLANマップは一連のエントリで構成されます。VLANマップではエントリの順序が重要です。スイッチに着信したパケットは、VLANマップの最初のエントリに対して比較検査されます。一致した場合は、VLANマップで指定されたアクションが行われます。一致しなかった場合、パケットはマップ内の次のエントリに対して比較検査されます。
• 該当タイプのパケット(IPまたはMAC)に対するmatchステートメントがVLANマップに1つまたは複数存在する場合でも、パケットがそれらのmatchステートメントに一致しない場合は、デフォルトでパケットが廃棄されます。該当タイプのパケットに対するmatchステートメントがVLANマップ内に存在しない場合、デフォルトではパケットが転送されます。
• 多数のACLが設定されている場合は、システムの起動に時間がかかることがあります。
• VLANマップのロギングはサポートされません。
• ハードウェアにVLANマップの設定を適用できない場合は、そのVLAN内のすべてのパケットをソフトウェアでブリッジングおよびルーティングする必要があります。
• スイッチのレイヤ2インターフェイスにIPアクセス リストまたはMACアクセス リストが適用されている場合に、ポートが属するVLANにVLANマップを適用した場合、このポートのACLはVLANマップよりも優先されます。
• 設定例については、「ネットワークでのVLANマップの使用法」を参照してください。
• ルータACLおよびVLANマップを組み合わせて使用する方法については、「注意事項」を参照してください。
VLANマップの作成
各VLANマップは順番に並べられた一連のエントリで構成されます。VLANマップ エントリを作成、追加、削除するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
vlan access-map name [ number ] |
VLANマップを作成し、名前および番号(任意)を付けます。番号は、マップ内のエントリの順序を表す数字です。 同じ名前のVLANマップを作成すると、10ずつ増分する番号が順に割り当てられます。マップを変更または削除するときは、目的のマップ エントリの番号を入力することができます。 このコマンドを入力すると、アクセスマップ コンフィギュレーション モードに変わります。 |
ステップ 3 |
action { drop | forward } |
(任意)マップ エントリに対するアクションを設定します。デフォルトは転送です。 |
ステップ 4 |
match { ip | mac } address { name | number } [ name | number ] |
1つまたは複数の標準または拡張アクセス リストに対してパケットを比較します(IPまたはMACアドレスを使用)。パケットの比較は、対応するプロトコル タイプのアクセス リストに対してのみ行われます。IPパケットは、標準または拡張IPアクセス リストに対して比較されます。非IPパケットは、名前指定のMAC拡張アクセス リストに対してのみ比較されます。 |
ステップ 5 |
end |
グローバル コンフィギュレーション モードに戻ります。 |
ステップ 6 |
show running-config |
アクセス リストの設定を表示します。 |
ステップ 7 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
マップを削除するには、 no vlan access-map name グローバル コンフィギュレーション コマンドを使用します。
マップ内の単一のシーケンス エントリを削除するには、 no vlan access-map name number グローバル コンフィギュレーション コマンドを使用します。
デフォルトのアクションである転送を行うには、 no action アクセスマップ コンフィギュレーション コマンドを使用します。
VLANマップでは、特定のpermitまたはdenyキーワードは使用されません。VLANマップを使用してパケットを拒否するには、パケットと比較するACLを作成し、アクションを廃棄に設定します。ACLにpermitキーワードを指定した場合は一致とみなされます。ACLにdenyキーワードを指定した場合は一致しないとみなされます。
ACLおよびVLANマップの例
次に、特定の目的でACLおよびVLANマップを作成する例を示します。
例1
ここでは、パケットを拒否するACLおよびVLANマップを作成する例を示します。最初のマップでは、 ip1 ACL(TCPパケット)に一致するすべてのパケットが廃棄されます。最初に、すべてのTCPパケットを許可し、それ以外のパケットをすべて拒否する ip1 ACLを作成します。VLANマップにはIPパケットに対するmatchステートメントが存在するため、デフォルトではどのmatchステートメントとも一致しないすべてのIPパケットが廃棄されます。
Switch(config)# ip access-list extended ip1
Switch(config-ext-nacl)# permit tcp any any
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map map_1 10
Switch(config-access-map)# match ip address ip1
Switch(config-access-map)# action drop
次に、パケットを許可するVLANマップを作成する例を示します。ACL ip2 はUDPパケットを許可します。 ip2 ACLと一致するすべてのパケットが転送されます。このマップでは、これ以前のどのACLとも一致しなかったすべてのIPパケット(TCPでもUDPでもないパケット)が廃棄されます。
Switch(config)# ip access-list extended ip2
Switch(config-ext-nacl)# permit udp any any
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map map_1 20
Switch(config-access-map)# match ip address ip2
Switch(config-access-map)# action forward
例2
次の例のVLANマップには、IPパケットの廃棄およびMACパケットの転送というデフォルト アクションがあります。標準のACL 101と名前指定の拡張アクセス リスト igmp-match および tcp-match をこのマップと組み合わせて使用すると、次のようになります。
• すべてのUDPパケットが転送されます。
• すべてのIGMPパケットが廃棄されます。
• すべてのTCPパケットが転送されます。
• その他のすべてのIPパケットが廃棄されます。
• すべての非IPパケットが転送されます。
Switch(config)# access-list 101 permit udp any any
Switch(config)# ip access-list extended igmp-match
Switch(config-ext-nacl)# permit igmp any any
Switch(config)# ip access-list extended tcp-match
Switch(config-ext-nacl)# permit tcp any any
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map drop-ip-default 10
Switch(config-access-map)# match ip address 101
Switch(config-access-map)# action forward
Switch(config-access-map)# exit
Switch(config)# vlan access-map drop-ip-default 20
Switch(config-access-map)# match ip address igmp-match
Switch(config-access-map)# action drop
Switch(config-access-map)# exit
Switch(config)# vlan access-map drop-ip-default 30
Switch(config-access-map)# match ip address tcp-match
Switch(config-access-map)# action forward
例3
次の例のVLANマップには、MACパケットの廃棄およびIPパケットの転送というデフォルト アクションがあります。MAC拡張アクセス リスト good-hosts および good-protocols とこのマップを組み合わせて使用すると、次のようになります。
• ホスト0000.0c00.0111および0000.0c00.0211からのMACパケットが転送されます。
• decnet-ipまたはvines-ipプロトコルを使用するMACパケットが転送されます。
• その他のすべての非IPパケットが廃棄されます。
• すべてのIPパケットが転送されます。
Switch(config)# mac access-list extended good-hosts
Switch(config-ext-macl)# permit host 000.0c00.0111 any
Switch(config-ext-macl)# permit host 000.0c00.0211 any
Switch(config-ext-nacl)# exit
Switch(config)# mac access-list extended good-protocols
Switch(config-ext-macl)# permit any any decnet-ip
Switch(config-ext-macl)# permit any any vines-ip
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map drop-mac-default 10
Switch(config-access-map)# match mac address good-hosts
Switch(config-access-map)# action forward
Switch(config-access-map)# exit
Switch(config)# vlan access-map drop-mac-default 20
Switch(config-access-map)# match mac address good-protocols
Switch(config-access-map)# action forward
例4
次の例のVLANマップには、すべてのパケット(IPおよび非IP)が廃棄されるデフォルト アクションがあります。例2および例3のアクセス リスト tcp-match および good-hosts をこのマップと組み合わせて使用すると、次のようになります。
• すべてのTCPパケットが転送されます。
• ホスト0000.0c00.0111および0000.0c00.0211からのMACパケットが転送されます。
• その他のすべてのIPパケットが廃棄されます。
• その他のすべてのMACパケットが廃棄されます。
Switch(config)# vlan access-map drop-all-default 10
Switch(config-access-map)# match ip address tcp-match
Switch(config-access-map)# action forward
Switch(config-access-map)# exit
Switch(config)# vlan access-map drop-all-default 20
Switch(config-access-map)# match mac address good-hosts
Switch(config-access-map)# action forward
VLANへのVLANマップの適用
1つのVLANマップを1つまたは複数のVLANに適用するには、イネーブルEXECモードで次の手順を実行します。
|
|
|
ステップ 1 |
configure terminal |
グローバル コンフィギュレーション モードを開始します。 |
ステップ 2 |
vlan filter mapname vlan-list list |
VLANマップを1つまたは複数のVLAN IDに適用します。 listには単一のVLAN ID(22)、連続した範囲(10-22)、またはVLAN IDからなるストリング(12, 22, 30)を指定できます。カンマやハイフンの前後にスペースを挿入することもできます。 |
ステップ 3 |
show running-config |
アクセス リストの設定を表示します。 |
ステップ 4 |
copy running-config startup-config |
(任意)コンフィギュレーション ファイルに設定を保存します。 |
VLANマップを削除するには、 no vlan filter mapname vlan-list list グローバル コンフィギュレーション コマンドを使用します。
次に、VLANマップ1をVLAN 20~22に適用する例を示します。
Switch(config)# vlan filter map 1 vlan-list 20-22
配線クローゼットの構成
配線クローゼット構成におけるスイッチでは、ルーティングがイネーブルでない可能性があります。ただし、この構成でもVLANマップおよびQoS分類ACLはサポートされています。図 28-4では、ホストXおよびホストYは異なるVLAN内にあり、配線クローゼット スイッチAおよびスイッチCに接続されていると想定しています。ホストXからホストYへのトラフィックは、ルーティングがイネーブルに設定されたレイヤ3であるスイッチBによって最終的にルーティングされます。ホストXからホストYへのトラフィックは、トラフィックのエントリ ポイントであるスイッチAでアクセス制御できます。
図 28-4 配線クローゼットの構成
HTTPトラフィックをホストXからホストYへスイッチングしない場合は、ホストX(IPアドレス10.1.1.32)からホストY(IPアドレス10.1.1.34)へのHTTPトラフィックがスイッチBにブリッジングされず、すべてスイッチAで廃棄されるようにスイッチAのVLANマップを設定できます。
まず、HTTPポートですべてのTCPトラフィックを許可(一致)するIPアクセス リスト http を定義します。
Switch(config)# ip access-list extended http
Switch(config-ext-nacl)# permit tcp host 10.1.1.32 host 10.1.1.34 eq www
Switch(config-ext-nacl)# exit
次に、 http アクセス リストと一致するトラフィックが廃棄され、その他のすべてのIPトラフィックが転送されるように、VLANアクセス マップ map2 を作成します。
Switch(config)# vlan access-map map2 10
Switch(config-access-map)# match ip address http
Switch(config-access-map)# action drop
Switch(config-access-map)# exit
Switch(config)# ip access-list extended match_all
Switch(config-ext-nacl)# permit ip any any
Switch(config-ext-nacl)# exit
Switch(config)# vlan access-map map2 20
Switch(config-access-map)# match ip address match_all
Switch(config-access-map)# action forward
次に、VLANアクセスマップ map2 をVLAN 1に適用します。
Switch(config)# vlan filter map2 vlan 1
別のVLANにあるサーバへのアクセス拒否
別のVLANにあるサーバへのアクセスを制限できます。たとえば、VLAN10内のサーバ10.1.1.100では、次のホストへのアクセスを拒否する必要があります(図 28-5を参照)。
• VLAN20内のサブネット10.1.2.0/8にあるホストのアクセスを禁止します。
• VLAN10内のホスト10.1.1.4および10.1.1.8のアクセスを禁止します。
図 28-5 別のVLANにあるサーバへのアクセス拒否
次に、サブネット10.1.2.0.8内のホスト、ホスト10.1.1.4、およびホスト10.1.1.8のアクセスを拒否し、その他のIPトラフィックを許可するVLANマップSERVER1を作成して、別のVLAN内のサーバへのアクセスを拒否する例を示します。最後に、VLANマップSERVER1をVLAN 10に適用します。
ステップ 1 対応するパケットと比較するIP ACLを定義します。
Switch(config)# ip access-list extended SERVER1_ACL
Switch(config-ext-nacl))# permit ip 10.1.2.0 0.0.0.255 host 10.1.1.100
Switch(config-ext-nacl))# permit ip host 10.1.1.4 host 10.1.1.100
Switch(config-ext-nacl))# permit ip host 10.1.1.8 host 10.1.1.100
Switch(config-ext-nacl))# exit
ステップ 2 SERVER1_ACLと一致するIPパケットを廃棄し、一致しないIPパケットを転送するこのACLを使用して、VLANマップを定義します。
Switch(config)# vlan access-map SERVER1_MAP
Switch(config-access-map)# match ip address SERVER1_ACL
Switch(config-access-map)# action drop
Switch(config)# vlan access-map SERVER1_MAP 20
Switch(config-access-map)# action forward
Switch(config-access-map)# exit
ステップ 3 VLAN 10にVLANマップを適用します。
Switch(config)# vlan filter SERVER1_MAP vlan-list 10.
ルータACLをVLANマップと組み合わせて使用する方法
ブリッジングされたトラフィックおよびルーティングされたトラフィックの両方に対してアクセス制御を行うには、VLANマップを単独で使用するか、またはルータACLとVLANマップを組み合わせて使用します。入力と出力両方のルーテッドVLANインターフェイスでルータACLを定義したり、ブリッジングされたトラフィックのアクセスを制御するVLANマップを定義することができます。
パケット フローがACL内VLANマップのdenyステートメントと一致した場合、ルータACLの設定に関係なく、パケット フローは拒否されます。
(注) ルータACLをVLANマップと組み合わせて使用し、ルータACLでのロギングを必要とするパケットがVLANマップで拒否された場合、これらのパケットはロギングされません。
パケット タイプ(IPまたはMAC)に対するmatchステートメントがVLANマップに存在する場合、パケットがそのタイプに一致しない場合は、デフォルトでパケットが廃棄されます。VLANマップ内にmatchステートメントがなく、アクションが指定されていない場合、どのVLANマップ エントリとも一致しないパケットは転送されます。
ここでは、ルータACLをVLANマップと組み合わせて使用する方法について説明します。
• 「注意事項」
• 「VLANに適用されるルータACLとVLANマップの例」
注意事項
ここに記載された注意事項は、ルータACL および VLANマップを同じVLAN上で使用する必要がある設定に適用されます。ルータACLおよびVLANマップを異なるVLANに割り当てる設定には、これらの注意事項は適用されません。
スイッチ ハードウェアは、方向(入力および出力)ごとにセキュリティACLを1回検索します。したがって、ルータACLおよびVLANマップを同じVLANに設定する場合は、これらを統合する必要があります。ルータACLとVLANマップを統合すると、ACEの数が膨大になる場合があります。
ルータACLおよびVLANマップを同じVLANに設定する必要がある場合は、ルータACLとVLANマップの両方の設定に関し、ここで説明する注意事項に従ってください。
• VLANインターフェイスの方向(入力および出力)ごとに、設定できるVLANマップおよびルータACLは1つのみです。
• 可能な限り、すべてのエントリのアクションが同一で、末尾のデフォルト アクションのみが反対のタイプとなるようにACLを記述します。次のいずれかの形式を使用して、ACLを記述します。
permit...
permit...
permit...
deny ip any any
または
deny...
deny...
deny...
permit ip any any
• ACL内で複数のアクション(許可、拒否)を定義する場合は、それぞれのアクション タイプをまとめて、エントリ数を削減します。
• ACL内にレイヤ4情報を指定しないでください。レイヤ4情報を追加すると、統合プロセスが複雑になります。ACLのフィルタリングが、full flow(送信元IPアドレス、宛先IPアドレス、プロトコル、およびプロトコル ポート)でなく、IPアドレス(送信元および宛先)に基づいて行われる場合に、最適な統合結果が得られます。可能な限り、IPアドレスには don't care ビットを使用してください。
IP ACEとレイヤ4情報を含むTCP/UDP/ICMP ACEが両方ともACL内に存在し、full flowモードを指定する必要があるときは、レイヤ4 ACEをリストの末尾に配置します。この結果、IPアドレスに基づくトラフィックのフィルタリングが優先されます。
VLANに適用されるルータACLとVLANマップの例
ここでは、ルータACLおよびVLANマップをVLANに適用し、スイッチド パケット、ブリッジド パケット、ルーテッド パケット、およびマルチキャスト パケットを処理する例を示します。次の図ではそれぞれの宛先に転送されるパケットを示します。パケットのパスがVLANマップやACLを示す線と交差するポイントで、パケットを転送せずに廃棄する可能性もあります。
ACLおよびスイッチド パケット
図 28-6に、VLAN内でスイッチングされるパケットにACLを適用する方法を示します。代替ブリッジングによってルーティングまたは転送されず、VLAN内でスイッチングされるパケットには、入力VLANのVLANマップのみが適用されます。
図 28-6 スイッチド パケットへのACLの適用
ACLおよびブリッジド パケット
図 28-7に、代替ブリッジド パケットにACLを適用する方法を示します。ブリッジド パケットの場合は、入力VLANにレイヤ2 ACLのみが適用されます。また、非IPおよび非ARPパケットのみが代替ブリッジド パケットとなります。
図 28-7 ブリッジド パケットへのACLの適用
ACLおよびルーテッド パケット
図 28-8に、ルーテッド パケットにACLを適用する方法を示します。ルーテッド パケットの場合、ACLは次の順番で適用されます。
1. 入力VLANのVLANマップ
2. 入力ルータACL
3. 出力ルータACL
4. 出力VLANのVLANマップ
図 28-8 ルーテッド パケットへのACLの適用
ACLおよびマルチキャスト パケット
図 28-9に、IPマルチキャスト用に複製されたパケットにACLを適用する方法を示します。ルーティングされるマルチキャスト パケットには、2つの異なるフィルタが適用されます。1つは、宛先が入力VLAN内の他のポートである場合に使用され、もう1つは、宛先がパケットのルーティング先である別のVLAN内にある場合に使用されます。パケットは複数の出力VLANにルーティングされる場合がありますが、この場合は宛先VLANごとに異なるルータ出力ACLおよびVLANマップが適用されます。
最終的に、パケットは一部の出力VLAN内で許可され、それ以外のVLANで拒否されます。パケットのコピーが、許可された宛先に転送されます。ただし、入力VLANマップ(図 28-9のVLAN 10マップ)によってパケットが廃棄される場合、パケットのコピーは宛先に送信されません。
図 28-9 マルチキャスト パケットへのACLの適用