ACL(アクセスコントロールリスト)とは何か?ネットワークのアクセス制限を中心に解説
ACLとは
ACLはファイルやネットワークなど、何らかの対象へのアクセス制限をまとめたリストのことで、IT分野で広く使われる言葉です。ACLは、Access Control Listの略で、日本語ではアクセス制御リストと訳されます。正式名称はアクセスコントロールリストですが「アクセスリスト」や「アクル」と呼ばれることもあります。
ネットワークの分野では、機器を通過するパケットについて、許可または拒否のルールをまとめたものを指します。ここでは、ネットワーク分野におけるACLの種類と、Cisco機器でACLを設定する方法を紹介します。
ACLの設定
Cisco機器でACLを使用する場合、以下の2つの設定が必要です。
- ACLの作成
- ACLの適用
制御ルールをまとめたACLを作成し、作成したACLをインターフェースに適用します。
ACLの作成で注意すべきは、「暗黙のdeny」というルールです。暗黙のdenyによって、ACLの最終行には自動的にすべてを拒否するルールが追加されます。そのため、ひとつも許可するACLがない場合、すべてのパケットが拒否されてしまいます。
ACLの種類と設定
Cisco機器では、標準ACL、名前付きACL、拡張ACLの3種類があります。
それぞれの設定方法を説明します。
標準ACL
標準ACLは、送信元IPをもとに、パケットの通過を制御するACLです。送信元IPアドレスのみのルールのため、設定はシンプルです。
標準ACLのACL番号は1~99、または1300~1999 で設定します。
コマンドと設定例は以下のとおりです。
コマンド
access-list [ACL番号] [permit | deny][送信元IP][ワイルドカードマスク]
※ワイルドカードマスクを指定しない場合0.0.0.0が適用されます。
ACLの作成
access-list 50 deny 192.168.1.1 0.0.0.0
access-list 50 permit 192.168.1.0 0.0.0.255
インターフェースへの適用
interface GigabitEthernet 0/1
ip access-group 50 in
この設定で、GigabitEthernet 0/1に入ってくる通信に対して、192.168.1.1/32の通信は拒否され、それ以外の192.168.1.0/24の通信は許可されます。また、暗黙のdenyによって、それ以外の通信も拒否されます。
名前付きACL
名前付きACLは、標準ACLと同様に、送信IPをもとにパケットの通過を制御するACLです。標準ACLと異なるのは、ACL番号の代わりにACLに名前をつけることができる点です。
コマンドと設定例は以下のとおりです。
コマンド
ip access-list standard [ACLの名前]
[ permit | deny ] [送信元IP][ワイルドカードマスク]
ACLの作成
ip access-list standard Management
deny 192.168.1.1 0.0.0.0
permit 192.168.1.0 0.0.0.255
インターフェースへの適用
interface GigabitEthernet 0/1
ip access-group Management in
設定の内容は、標準ACLと同じです。制御の用途によって名前をつけることで、管理がしやすくなるメリットがあります。
拡張ACL
拡張ACLは送信元IPアドレスに加えて、宛先IPアドレス、プロトコル番号、送信元ポート番号、宛先ポート番号を組み合わせてパケットの通過を制御できます。
標準ACLや名前付きACLと比較して、柔軟で細かい設定ができるのが拡張ACLの特徴です。
ACL番号は100~199、または2000~2699を使用します。
コマンドと設定例は以下のとおりです。
コマンド
access-list number [permit | deny][プロトコル]
[送信元IP][ワイルドカード][送信元ポート番号][宛先IP][ワイルドカード][宛先ポート番号]
ACLの作成
access-list 150 deny tcp 192.168.1.0 0.0.0.255 10.1.1.0 0.0.0.255 eq 80
access-list 150 permit ip 192.168.0.0 0.0.255.255 10.1.1.0 0.0.0.255
インターフェースへの適用
interface GigabitEthernet 0/1
ip access-group 150 in
この設定で、GigabitEthernet 0/1に入ってくる通信に対して、制御ルールが適用され、192.168.1.0/24から10.1.1.0/24へのTCP80(http)の通信は拒否されます。一方で、192.168.1.0/24以外の192.168.0.0/16は10.1.1.0/24に対してどのプロトコルでも通信が許可されます。
このように、通信プロトコルでの制御も可能なため、インターネットから入ってくるパケットのうち、HTTPアクセスのみ許可して、それ以外のパケットは通さないなどの設定も可能です。