ACL アクセスリスト


ACLとは、アクセスコントロールリストの略です。
一般的には略して ACLや、アクセスリストと呼ばれており、
通信アクセスを制御するためのリストのことです。

ACLの種類

ACLには、4つの種類があります。
標準、拡張に対して、番号付きと名前付きのACLです。※1

標準ACL拡張ACL
番号
付き
番号付き標準ACL
access-list 10 permit host 192.168.0.123
access-list 10 permit 192.168.0.0 0.0.0.255
access-list 10 deny 192.168.0.0 0.0.0.255
番号付き拡張ACL
access-list 101 permit icmp 2.2.2.0 0.0.0.255 any
access-list 101 deny icmp 2.2.2.9 0.0.0.255 any
名前
付き
名前付き標準ACL
ip access-list standard ABC
deny 2.2.2.2
permit 1.1.1.1
名前付き拡張ACL 
ip access-list extended ABCDE
permit tcp 1.1.1.0 0.0.0.255 eq 123 any
permit udp 2.2.2.0 0.0.0.255 eq 123 any log

※1 通し番号はshow ip access-listsで確認する


標準ACLは、パケットをチェックするのに、送信元IPアドレスを使用。
拡張ACLは、パケットをチェックするのに、送信元IPアドレス、宛先IPアドレス、プロトコル番号、ポート番号を使用。

ACLの仕組み

基本的に設定した順番に上から並びます。
最初に設定したものが、1行目に
次に設定したものが2行目に、といった形です。

そして、上から順番に処理していき、条件に合致したら、パケットを許可、拒否の判断をし、処理が終了します。
また、ACLには「暗黙のdeny」というルールがあります。
「暗黙のdeny」は作成したACLの最終行に自動で追加され、全てのパケットを拒否するACLです。「暗黙のdeny」は表示されません。

番号付き標準ACL

●Cisco機器によるACLの設定方法

(config)# access-list < ACL番号 > < permit or deny > < 送信元アドレス > < ワイルドカードマスク >

<ACL番号>・・・ 1 ~ 99、1300 ~ 1999 の範囲で指定。
< 送信元アドレス >・・送信元のアドレスを指定。
< ワイルドカードマスク >・・これの説明はこちらのページにて。

access-list 12 permit host 192.168.0.123送信元192.168.0.123からのパケットを許可
access-list 12 deny host 192.168.0.123送信元192.168.0.123からのパケットを遮断
access-list 12 permit 192.168.0.0 0.0.0.255送信元192.168.0.0のセグメントからのパケットを許可
access-list 12 deny 192.168.0.0 0.0.0.255送信元192.168.0.0のセグメントからのパケットを遮断

●IFへの適用方法

(config-if)# ip access-group < ACL番号 > < in |out >

< ACL番号 >・・・ACLの番号 1 ~ 99、1300 ~ 1999 の範囲で指定。
< in | out >・・・inは受信方向、outは送信方向を指定。

番号付き拡張ACL

●Cisco機器によるACLの設定方法

(config)# access-list < ACL番号 > < permit or deny > < プロトコル > < 送信元 > <ワイルドカードマスク> < ポート番号 > <宛先> <ワイルドカードマスク> <ポート番号> < established or log or log-input >

< ACL番号 >・・・・ 100 ~ 199、2000 ~ 2699 の範囲で指定。
< プロトコル >・・・ ip,icmp,tcp,udpなどのプロトコル名を指定。
< 送信元>・・・・送信元のアドレスを指定。
< 宛先 >・・・・・宛先のアドレスを指定。
< ワイルドカードマスク >・・これの説明はこちらのページにて。
< ポート番号 >・・・ 以下の演算子の後にポート番号を指定する。
           eq・・・・等しい
           neq・・・等しくない
           gt・・・・~以上
           lt・・・・~以下
           range・・~の範囲

access-list 101 permit icmp 2.2.2.0 0.0.0.255 3.3.3.0 0.0.0.255
送信元2.2.2.0/24セグメントのICMPから、宛先3.3.3.0/24セグメントへの通信を許可
access-list 101 deny tcp 2.2.2.0 0.0.0.255 eq 23 3.3.3.0 0.0.0.255
送信元2.2.2.0/24セグメントのtcp telnet通信から、宛先3.3.3.0/24セグメントへの通信を拒否

●IFへの適用方法

(config-if)# ip access-group < ACL番号 > < in |out >

< ACL番号 >・・・ACLの番号 100 ~ 199、2000 ~ 2699 の範囲で指定。
< in | out >・・・inは受信方向、outは送信方向を指定。

名前付き標準ACL

●Cisco機器によるACLの設定方法

 (config)# ip access-list standard < 名前 >
 (config-std-nacl)# <番号>< permit or deny > <送信元> <ワイルドカードマスク>

<名前>・・・・ACLの名前
<番号>・・・・条件文のシーケンス番号。省略すると、上から10,20,30…と付加される
< permit or deny >・・・permit(許可)もしくは、deny(拒否)
<送信元>・・・送信元のアドレスを指定
< ワイルドカードマスク >・・これの説明はこちらのページにて。

ip access-list standard ABC標準名前付きACLのABCを宣言
deny 2.2.2.2送信元のアドレス 2.2.2.2を拒否する
permit 1.1.1.1送信元のアドレス 1.1.1.1を許可する

●IFへの適用方法

(config-if)# ip access-group < ACL番号 > < in |out >

< ACL番号 >・・・ACLの番号 1 ~ 99、1300 ~ 1999 の範囲で指定。
< in | out >・・・inは受信方向、outは送信方向を指定。

名前付き拡張ACL

●Cisco機器によるACLの設定方法

(config)# ip access-list extended < 名前 >
(config-ext-nacl)# <番号>< permit or deny > < protocol > <送信元> <ワイルドカードマスク> <ポート番号>
<宛先> <ワイルドカードマスク> <ポート番号> < established or log or log-input >

<名前>・・・・ACLの名前
<番号>・・・・条件文のシーケンス番号。省略すると、上から10,20,30…と付加される
< permit or deny >・・permit(許可)もしくは、deny(拒否)
< protocol >・・・・・ip,tcp,udp,icmpなどを指定
<送信元>・・・送信元のアドレスを指定
<宛先>・・・・宛先のアドレスを指定
< ワイルドカードマスク >・・これの説明はこちらのページにて。
< ポート番号 >・・・ 以下の演算子の後にポート番号を指定する。
           eq・・・・等しい
           neq・・・等しくない
           gt・・・・~以上
           lt・・・・~以下
           range・・~の範囲

ip access-list extended ABC名前付き拡張ACLでABCという名前をつける
permit ip 1.1.1.1 0.0.0.255 eq 23 2.2.2.2 0.0.0.2551.1.1.1から2.2.2.2宛のtelnetを許可する

●IFへの適用方法

(config-if)# ip access-group < ACL番号 > < in |out >

< ACL番号 >・・・ACLの番号 100 ~ 199、2000 ~ 2699 の範囲で指定。
< in | out >・・・inは受信方向、outは送信方向を指定。

ACLの注意点

●以下を入れると、ACLには、最後に暗黙のdenyという全てのパケットを拒否するルールがあります。
その為、このACLは「192.168.0.0/24」からの通信を拒否して、それから残り全ての通信も
拒否するというリストになってしまいます。

Router1(config)# access-list 1 deny 192.168.0.0 0.0.0.255

●1行目に全ての通信の許可をしているので、全ての通信が該当してしまうので、
それ以降の行はチェックされませんので、その為2行目に拒否のエントリがあっても
チェックされません。

Router1(config)# access-list 1 permit any
Router1(config)# access-list 1 deny 192.168.0.0 0.0.0.255