ACL

什么是ACL?

访问控制列表ACL是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址,目的地址,端口号等。

ACL本质上是一种报文过滤器,规则是过滤器的滤芯,设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略允许或者阻止该报文通过。

为什么使用ACL?

ACL作为一个过滤器,设备通过应用ACL来阻止和允许特定流量的流入和流出,如果没有它,任何流量都会自由的流入和流出,使得网络容易收到攻击。

如下图所示,为保证财务数据安全,企业在路由设备上应用ACL可以阻止内网内部研发部门主机对财务服务器的访问,同时允许总裁办公室访问财务服务器。为了保护企业内网的安全,在路由设备上应用ACL可以封堵网络病毒常用的端口,防止internet的恶意流量入侵。

 

借助ACL,可以实现以下功能:

1,提供安全访问:企业重要服务器资源被随意访问,企业机密信息容易泄露,造成安全隐患。使用ACL可以指定用户访问特定的服务器,网络与服务,从而避免随意访问的情况。

2 ,防止网络攻击:Internet病毒肆意侵略企业内网,内网环境的安全隐患堪忧。使用ACL可以风度高危端口,从而达成外网流量的阻塞。

3,提高网络带宽利用率:网路带宽被各类业务随意挤占,服务质量要求最高的语音,视频业务的带宽得不到保障,造成用户体验极差。使用ACL实现对网络流量的精确识别和控制,限制部分网络流量从而保障主要业务的质量。

ACL的组成

ACL的每一条规则都允许或者阻止特定的流量,在定义一条合理的ACL规则之前,需要了解其基本组成。

1,ACL标识:使用数字或者名称来标识ACL。

      a,使用数字标识ACL:不同的类型ACL使用不同的数字进行标识。

      b,使用名称标识ACL:可以使用字符标识ACL,就像用域名代替IP地址一样,更加方便记忆。

2,规则:即描述匹配条件的判断语句。

      a,规则编号:用于标识ACL规则,所有规则均按照规则编号从小到大进行排序。

      b,动作:包括permit/deny两种动作,表示设备所匹配的数据包接收或者丢弃。

      c,匹配项:ACL定义了及其丰富的匹配项。包括生效时间段,IP协议(ICMP,TCP,UDP),源/目的地址以及相应的端口号(21,23,80等)。

ACL的分类

基本ACL

基本ACL规则只包含IP源地址,对设备的CPU消耗较少,可用于简单的部署,但是使用场景有限,不能提供强大的安全保障。

高级ACL

相较于基本ACL,高级ACL提供更高的扩展性,可以对流量进行更精细的匹配。通过配置高级ACL,可以阻止特定主机或者整个网端的源或者目标。除此之外,还可以使用协议信息(IP,ICMO,TCP,UDP)去过滤相应的流量。

二层ACL

在公司的内部网络中,想对特定的终端进行访问权限控制,这时就需要二层ACL。使用二层ACL,可以根据MAC地址,目的MAC地址,802.1p优先级,二层协议类型等二层信息对流量进行管控。

用户ACL

由于企业内部同部门的工作人员的终端不在同一个网段难以管理,需要将其纳入一个用户组,并对其用户进行访问权限管理,这时候就需要用户ACL,用户ACL在高级ACL的基础上增加了用户组的配置项,可以实现对不同用户组的流量管控。

      

基本ACL

高级ACL

二层ACL

用户ACL

ACL标识

  

ACL编号

2000~2999

3000~3999

4000~4999

6000~6031

  

ACL名称

Y

Y

Y

Y

规则

 

规则编号

-

Y

Y

Y

Y

动作

permit/deny

Y

Y

Y

Y

匹配项

 

生效时间段

Y

Y

Y

Y

IP协议类型

-

Y

Y

Y

IPv4

Y

Y

-

Y

IPv6

Y

Y

-

Y

源IP地址

Y

Y

-

Y

源MAC地址

-

-

Y

-

源端口号

-

Y

Y

Y

目的地址

-

Y

-

Y

目的MAC地址

-

-

Y

-

目的端口号

-

Y

Y

Y

用户组

-

-

-

Y

如何使用ACL?

ACL的使用分为两个步骤:

1设置相应的ACL规则:

为ACL设置相关规则的时候,需要了解入口流量与出口流量
当外部internet访问内部网络时,通过路由器接口2的入口流量,其源IP地址为外部的公网IP;
当内部网络需要访问外部网络时,通过路由器的接口1的入口流量,其源IP地址则为内网的IP

 

 2,将ACL应用在相应的设备接口的特定方向(in/out)上。规则设置完成后,需要将ACL因公在设备的接口上才能正常工作。以为所有的路由和转发决策都是由设备的硬件做出的,所以ACL语句可以更快的执行。

匹配机制

 

 ACL规则的匹配遵循”一旦命中即停止匹配“的机制。当ACL处理数据包时,一旦数据包与某条ACL规则匹配,就会停止匹配,设备根据该条匹配的语句内容决定允许或拒绝该数据包。如果数据包内容与ACL语句不匹配,那么将依次使用ACL列表中的下一条语句去匹配数据包直到列表的末尾。一般在ACL的列表末尾会有一条隐式的拒绝所有的语句,所以数据包与所有的规则都不匹配的情况下会被直接拒绝,此时设备不会将此数据包流入或流出接口,而是直接将其丢弃。

ACL的应用场景

在NAT中使用ACL

通过NAT的端口映射可以使得外网访问内部网络。考虑到内部的网络安全,不可能允许所有的外部用户访问内部网络,这时可以设置ACL规则并应用在企业路由器上,使得特定的外网用户可以访问内部网络。

 

 如上图所示,当公网主机想建立与内网主机的通信时,其法向内部网络主机的流量经过NAT设备时,设备利用ACL流量进行过滤,阻断了PC4对PC2的访问,同时经过PC3对PC1的访问

在防火墙中使用ACL

防火墙用在内外网络边缘处,防止外部网络对内部网络的入侵,也可以用来保护网络内部大型服务器和重要的资源(如数据)。由于ACL直接在设备的转发硬件中配置。在防火墙中配置ACL在保护网络安全的同时不会影响服务器的性能。

 

 在QoS中使用ACL限制用户互访

ACL应用在QoS的六策略中,可以实现不同网段用户之间权限的限制,从而避免用户之间随意访问形成安全隐患。

 

 如上图所示,某公司财务部和市场部规划了两个网段的IP地址。为了避免两个部门之间互相访问造成公司机密的泄露。可以在两个部门连接Router的接口的方向上应用绑定ACL的六策略。从而禁止两个部门的互访

 

匹配规则

 

 一条ACL由多条rule规则组成时,这些规则可能存在重复或矛盾的地方。例如,在一条ACL中先后配置以上两条规则。

对于目的IP=10.1.1.1的报文,如果系统先将deny规则与其匹配,则该报文会被拒绝通过。相反,如果系统先将permint规则与其匹配,则该报文会得到允许通过。

因此,对于规则之间存在重复或矛盾的情况,报文的匹配结果与ACL的匹配顺序时息息相关的。

设备支持两种ACL匹配顺序:配置顺序(config模式)和自动排序(auto模式)。缺省的ACL匹配顺序时config模式。

配置顺序:即系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配

1,如果配置规则时指定了规则编号,则规则编号越小,规则插入位置越靠前,该规则越先被匹配。

2,如果匹配规则时未指定规则编号,则由系统自动为其分配一个编号。该编号是一个大于当前ACL内最大规则编号且时步长整数倍的最小整数,因此该规则会被最后匹配。

自动排序:是指系统使用”深度优先“的原则,将规则按照精确度从高到低进行排序,并按照精确度从高到底的顺序进行报文匹配。规则中定义的匹配项限制越严格,规则的精确度就越高,即优先级越高,系统越先匹配。各类ACL的”深度优先“顺序匹配原则如下表

表1 “深度优先”匹配原则

ACL类型

匹配顺序(从高到低)

基本ACL&ACL6

  1. VPN实例。
  2. 源IP地址范围,源IP地址范围小(IP地址通配符掩码中“0”位的数量多)的规则优先。
  3. 规则编号,规则编号小的优先。

高级ACL&ACL6

  1. VPN实例
  2. 协议范围,指定了IP协议承载的协议类型的规则优先。
  3. 源IP地址范围,源IP地址范围小(IP地址通配符掩码中“0”位的数量多)的规则优先。
  4. 目的IP地址范围,目的IP地址范围小(IP地址通配符掩码中“0”位的数量多)的规则优先。
  5. 四层端口号(TCP/UDP端口号)范围,四层端口号范围小的规则优先。
  6. 规则编号,规则编号小的优先。

二层ACL

  1. 二层协议类型通配符掩码,通配符掩码大(协议类型通配符掩码中“1”位的数量多)的规则优先。
  2. 源MAC地址范围,源MAC地址范围小(MAC地址通配符掩码中“1”位的数量多)的规则优先。
  3. 目的MAC地址范围,目的MAC地址范围小(MAC地址通配符掩码中“1”位的数量多)的规则优先。
  4. 规则编号,规则编号小的优先。

用户自定义ACL

用户自定义ACL规则的匹配顺序只支持配置顺序,即规则编号从小到大的顺序进行匹配。

用户ACL&ACL6

  1. 协议范围,指定了IP协议承载的协议类型的规则优先。
  2. 源IP地址范围。如果规则的源IP地址均为IP网段,则源IP地址范围小(IP地址通配符掩码中“0”位的数量多)的规则优先,否则,源IP地址为IP网段的规则优先于源IP地址为UCL组的规则。
  3. 目的IP地址范围。如果规则的目的IP地址均为IP网段,则目的IP地址范围小(IP地址通配符掩码中“0”位的数量多)的规则优先,否则,目的IP地址为IP网段的规则优先于目的IP地址为UCL组的规则。
  4. 四层端口号(TCP/UDP端口号)范围,四层端口号范围小的规则优先。
  5. 规则编号,规则编号小的优先。

在自动排序的ACL中配置规则时,不允许自行指定规则编号。系统能自动识别出该规则在这条ACL中对应的优先级,并为其分配一个适当的规则编号。

例如,在auto模式的高级ACL3001中,先后匹配以下两条规则:

 

 两条规则均没有带VPN实例,且协议范围,源IP地址规范相同,所以根据上表中高级ACL的深度优先匹配原则,接下来需要进一步比较规则的目的IP地址范围。由于permit规则指定的目的地址范围小于deny规则,所以permit规则的精确度更高,系统为其分配的规则编号更小。配置完上述两条规则后,ACL3001的规则排序如下:

 

 此时,如果再插入一条新的规则rule deny ip destination 10.1.1.1 0(目的IP地址范围是主机地址,优先级高于以上两条规则),则系统将按照规则的优先级关系,重新为各规则分配编号。插入新规则后,ACL3001新的规则排序如下:

 

相比config模式的ACL,auto模式ACL的规则匹配顺序更为复杂,但是auto模式ACL有其独特的应用场景。例如,在网络部署初始阶段,为了保证网络安全性,管理员定义了较大的ACL匹配范围,用于丢弃不可信网段范围的所有IP报文。随着时间的推移,实际应用中需要允许这个大范围中某些特征的报文通过。此时,如果管理员采用的是auto模式,则只需要定义新的ACL规则,无需再考虑如何对这些规则进行排序避免报文被误丢弃

 

posted @ 2022-06-09 10:35  付华建  阅读(661)  评论(0编辑  收藏  举报