目次
アクセスコントロールリストとは
アクセスコントロールリスト(Access Control List : ACL)とは、アプリケーションのフローを識別するための条件とそのフローに対する動作(permitまたはdeny)のリストです。アプリケーションのフローは、主にIPアドレスとTCP/UDPポート番号によって識別できます。そのため、アクセスコントロールリストのフローを識別する条件は、IPヘッダとTCP/UDPヘッダについての条件がメインです。
アプリケーションフローは、行きのフローと戻りのフローが必要です。「通信は双方向である」ということが、アクセスコントロールリストを考えるときにとても重要です。アクセスコントロールリストは、行きのフローと戻りのフローは別々に考えなければいけません。
アクセスコントロールリストの用途
アクセスコントロールリストは、適用してはじめて意味を持ちます。単にIPヘッダやTCP/UDPヘッダなどの条件のリストを作成するだけでは、まったく意味がありません。アクセスコントロールリストを適用する主な用途として、以下が挙げられます。
- パケットフィルタ
- NAT変換対象パケット(フロー)の指定
- ルートフィルタ
- IPSecで暗号化する対象パケット(フロー)の指定
- ルートマップのmatch条件
アクセスコントロールリストは、IP/TCP/UDPヘッダの条件だけではなく、permit(許可)/deny(拒否)という動作も決めています。permit/denyの動作がどのような意味であるかが用途によって違ってきます。動作の意味が違ってくるということは、アクセスコントロールリストを理解するうえで難しいポイントです。
「アクセスコントロールリスト = パケットフィルタ」という風に考えてしまうことが多いのですが、いろんな用途があるということをしっかりと理解しておきましょう。
ACLの用途:パケットフィルタ
パケットフィルタが最も多いアクセスコントロールリストの用途です。不要なアプリケーションのフローをルータで破棄することで、セキュリティを確保するためによく利用されています。パケットフィルタでのpermit/denyの動作は、そのままの言葉通りに解釈します。permitはフローのパケットを通過させるという意味です。denyはフローのパケットを拒否(破棄)します。
関連記事
パケットフィルタについて、以下の記事をご覧ください。
ACLの用途:NAT変換対象パケットの指定
NATのIPアドレス変換をするパケットを指定するためにACLを利用できます。NAT変換対象を指定するためのアクセスコントロールリストでは、permitはNAT変換するという意味です。denyはパケットを破棄するのではなくてNAT変換しないという意味です。
関連記事
CiscoルータでACLによってNAT変換対象を決めてNAT変換を行うために設定について、以下の記事をご覧ください。
ACLの用途:ルートフィルタ
ルートフィルタでアクセスコントロールリストを利用するときは、アプリケーションフローの識別ではなく、ルーティングプロトコルでやり取りするルート情報のネットワークアドレスを識別します。permitはルート情報のネットワークアドレスを許可し、denyはルート情報のネットワークアドレスを拒否します。
ACLの用途:IPSecで暗号化する対象パケット(フロー)の指定
IPSecで暗号化するパケット(フロー)を指定するためにACLを利用できます。この場合、permitされたフローはIPSecで暗号化されます。denyされたフローは破棄するわけではなくIPSecの暗号化を行わないということです。
ACLの用途:ルートマップのmatch条件
ルートマップのmatch条件にACLを関連付けられます。ルートマップとは、ルータが処理する対象を特定するための条件と動作をまとめているリストです。ACLよりもより詳細な条件やさまざまな動作を設定することできます。そして、さまざまな用途でルートマップを利用します。ルートマップのmatch条件にACLを関連付ける場合は、ACLのpermitはmatch条件を満足するという意味です。denyはmatch条件を満足しないことを意味します。
関連記事
アクセスコントロールリストの注意点
アクセスコントロールリストの設定を行うときには、以下の2点に注意が必要です。
- 条件の順序をよく考える
- 最後に暗黙のdeny anyがある
アクセスコントロールリストの処理は、条件を上から順番にチェックします。一致する条件があれば、処理は終了します。そのため、条件の順序を考えて設定しなければ、意図した動作にならないことがあります。送信元IPアドレスが192.168.1.* (*は任意)のフローのパケットはdenyとし、送信元IPアドレスが192.168.1.1のフローのみが例外としてpermitという例を考えます。条件の順番を以下のように設定すると、送信元IPアドレスが192.168.1.1のフローもdenyされてしまいます。
- 送信元IPアドレス168.1.*のフロー deny
- 送信元IPアドレス168.1.1のフロー permit
意図した動作にするためには、例外とする条件を前に設定しなければいけません。
- 送信元IPアドレス168.1.1のフロー permit
- 送信元IPアドレス168.1.*のフロー deny
条件の順序として、例外的な条件やより詳細な条件を前に設定して、あいまいな条件を後ろにします。そして、アクセスコントロールリストの最後には、暗黙のdeny anyの条件があります。明示的に設定している条件としてdenyの条件しかなければ、暗黙のdeny anyによって結局すべてのフローはdenyされてしまいます。明示的に設定する条件には、少なくとも1つはpermitの条件が必要です。
アクセスコントロールリストの種類
アクセスコントロールリストは、フローを識別するための条件で指定できる情報の違いによって、2種類に分類できます。
- 標準アクセスコントロールリスト
- 拡張アクセスコントロールリスト
標準アクセスコントールリスト
標準アクセスコントロールリストは、フローの識別のために指定できる条件は、IPヘッダの送信元IPアドレスのみです。そのため、標準アクセスコントールリストでは、フローを詳細に識別することができません。
フローを詳細に識別できないため、パケットフィルタで標準アクセスコントロールリストを利用することはあまりありません。標準アクセスコントロールリストは、NAT変換対象の指定やルートフィルタ、VTYアクセス制御などの用途で利用することが多くなっています。次の範囲のアクセスコントロールリスト番号で設定すると、標準アクセスコントロールリストになります。
- 1~99
- 1300~1999
拡張アクセスコントロールリスト
フローを識別するために、IPヘッダをはじめとしてTCP/UDPなどのさまざまなプロトコルのヘッダ情報を条件として指定できるのが拡張アクセスコントロールリストです。フローの識別のために、主に次のような情報を指定できます。
- 送信元/宛先IPアドレス
- プロトコル番号
- 送信元/宛先ポート番号
TCP/UDPヘッダのポート番号もチェックできるので、拡張アクセスコントロールリストは詳細にアプリケーションフローを識別できます。詳細にアプリケーションフローを識別した上で、フローを通過させる/拒否するというパケットフィルタの用途で利用することが多くなっています。拡張アクセスコントロールリストは、アクセスコントロールリスト番号として以下の範囲で設定します。
- 100~199
- 2000~2699
種類 | 指定できる情報 | アクセスコントロールリスト番号 |
---|---|---|
標準 | 送信元IPアドレス | 1~99、1300~1999 |
拡張 | 宛先/送信元IPアドレス プロトコル番号 宛先/送信元ポート番号など | 100~199、2000~2699 |
Ciscoアクセスコントロールリストのポイント
- アクセスコントロールリストとは、フローを識別するための条件と該当するフローに対する動作(permitまたはdeny)をまとめたリスト
- アクセスコントロールリストの用途はパケットフィルタだけではなく、ルートフィルタやNAT変換対象の指定などさまざまある
- フローを識別するために指定できる条件によってACLには2つの種類がある
- 標準ACL:送信元IPアドレス
- 拡張ACL:宛先/送信元IPアドレス、プロトコル番号、宛先/送信元ポート番号など
セキュリティの基礎
- SSLとWi-Fiの暗号化の違い
- セキュリティの目的 ~機密性/完全性/可用性~
- セキュリティの脅威と対策の概要
- マルウェア ~ユーザにとって有害なソフトウェア~
- 認証の基礎 ~正規のユーザ/デバイスですか?~
- 覚えやすくて推測されにくい安全なパスワードの作り方
- 暗号化の概要
- ハッシュ関数とは
- SSLとは? ~アクセス先は本物です!データは盗聴/改ざんされません!~
- ファイアウォールの概要 ~正規の通信のみを転送~
- IDS/IPS ~不正アクセス対策~
- Cisco アクセスコントロールリストの概要
- パケットフィルタ ~不正な通信をブロックするCisco ACLの最も多い用途~
- SPI(Stateful Packet Inspection)の概要
- Cisco ACLによるパケットフィルタの設定と確認
- 名前付きACL(Named ACL)
- タイムベース(Time-based)ACL
- Cisco ACLによるパケットフィルタの設定例
- 標準ACLと拡張ACLのパケットフィルタリングをより深く理解するための演習 ~標準ACL~
- 標準ACLと拡張ACLのパケットフィルタリングをより深く理解するための演習 ~拡張ACL~
- リフレクシブ(Reflexive)ACL ~戻りの通信を自動的に許可~
- リフレクシブ(Reflexive)ACLの設定例
- Catalystスイッチのパケットフィルタリング RACL/VACL/PACL
- RACL/VACL/PACLの設定と確認コマンド
- uRPFの設定例
- VTYアクセス制御
- DHCPスプーフィング ~DHCPサーバを偽装~
- DHCPスヌーピング
- Cisco DHCPスヌーピングの設定と確認コマンド
- Cisco DHCPスヌーピングの設定例
- ARPスプーフィング
- Dynamic ARP Inspection
- Cisco Dynamic ARP Inspectionの設定と確認コマンド
- TCPインターセプトの設定例
- WAF(Web Application Firewall)の概要
- 電子メールのセキュリティ