ACLとは 〜標準ACLと拡張ACLの違いと使い分け,暗黙のdeny,戻りのパケットの制御について〜

ACL とは

アクセスリストは正式にはアクセスコントロールリスト、略してACL(読み方:アクル)と呼びます。IP 通信の通過を許可したり拒否したりするルールを記載するリストです。

ACL の中身は、「このIPアドレスからの通信を拒否する」、「このIPアドレスからの通信を許可する」というルールを一行ずつ書いていったリストになります。

ACL の定義を行い、それをインタフェースに適用することで、そのインタフェースで通過させる、させない、の選択を ACL で定義したルール通りにさせることができます。

Cisco では標準ACL、拡張ACLの2種類があり、それぞれ以下の書き方をします。

標準ACL

標準ACLでは、送信元IPでの制御しかできません(宛先IPでの制御は、必要に応じてルーティングでnullルートを設定すれば良い、という考え)。

ACL番号1~99、もしくは1300~1999で設定した場合、それは標準ACLになります。

ACL番号10の例です。

(config)# access-list 10 deny 192.168.1.1 0.0.0.0
(config)# access-list 10 permit 192.168.1.0 0.0.0.255
(config)# interface fastEthernet 0/1
(config-if)# ip access-group 10 in

この設定により、fastEthernet 0/1 に入ってくる通信は 192.168.1.1 を除いた192.168.1.0/24 からの通信だけが許可されます。上から順番に見るため、192.168.1.1 は拒否されます。

192.168.1.0/24 以外は書かれていませんが、書かれていない場合は暗黙のdeny(拒否)というルールにより拒否されます。ACL の最後に必ず deny any というルールが入るということです。

また、番号ベースではなく名前付きACLというのも機能としては同じです。この場合、番号ではなく名前により管理ができます。

(config)# ip access-list standard EIGYOUBU
(config-std-nacl)# deny 192.168.1.1 0.0.0.0
(config-std-nacl)# permit 192.168.1.0 0.0.0.255
(config-std-nacl)# exit
(config)# interface fastEthernet 0/1
(config-if)# ip access-group EIGYOUBU in

この場合、効果は全く同じですが、名前付きのほうが、「これは営業部用のACLだ」と管理しやすいです。

拡張 ACL

拡張 ACLでは「送信元IPアドレス」だけでなく、「宛先IPアドレス」「プロトコル(ip/tcp/udp/icmp)」「送信元ポート」「宛先ポート」「(TCPの場合はさらに) established (TCP synが送られた以降であることを意味する)」の組み合わせでのアクセス制御ができます。つまり、TCP に限っては established を使うことで「戻りのパケットなら許可する」といった制御ができるのです。

ACL番号100~199、もしくは2000~2699で設定した場合、それは拡張ACLになります。

ACL番号110の例です。

(config)# access-list 110 deny tcp 192.168.1.0 0.0.0.255 10.1.1.0 0.0.0.255 eq 80
(config)# access-list 110 permit ip 192.168.0.0 0.0.255.255 10.1.1.0 0.0.0.255
(config)# interface fastEthernet 0/1
(config-if)# ip access-group 110 in

この場合、192.168.1.0/24は10.1.1.0/24のtcp 80(http)を拒否されますが、それ以外のプロトコルは下のルールで許可されています。192.168.1.0/24以外の192.168.0.0/16は10.1.1.0/24へはtcp 80ももちろん、それ以外のポートもすべて許可されます。

名前付きACLの場合は以下のようになります。

(config)# ip access-list extended GIJUTSUBU
(config-ext-nacl)# deny tcp 192.168.1.0 0.0.0.255 10.1.1.0 0.255.255.255 eq 80
(config-ext-nacl)# permit ip 192.168.0.0 0.0.255.255 10.1.1.0 0.255.255.255
(config-ext-nacl)# exit
(config)# interface fastEthernet 0/1
(config-if)# ip access-group EIGYOUBU in

正直、拡張 ACL は標準 ACL を包含しているので標準 ACL は無くても良いように思います。ただ、他のメーカでの例ではありますが、CoPP や SNMP への ACL については標準 ACL じゃないと動作しない、というコマンドもありますので、注意が必要です (Cisco でもあるかも)。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする