网络通信 频道

中小企业网络管理:ACL访问控制列表

反向ACL的用途

  反向访问控制列表属于ACL的一种高级应用。一般使用在源访问对方可以,但反之不行。如A访问B节点可以,但是B不能访问A节点。如我们在Router1上可以telnet到Router2,但Router2不能telnet1上。那有人可能要问这是怎么实现的,在这里我们就以ping为例讲一下其中的原理,我们知道Ping使用的是icmp协议,但同样是icmp协议,它所使用的类型是不同的,简单说我们ping对方,是发出一个icmp request类型的数据包,但是对方回来的是则是携带了我们request标志的reply类型的包,所以我们如果只希望A ping B,不让B ping A,就可以这么判断,如果A ping B,发现回来的ICMP包是携带了A的request标签则允许通过,否则拒绝,就OK了!也可以用于保护网络的安全性,如我们只能由内部网络始发的,外部网络的响应流量可以进入,由外部网络始发的流量如果没有得到一个明确的允许,是禁止进入的。说白了,就是内网可以访问外网,但外网不能访问内网,如图所示:

访问控制列表
▲ 拓扑图

  如,咱们看一个实例:我们希望内网的192.160.10.0网段可以访问(ping)外网的192.160.20.0,但是外网不能ping内网。这里需要使用Reflexive ACL技术,基中包含两个部分,一部分是outbound的配置,另一部分是inbound的配置。工作流程:由内网始发的数据到达路由器后,路由器会生成一个三层和四层的临时访问表,在此会将其中的一些参数作一些更改,如源IP和目标IP,源端口和目标端口适当作些对调操作。这样的话,当数据包从外网再进入内网的时候会检查此表,如果匹配上,则路由器才会允许此数据进入内网。

  ACL应用位置:

  标准的ACL的应用位置应该是离目的近的地方,而扩展的ACL则应该是离源近的地方对于标准的ACL来说,仅定义了它的源,如果你把它放在离源近的地方,那么它会把所有该源的流量给阻断,或者产生其他的效果.为了避免这种情况产生,所以将标准的ACL放置在离目标较近的地方,也就是远源端.但是对于扩展的来说,我们定义了它的源IP,目标IP,源端口,目标端口,以及协议,这种完全可以进行精确的匹配,所以不用担心它会对不需要控制的流量产生影响,而将其放在近源端口,这样也可以在一定程度上面节约带宽。

  基于时间的ACL:

  顾名思义是根据时间对ACL进行配置,如我们单位规定禁止在上网班时间使用QQ,MSN等等操作。如:我们禁止在上午9:00 -- 下午17:00访问互联网上的Web站点即(http:80/https:443)

  基于时间的访问控制列表由两部分组成,第一部分是定义时间段,第二部分是用扩展访问控制列表定义规则。这里我们主要讲解下定义时间段,具体格式如下:

  time-range 时间段名称

  absolute start [小时:分钟] [日 月 年] [end] [小时:分钟] [日 月 年]

  当然也可以使用Periodic:为周期性重复使用的时间范围的定义。完整格式为periodic 日期关键字 开始时间 结束时间

  例如:time-range dufei

  absolute start 9:00 1 may 2009 end 12:00 1 may 2010

  意思是定义了一个时间段,名称为dufei,并且设置了这个时间段的起始时间为2009年5月1日9点,结束时间为2010年5月1日中午9点。我们通过这个时间段和扩展ACL的规则结合就可以指定出针对自己公司时间段开放的基于时间的访问控制列表了。当然我们也可以定义工作日和周末。下面看一个小例子:

  目的:我们部分规定只允许192.168.15.0网段的用户在周末访问192.168.10.10(娱乐服务器)上的FTP资源,工作时间不能下载该FTP资源。

  路由器配置命令:

  ime-range ftptime 定义时间段名称为ftptime

  periodic weekend 00:00 to 23:59 定义具体时间范围,为每周周末(6,日)的0点到23点59分。当然可以使用periodic weekdays定义工作日或跟星期几定义具体的周几。

  access-list 101 deny tcp any 192.168.10.10 0.0.0.0 eq ftp time-range ftptime 设置ACL

  access-list 101 permit ip any any 设置ACL,容许其他时间段和其他条件下的正常访问。

  int e1

  ip access-group 101 out 应用ACL

  在VTY上应用标准ACL:

  我们可以利用ACL来控制对VTY的访问,ACL可以用在VTY上,我们在第二节中介绍过VTY,其实也就是对Cisco设备的Telnet操作,一般我们说可以将ACL应用在5个VTY虚拟终端上。但是要注意的是Cisco是否仅支持5个VTY,这要根据路由器的版本和内存和决定,所以在设置ACL的时候一定要先弄清楚VTY的数量)

  将ACL应用在VTY上,可以实现不考虑路由器的物理接口的拓扑来实现对路由器的远程控制。但是要注意的是在此只能使用标准ACL。

  那么具体设置命令也很简单:我们前面是在某个接口上设置ACL,所以必须使用interface命令进行接口模式,而在此需要进入vty线路模式。在应用的时候是使用access-class 而不是ip access-group;我们来具体看一下:

  1 进行线路模式

  命令:line vty vty­_number|vry_range

  在此可以一个具体终端或指定的一个地址范围,一定要注意事先查清VTY的数量

  2 应用ACL:

  命令:access-class ACL_number in|out

  我们来看一个具体的配置实例:

  实例:我们拒绝R3路由器远程Telnet到R1路由器上

访问控制列表
▲ 实验拓扑图

  配置前提是已经使用OSPF协议实现了全网互通!

  R1路由器的配置:

  R1#enable

  R1#conf t

  R1(config)#interface fa0/1

  R1(config-if)#ip address 192.168.10.1 255.255.255.0

  R1(config-if)#no shutdown

  R1(config-if)#exit

  R1(config)#interface fa0/0

  R1(config-if)#ip address 192.168.100.100 255.255.255.0

  R1(config-if)#exit

  R1(config)#router ospf 1

  R1(config-router)#network 192.168.100.0 0.0.0.255 area 0

  R1(config-router)#network 192.168.10.0 0.0.0.255 area 0

  R1(config-router)#end

  至于R2与R3的配置在此不再详细描述!

  我们可以在R1上查看路由信息:

访问控制列表
▲ R1上的路由信息

  并且实现全网全通:

访问控制列表
▲ 全网通畅

  再往下,我们准备开启R1的telnet功能:

  R1#configure t

  R1(config)#username dufei password dufei

  R1(config)#line vty 0 4

  R1(config-line)#login local

  此时我们到R3上远程Telnet测试是否成功!

  R3>enable

  R3#tel

  R3#telnet 192.168.10.1

  Trying 192.168.10.1 ... Open

  User Access Verification

  Username: dufei

  Password:

  R1>

访问控制列表
▲ telnet登录

  OK! 登录成功,下面我们就来看一下如何拒绝R3的远程Telnet.

  R1(config)#access-list 10 deny host 192.168.20.2

  R1(config)#access-list 10 permit any

  R1(config)#line vty 0 4

  R1(config-line)#access-class 10 in

  R1(config-line)#exit

  然后R3再次Telnet到R1上, 见到下图,我就恭喜你了!嘻。。。。。成功了!

访问控制列表
▲ 成功登录

  但是我们使用R2是可以Telnet到R1上的,如图所示:

访问控制列表
▲ ACL设置生效

  至此,实验完毕,ACL的基本应用就这么简单。我们这一节课程也结束了,休息,休息一会吧!

1
相关文章