トラフィックのフィルタリングとして使用されるACLは,前回学習した標準ACLだけでなく,さらに詳細な条件を指定してより細かく制御できる拡張ACLがあります。今回はこの拡張ACLと,名前付きACL,さらにはACLの応用を学びましょう。
拡張IP-ACL:より細かな条件指定が可能
標準IP-ACL(標準ACL)は「送信元IPアドレス」のみを条件として,「許可」「拒否」を決定するACLです。よりきめ細かく制御したい場合は,拡張IP-ACL(拡張ACL)を使用します。拡張IP-ACLでは前回の「セキュリティ編<第1回> 標準ACL」で説明した以下の条件をすべて使用できます。- 送信元,あて先IPアドレス
- IPヘッダの中身(ToS,フラグメント)
- 使用プロトコル
- 送信元,あて先ポート番号(TCP/UDP時)
- ICMPタイプ(ICMP時)
拡張IP-ACLのACL番号は100~199,2000~2699になります。拡張IP-ACLの設定は,オプションを使ってかなり詳細に条件を絞り込むことができます。
- (config)# access-list [ACL番号] [permit | deny] [プロコトル] [送信元] {ポート} [あて先] {ポート} {オプション}
- [ACL番号]
- ACLの番号
- [permit | deny]
- 許可(permit)か拒否(deny)か
- [プロトコル]
- 使用するプロトコル
- [送信元]
- ACLの条件部分。送信元IPアドレスとワイルドカードマスク
- [あて先]
- ACLの条件部分。あて先IPアドレスとワイルドカードマスク
- {ポート}
- ACLの条件部分。ポート番号を指定する
- {オプション}
- TOS,ICMPタイプ,時間,フラグメント,TCPフラグなどを条件に追加できる
- [ACL番号]
詳細な設定が可能なため,拡張IP-ACLは煩雑になりがちです。基本的なポイントを覚えておきましょう。
- [プロトコル] キーワード
- 使用するプロトコルを記入する。ip,tcp,udp,icmpなど
- tcpまたはudpを指定すると,ポート番号を条件として使用できる
- ipを指定すると,tcp,udp,icmpのすべてのトラフィックを含む
ipを指定した場合は,基本的なトラフィックをすべて含むと考えるとよいでしょう。「permit ip any any」や「deny ip any any」はよく使います。
- {ポート} キーワード
- プロトコルキーワードでtcpやudpを使用した場合にのみ使用できる
- 記述方法は「lt,gt,eq」+「番号」
- 「lt 番号」は,そのポート番号より小さい
- 「gt 番号」は,そのポート番号より大きい
- 「eq 番号」は,そのポート番号と等しい
例えば,「lt 1024」と記述すれば,「1024番より小さいポート番号のトラフィック」という意味になり,ウェルノウンポートを示します。「gt 1023」では「1023番より大きいポート番号のトラフィック」で一般的なクライアントアプリケーションが使うポートになります。「eq 80」と記述すればHTTP,「eq 25」と記述すればSMTPを指すことになります。
- {オプション} キーワード
- ACLで使用するオプションを示します
- よく使われるものとしては次のものがあります
- 「log」は,ACLに一致したもののログを表示します
- 「established」は,スリーウェイハンドシェーク後のTCPコネクションが確立されたトラフィックを示します
拡張IP-ACLの例としては以下のようになります(図1,図2)。
図1 ACLの目的
図2 ACLの作成