访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。 ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过
为什么使用访问控制
ACL作为一个过滤器,设备通过应用ACL来阻止和允许特定流量的流入和流出,如果没有它,任何流量都会自由流入和流出,使得网络容易受到攻击。
ACL可以做什么?
借助ACL,可以实现以下功能:
ACL的每一条规则都会允许或者阻止特定的流量,在定义一条合理的ACL规则之前,需要了解其基本组成。
随着ACL技术的发展,其种类越来越丰富,根据其不同的规则和使用场景,常用的可分为以下几类:
基本ACL
基本ACL规则只包含源IP地址,对设备的CPU消耗较少,可用于简单的部署,但是使用场景有限,不能提供强大的安全保障。
高级ACL
相较于基本ACL,高级ACL提供更高的扩展性,可以对流量进行更精细的匹配。通过配置高级ACL,可以阻止特定主机或者整个网段的源或者目标。除此之外,还可以使用协议信息(IP、ICMP、TCP、UDP)去过滤相应的流量。
二层ACL
在公司的内部网络中,想对特定的终端进行访问权限控制,这时就需要二层ACL。使用二层ACL,可以根据源MAC地址、目的MAC地址、802.1p优先级、二层协议类型等二层信息对流量进行管控。
用户自定义ACL
用户自定义ACL根据报文头、偏移位置、字符串掩码和用户自定义字符串来定义规则,即以报文头为基准,指定从报文的第几个字节开始与字符串掩码进行“与”操作,并将提取出的字符串与用户自定义的字符串进行比较,对IPv4报文进行过滤。用户自定义ACL比基本ACL、高级ACL和二层ACL提供了更准确、丰富、灵活的规则定义方法
用户ACL
由于企业内部同部门的工作人员的终端不在同一个网段难以管理,需要将其纳入一个用户组,并对其用户组进行访问权限管理,这时候就需要用户ACL。用户ACL在高级ACL的基础上增加了用户组的配置项,可以实现对不同用户组的流量管控。
ACL | ACL编号 |
---|---|
基本ACL | 2000~2999 |
高级ACL | 3000~3999 |
二层ACL | 4000~4999 |
用户自定义ACL | 5000~5999 |
用户ACL | 6000~6031 |
ACL的使用分为两个步骤:
2. 将ACL应用在相应的设备接口的特定方向(in/out)上。
规则设置完成后,需要将ACL应用在设备的接口上才能正常工作。因为所有的路由和转发决 策都是由设备的硬件做出的,所以ACL语句可以更快地执行
ACL的匹配机制
ACL规则的匹配遵循”一旦命中即停止匹配”的机制。当ACL处理数据包时,一旦数据包与某条ACL规则匹配,就会停止匹配,设备根据该条匹配的语句内容决定允许或者拒绝该数据包。如果数据包内容与ACL语句不匹配,那么将依次使用ACL列表中的下一条语句去匹配数据包直到列表的末尾。一般在ACL的列表末尾会有一条隐式的拒绝所有的语句,所以数据包与所有的规则都不匹配的情况下会被直接拒绝。此时设备不会将此数据包流入或流出接口,而是直接将其丢弃。