Ciscoルータが持つ機能の1つとして,トラフィックフィルタリング(パケットフィルタリング)があります。これにより柔軟なトラフィックのコントロールや,セキュリティの向上が見込めます。この機能であるACL(Access Control List)の設定を学びましょう。

ACLとは

 ACLはルータのインタフェースを通過する際に適用される条件のリストです。この条件として,例えば以下のようなものを使うことができます。

  • 送信元・あて先IPアドレス
  • IPヘッダの中身(ToS・フラグメント)
  • 使用プロトコル
  • 送信元・あて先ポート番号(TCP/UDP時)
  • ICMPタイプ(ICMP時)

 これらの条件に一致するトラフィックの通過を拒否,あるいは許可することにより,ルータがトラフィックをコントロールすることができ,発信する/着信するトラフィックにセキュリティをかけることが可能になります。

 ACLはインタフェースに設定します。ルータは着信→ルーティング→発信という動作を行うため,着信時のACL,発信時のACLという2つのACLを通過する形になります(図1)。

 図1 インタフェースとACL

 ACLは複数の行(ステートメント)から成り立っているリストです。各行にはそれぞれ条件と,一致した場合「拒否」または「許可」することが記述されます。拒否した場合はパケットを廃棄します。この行の並びは大変重要です。リストを構成する行は,必ず先頭からチェックされ,もし途中で一致した場合,その時点で「拒否」「許可」が判断されます。それ以降の行はチェックされません。

 また,最後の行までチェックしても「拒否」「許可」が行われない場合,最終的に必ず「拒否」され,廃棄されます。つまり最終行のさらに後ろに「すべてを拒否」する行がある,と覚えておく必要があります。これを暗黙の拒否と呼びます(図2)。

 図2 ACLの行のチェックの方式
ACLの行のチェックの方式