タイムベース(Time-based)ACLとは

ACLは、フローを識別するためのIPヘッダやTCP/UDPヘッダなどの条件とそれに対するpermitまたはdenyの動作のリストです。ACLを構成するそれぞれの条件と動作のことを、正式にはACE(Access Control Entry)と呼びます。

そして、タイムベースACLとは、ACEを特定の時間帯(タイムレンジ)だけ有効にすることです。タイムベースACLによって、特定の時間帯だけWebアクセスを可能にするなど、時間帯に応じた通信の制御ができます。

図 タイムベースACL
図 タイムベースACL

なお、拡張ACLのみ対象です。標準ACLでは、タイムベースACLの設定はできません。また、ルータの時刻に基づいて、時間帯を判断します。そのため、ルータの時刻が合っていることが前提です。NTPで正確な時刻に合わせておいてください。

タイムベースACLの設定と確認コマンド

タイムベースACLの設定の流れ

タイムベースACLの設定の流れは次の通りです。

  1. タイムレンジの設定
  2. 拡張ACLでタイムレンジの関連付け
  3. インタフェースへ拡張ACLを適用

タイムレンジの設定

タイムレンジを設定するには、グローバルコンフィグレーションモードでtime-rangeコマンドを入力します。毎日、毎週などの定期的なタイムレンジの設定はperiodicを指定します。

タイムレンジの設定 periodic

(config)#time-range <time-range-name>
(config-time-range)# periodic {Friday|Monday|Saturday|Sunday|Thursday|Tuesday|Wednesday|daily|weekdays|weekend} <start-time> to <end-time>

<time-range-name> : タイムレンジ名
<start-time> : 開始時刻。hh:mm
<end-time> : 終了時刻。hh:mm。次の分が始まるまで有効

特定の日付の時間帯を指定するときにはabsoluteを指定します。

タイムレンジの設定 absolute

(config)#time-range <time-range-name>
(config-time-range)# absolute start <time> <day> <month> <year> end <time> <day> <month> <year>

<time-range-name> : タイムレンジ名
<time> : 時刻。hh:mm
<day> : 日付
<month> : 月
<year> : 年

拡張ACLでタイムレンジの関連付け

拡張ACLのACEを設定するときに、time-rangeでタイムレンジを関連付けます。番号付き(Numbered)ACLでも名前付き(Named)ACLでもどちらでもOKです。

拡張ACL タイムレンジの関連付け

(config)#access-list <ACL-num> {permit|deny} <criteria> time-range <time-range-name>

<ACL-num> : 拡張ACL番号
<criteria> : フローを識別するための条件
<time-range-name> : タイムレンジ名

または

(config)#ip access-list extended <ACL-name>
(config-ext-nacl)# {permit|deny} <criteria> time-range <time-range-name>

<ACL-name> : ACL名
<criteria> : フローを識別するための条件
<time-range-name> : タイムレンジ名

インタフェースへ拡張ACLを適用

タイムレンジを関連付けた拡張ACLをインタフェースに適用します。

インタフェースへACLを適用

(config)#interface <interface-name>
(config-if)#ip access-group {<ACL-num>|<ACL-name>} {in|out}

<interface-name> : インタフェース名
<ACL-num> : ACL番号
<ACL-name> : ACL名

ACLの用途としてパケットフィルタリングを想定していますが、パケットフィルタリング以外の用途でもタイムベースACLを利用できます。

タイムベースACLの確認コマンド

タイムベースACLの確認コマンドは、通常のACLによるパケットフィルタリングの確認コマンドに加えて、タイムレンジを確認します。

コマンド内容
#show time-rangeタイムレンジを確認します。
#show ip access-listACLの内容を表示します。
#show ip interfaceインタフェースに適用されているACLを確認します。

show time-range

show time-rangeコマンドで設定しているタイムレンジを確認できます。

show time-range

R1#show clock
09:00:02.507 UTC Wed Aug 10 2022
R1#show time-range
time-range entry: lunch-time (inactive)
   periodic weekdays 12:00 to 12:59
   used in: IP ACL entry
R1#show clock
12:00:03.783 UTC Wed Aug 10 2022
R1#show time-range
time-range entry: lunch-time (active)
   periodic weekdays 12:00 to 12:59
   used in: IP ACL entry

time-rangeコマンドは、running-configの最後の方に表示されます。

show ip access-list

show ip access-listコマンドで設定しているACLの詳細を表示します。タイムレンジと関連付けているACEが有効であるかも表示されます。

show ip access-list

R1#show clock
12:00:58.207 UTC Wed Aug 10 2022
R1#show ip access-lists
Extended IP access list WEBACCESS
    10 permit tcp any any eq www time-range lunch-time (active)
    20 deny tcp any any eq www
    30 permit ip any any

show ip interface

インタフェースに適用されているACLを確認するために、show ip interfaceコマンドを利用します。

show ip interface

R1#show ip interface FastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
  Internet address is 192.168.1.254/24
  Broadcast address is 255.255.255.255
  Address determined by setup command
  MTU is 1500 bytes
  Helper address is not set
  Directed broadcast forwarding is disabled
  Outgoing access list is not set
  Inbound  access list is WEBACCESS
~省略~

タイムベースACLの設定例

平日のランチタイム(12:00~12:59)だけWebアクセスできるようにするためのタイムベースACLの設定例です。

タイムベースACLの設定例

interface FastEthernet0/0
 ip address 192.168.1.254 255.255.255.0
 ip access-group WEBACCESS in
!
ip access-list extended WEBACCESS
 permit tcp any any eq www time-range lunch-time
 deny   tcp any any eq www
 permit ip any any
!
time-range lunch-time
 periodic weekdays 12:00 to 12:59

まとめ

ポイント

  • タイムベースACLとは、特定の時間帯(タイムレンジ)のみ有効なACEの設定です。
  • タイムベースACLを利用するには、ルータの時刻が合っていることが前提です。
  • 拡張ACLの設定において、time-rangeでタイムレンジを関連付けます。

セキュリティの基礎