Skip to main content

 路由器设置 > 新闻资讯 >

演示:自反ACL的配置

2013-11-14 01:07 浏览:

自反ACL的定义:

自反ACLreflexive ACL,它允许内部安全网络上的计算机主动访问非安全区域的出站数据包的目的地返回的应答流量回到该出站数据包的源地址。这样,ACL就能基于一种访问的状态来过滤外部回到企业内部的流量,可以更加严格地控制哪些流量能进入企业的内部网络(安全网络),并且提升了扩展访问列表的实战应用能力。比如,企业网络管理员希望企业内部的用户能访问Internet,但是不希望Internet上的主机主动访问企业内部网络时,自反ACL将是一种理想的选择。

 

自反ACL的工作过程:

如下图10.25所示,自反ACL能够根据上层会话信息来过滤IP数据包,它可以使自己网络所发起的会话中的数据返回到自己的网络,但是不允许外部网络的主机主动访问内部网络,当然,被ACL明确申明允许访问的流量除外,具体工作原理如下所述:

011735198.png

第一步:出站流量在穿越路由器R1时,自动建立流量审计条规,至于哪些流量需要建立审计条规由自反ACL语句所规定。

第二步:当流量从外部返回到内部时,路由器R1将使用第一步中建立的审计条规来审核流量是否可以到达内部网络,它审计的条目有状态标记比如:TCP连接返回数据的SYN=1;ACK=1表示从外部返回给内部网络的TCP协商状态,如果收到的是SYN=1;ACK=0;那么该状态就会被拒绝,因为这是某个外部主机TCP的初始状态。除了关心相关状态信息外,自反ACL还关心目标地址和源地址,这些都是在第一步中内部主机访问外部时所创建的临时条目,只是源和目标作个调换而已。

第三步:如果有外部主机发向内部网络的连接,它将被拒绝。

 

 

关于自反ACL应用的注意事项:

n自反ACL只能由带编号或者命名的扩展ACL实现,带编号或者命名的标准ACL无法实现自反ACL的功能。

n自反ACL的访问语句是临时的,它由会话的开始而开始,当会话结束,临时的访问条目也将自动删除。

n自反ACL并不可以直接应用到某个接口上,它被嵌入到某个具体的扩展ACL中,然后将这个扩展的ACL应用到某个接口,所以自反ACL不存在隐式拒绝语句deny ip any any,但是承载它嵌入的扩展ACL是存在隐式拒绝语句deny ip any any。

nACL不能应用于会话过程中改变端口的服务,比如:主动FTP,因为主动FTP在会话过程中端口号会发生改变,它使用了两个端口号,21用于FTP的控制消息;20用于FTP数据传输,假设,内部主机主动发送一个FTP的控制会话,目标端口为21,这个状态通常会被自反ACL所识别,并允许数据返回到内部网络,但是,当外部主机进行数据传输时,使用20号端口,主动连接内部网络的主机,这会被自反ACL所拒绝,解决的方案有两种,一种是使用被动FTP,被动FTP的数据控制与数据传输使用同一个端口,并且都是由客户端发起,所以能被自反ACL所理解,另一种方案就是使用比自反ACL更高级的控制方案CBAC基于上下文内容控制的ACL,也叫做基于IOS的防火墙。关于主动FTP与被动FTP的更多信息,请参看本书的第四章理解并取证网络协议的工作原理。

 

 

演示:自反ACL的配置

 

演示目标:配置自反ACL。

演示环境:使用描述自反ACL工作过程中的图10.25来作为该实验的演示环境。

演示背景:在路由器R1上完成自反ACL的配置,然后外部主机主动与内部主机通信,观察通信的结果,并理解出现这种通信结果的依据,然后由主机主动访问外部主机,观察通信结果,理解这种通信结果的依据。

演示步骤:

第一步:在路由器R1上配置自反ACL,具体配置如下所示:

R1(config)#ip access-list extended in-to-out建立一个叫做in-to-out命名扩展ACL

R1(config-ext-nacl)#permit ip any any reflect ccna timeout 60

建立一个叫做叫ccna的自反ACL,permit ip any any指示审计任意源地址和目标地址的IP流量,或者叫做申明要审计的条件,临时列表将根据这个审计条件来建立,reflect是建立自反ACL的关键字,ccna是所建立自反ACL的名称,你可以根据自身需求,命名为任何具有标识性意义的名称,timeout 60 指示自反ACL的空闲超时值。

 

注意:上述所定义的ACL事实上是定义了一个自反ACL的一个审计条件,并不是真实阻挡外部流量的语句。

R1(config)#ip access-list extended out-to-in * 建立一个叫做out-to-in命名扩展ACL。

R1(config-ext-nacl)#evaluate ccna

根据一个名叫ccna的自反ACL所建立的临时审计条目来过滤从外部到内部的数据流量。

注意:上述所定义的ACL才是真正阻挡从外部进入到内部流量的数据包,具体来允许哪些数据通过,需要ccna这个自反ACL的临时条目来确定,默认将拒绝一切从外到内的主动访问,虽然,ccna这个自反ACL没有默认拒绝,但是out-to-in这个命名的扩展ACL是具备隐式拒绝语句的,如果你需要明确允许外部网络可以主动访问内部的某些服务,就使用传统ACL在evaluate ccna语句前进行显式申明。

 

R1(config)#interface e1/1

R1(config-if)#ip access-group in-to-out out * 应用审计流量的ACL

R1(config-if)#ip access-group out-to-in in * 应用过滤数据包的ACL

 

 

注意:在使用自反ACL时通常会存在两个扩展的传统ACL,一个用于申明流量审计的条件,比如:上述演示环境的in-to-out;一个用于根据自反的临时条目来过滤进入内部的数据流量,比如:上述演示环境的out-to-in。关于申明流量审计的ACL可以用于路由器的内部接口的in方向,也可以用于外部接口的out方向,而真正的过滤ACL需要应用到外部接口的in方向。

 

 

第二步检查自反ACL的效果与生效状态首先在外部主机192.168.3.2上发起对内部主机192.168.2.2ping结果如下10.26所示外部主机无法主动与内部主机通信。现在可以通过在路由器R1上执行showip access-lists如下图10.27所示,除了申明的审计条件外,暂时没有任何自反临时条目形成,所以外部主机不能访问内部主机。

012514608.png

现在在内部主机192.168.2.2上去ping外部主机192.168.3.2,并且去访问外部主机上的一个共享文件夹,这个过程是由内部主动向外部发起的,那么根据自反ACL的原则,内部主机将成功获得由外部返回的会话,此时,再到路由器R1上去查看ACL的状态如下图10.28所示允许了192.168.3.2的ICMP会话,以及共享会话的返回流量进入内部网络,并且空闲超时器开始倒计时。012558796.png