#ACLとは
アクセスコントロールリスト。
通信アクセスを制限するためのリストのこと。フィルタリング。
ACLを定義することで、ルータを通過するパケットに対して、通信を許可するパケットと、通信を拒否するパケットのルールを決めることができる。
ファイアウォールとは何が違うの?
→応答パケットへを許可するかどうかがちがう。
- ファイアウォールの場合
クライアント →(リクエスト)→ ファイアウォール(許可) →(リクエスト)→ サーバ
←(レスポンス)← ファイアウォール(無条件に許可) ←(レスポンス)←
※リクエストがルール上許可された通信の場合、応答パケットはルールに明記されていなくても許可する
- ACLの場合
クライアント →(リクエスト)→ ファイアウォール(許可) →(リクエスト)→ サーバ
ファイアウォール(拒否) ←(レスポンス)←
※リクエストがルール上許可された通信の場合でも、応答パケットはルールに明記されていない場合は拒否する
#ACLの処理順序
例えば以下のようなACLがあるとする。
1行目 送信元アドレス192.168.0.1 拒否
2行目 送信元アドレス192.168.0.0/24 許可
3行目 暗黙のdeny any
ACLの処理は、上から順に行われる。ここがポイント。
例えば
192.168.0.1 の送信元アドレスからパケットを受信した場合、1行目のルールに合致するため「拒否」となる。
2行目のルールにも合致するが、ルールに1つ合致した時点で以降のルールはチェックされないため、適用されない。
つまり、限定的な条件ほど、始めのほうに記述すること。
順番を間違えると、思っている通りの動きにならないため注意!
#暗黙のdeny
上のACLの3行目にある、「暗黙のdeny any」の記述について。
ACLの最終行には「暗黙のdeny」と呼ばれる、全てのパケットを拒否するルールが追加される。
これはリストには表示されていないが、自動的に追加されるので注意する。
このため、ACLには最低1行は許可するルールが記述されていない場合は、全パケットが拒否されることになる。
#ACLの種類
一般に使用されるACLとして、以下の2つがある(Cisco製品)。
1.標準ACL
送信元IPアドレスをもとにフィルタリングを行う。
上の図では、R1に設定すると、送信元のIPアドレスしか見れないため20.1.1.1への通信もできなくなってしまう。
通常、標準ACLは宛先に近いところで設定することが望ましい。
2.拡張ACL
送信元IPアドレス、宛先IPアドレス、プロトコル番号、送信元ポート番号、宛先ポート番号。。などでフィルタリングできる。標準ACLよりも柔軟に制御可能であるため、こちらのほうがよく使われている。
上の図では、拡張ACLは宛先のIPアドレスが見れるので、R1でもR2でもどちらに設定しても条件は満たせる。
しかしR2に設定した場合、その分無駄なトラフィックが生じることになるので、R1で設定するほうが良い。
通常、標準ACLは送信元に近いところで設定することが望ましい。
#参考
ACL - Check Rule