访问控制表(ACL)实际上是在路由器或三层交换机上实现的根据数据报文的内容进行的过滤行为。路由器或者三层交换机根据报文的特征以及ACL中所定义的策略,决定将该报文进行转发或者丢弃。常用的访问控制表通常是根据IP数据包的源地址、目标地址、协议类型等来进行配置,本文将介绍另外一种访问控制表:基于时间的访问控制表。
基于时间的访问控制表可以根据一天中的不同时间或一星期中的不同日期、或二者相结合来控制网络数据包的转发。这种基于时间的访问控制表,就是在原来的标准访问控制表和扩展访问控制表中,加入有效的时间范围来更合理有效地控制网络。首先定义一个时间范围,然后在原来的各种访问列表的基础上应用它。
基于时间访问列表的设计中,用time-range命令来指定时间范围的名称,然后用absolute命令,或者一个或多个periodic命令来具体定义时间范围。命令格式为:
time-range time-range-name
absolute [start time date] [end time date]
periodic days-of-the week hh:mm to [days-of-the week] hh:mm |
下面分别介绍每个命令和参数的详细情况。
time-range:
用来定义时间范围的命令。
time-range-name:
时间范围名称,用来标识时间范围,以便于在后面的访问列表中引用。
absolute:
该命令用来指定绝对时间范围。它后面紧跟着start和end两个关键字。在这两个关键字后面的时间要以24小时制hh:mm表示,日期要按照日/月/年来表示。如果省略start及其后面的时间,则表示与之相联系的permit或deny语句立即生效,并一直作用到end处的时间为止。如果省略end及其后面的时间,则表示与之相联系的permit或deny语句在start处表示的时间开始生效,并且一直进行下去。
periodic
主要是以星期为参数来定义时间范围的一个命令。它的参数主要有Monday、Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday中的一个或者几个的组合,也可以是daily(每天)、weekday(周一至周五),或者weekend(周末)。
下面以一个实例来说明基于时间的访问控制表的使用方法。
在一个网络中,为了网络内的主机在工作时间内不能进行Web浏览,从周一到周五的上午8:00到晚上18:00,不允许任何http访问,而周六和周日则允许所有的访问。
我们通过基于时间的扩展访问控制列表来实现这一功能,首先定义一个在周一至周五上午8:00到晚上18:00的时间范围,名称为“worktime”:
Lab(config)# time-range worktime
Lab(config-time-range)# periodic weekdays 8:00 to 18:00 |
接下来,定义一个命名的访问控制表,名称为“nohttp”,与前面定义的时间范围“worktime”共同作用,禁止该时间范围内的http协议:
Lab(config)# ip access-list extended nohttp
Lab(config-ext-nacl)# deny tcp any any eq www time-range worktime |
为了能够在这个时间以外,允许所有数据包通过,还需要定义一个允许通过的ACE:
Lab(config-ext-nacl)# deny ip any any
最后,将这个ACL应用到路由器的接口上:
Lab(config)# interface f0/0
Lab(config-if)# ip access-group nohttp in |
合理有效地利用基于时间的访问控制列表,可以更有效、更安全、更方便地保护我们的内部网络,这样您的网络才会更安全,网络管理人员也会更加轻松。
什么是ACL
ACL是访问控制列表的简称,它使用包过滤技术,在路由器上读取第三层及第四层包头中的信息,如源地址目的地址源端口、目的端口等,根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。该技术初期仅在路由器上支持,近些年来已经扩展到三层交换机,部分最新的二层交换机也开始提供ACL的支持了。
|