文/关天敏
ACL应用技术与配置实例
文/关天敏
ACL,是访问控制列表(Access Control Lists)的简称。在实际的网络环境中,各种上层访问都是通过报文交互进行的,为了进行访问控制,就通过ACL设置一系列过滤规则来控制报文转发和过滤,从而达到目的,所以称之为访问控制列表。本文阐析了ACL功能的工作机制,说明ACL功能上的特点及其应用。
在实际校园网络环境中,各种上层访问应用,归根结底是通过PC和服务器之间的报文交互进行的,而报文则是通过交换机,路由器等各种网络设备进行传输的。随着网络的普及,网络安全问题日益突出,如各种针对交换机的恶意攻击、病毒肆虐等等,对正常的网络通讯造成很大影响。以上种种原因使得需要对网络中的数据流进行监控、控制,确保网络运行安全,或将安全风险降低到最低程度。
ACL根据使用方式的不同主要分为两大类型:安全ACL和QoS ACL。本文主要介绍安全ACL。
安全ACL主要分为两大类型:基于接口的ACL和基于VLAN的ACL。
基于接口的ACL,顾名思义,ACL的运用对象是接口,这里的端口包含的种类很多,主要分为二层接口和三层接口。运用于二层接口的ACL又被称为Port ACL或基于二层接口的ACL,运用于三层接口的ACL又称为基于三层接口的ACL。二层接口主要包括Access口,Trunk口,L2 AP口。三层接口主要包括Routed Port,SVI口,L3 AP口。不同层次的交换机所支持的接口类型范围不同。
基于VLAN的ACL,ACL的运用对象是VLAN,又称为VACL。简单的说就是如果一个VLAN运用上一个ACL,当有报文进入或者离开这个VLAN时,就要受到该ACL的过滤。下文详细介绍原理。
ACL的主要功能就是过滤报文,那ACL是根据什么来区分哪些报文需要过滤,哪些不需要的呢?就是根据报文中的特定信息。这些特定信息一般是报文中的IP,MAC,二层协议类型,三层协议类型,TOS,VID等等。
根据可以匹配的信息的不同,ACL有以下6种类型:IP 标准ACL,IP 扩展ACL,MAC 扩展ACL,EXPERT(专家级) ACL,用户自定义 ACL(ACL80),IPV6 ACL(过滤IPV6报文)。
ACL过滤报文原理
无论是基于端口的ACL,还是基于VLAN的ACL,其工作原理相同。
ACL是由一系列ACE组成,每个ACE都有一个唯一的序列号,代表它的优先级,当交换机收到一报文,进行解析后,就按照ACE的优先级逐一匹配,若报文内容和某个ACE中的内容匹配,则按照相应的动作处理,若不符合,则匹配下一条ACE,直到匹配到合适的ACE。若报文符合某个ACE定义的内容,则报文不再匹配这条ACE之后的所有ACE。请看以下ACL:
这条ACL具有两个ACE,但这两个ACE对同一种报文的动作却是相反的。同样是针对源IP是192.168.1.1的IP报文,一条是允许转发,另一条是过滤该类型报文。这两条ACE唯一的区别就是它们的优先级。
当交换机收到源IP是192.168.1.1的IP报文时,ACL按照ACE的优先级进行匹配,此时先匹配序列号为10的ACE,发现该报文的内容可以匹配ACE的内容,源IP为192.168.1.1,此时查看动作,为deny,所以该报文被过滤,不再进行匹配,所以序列号为20的ACE没有对该报文进行匹配。
当交换机又收到源IP是1.1.1.1的IP报文时,ACL还是按照ACE的优先级进行匹配,先匹配序列号为10的ACE,发现报文内容和ACE中的不符合,按照原理,查看下一条ACE,发现内容还是不匹配,但此时ACL中已没有ACE了,怎么办?这里要注意,当应用一个ACL时,交换机会自动在ACL的末尾加上一条丢弃所有报文的ACE,而且该ACE优先级最低,是最后才匹配的,这样也提高了安全性,因此如图所示的ACL,最后还有这样一条ACE:deny ip any any,且优先级最低,因此此时交换机收到的源IP为1.1.1.1的报文,最后匹配这条ACE,内容可以匹配,因为该ACE针对所有的IP报文,此时查看动作是deny,所以该报文被丢弃。
由于ACE是按照优先级匹配的,此时添加一条序列号小于10的ACE。
动态添加了一条序列号为1的ACE:permit ip any any,所以当交换机收到任意IP报文时,由于该ACE的优先级最高,最优先匹配,所以所有IP报文都允许转发,而不会去匹配后面两条ACE。
ACE之后都可以匹配一个时间戳,而后ACL会根据系统的时钟来确认该ACE是否能生效,如果该ACE的时间戳中规定的时间和系统时钟不符合,则该ACE就不生效,也就是不进行匹配,如果相符,则进行匹配,匹配时也是按照优先级关系进行,原理相同。如下所示:
如上所示,ACE:permit ip host 1.1.1.1 any所对应的时间戳week_day和系统时间相符,则该ACE生效,show信息显示状态为:active,而ACE:deny ip any host 2.2.2.2所对应时间戳week_end和系统时间不符合,则不生效,show信息显示状态为:inactive,运用时该ACE就不参与过滤报文。
安全ACL应用类型
安全ACL分为基于接口和基于VLAN两种应用。
基于接口的ACL应用,ACL的运用对象是接口,上文提到主要有六种接口类型。当ACL运用到接口时,有两种选择:in和out,即输入方向和输出方向,这里所谓的方向是针对接口而言。如图所示:
In和out说明ACL起作用的位置。In方向说明当报文从外界网络进入该接口时,要受到ACL的检查,过滤。Out方向说明当报文从该接口转发,准备前往外界网络时,要受到ACL的检查,过滤。
基于VLAN的ACL应用,ACL的运用对象是VLAN,同样基于VLAN的ACL也有in和out方向,但和基于接口的ACL应用的in和out不同的是,这里所谓的in和out方向是针对VLAN而言的,不是针对接口而言的。如图1所示:
若在VLAN 1上应用一个ACL,当报文从属于VLAN 1的接口进入交换机,相当于进入VLAN 1,就是in方向,此时要受到该VACL的过滤,检查。当报文从属于VLAN 1的接口转发时,由于该端口属于VLAN 1,不算是离开VLAN 1,因此不受到VACL过滤。当报文通过路由,从属于VLAN 1的接口路由到属于VLAN 2的接口时,此时相当于离开VLAN 1,就是out方向,要受到VACL的过滤。
当VLAN应用一个ACL,那么进入VLAN和离开VLAN的报文都受到VACL的限制,过滤。这也和基于接口的ACL不同。
基于VLAN的ACL容易和应用在三层接口SVI口上的ACL混淆。这两者的层次不同,基于VLAN的ACL,由于VLAN是二层概念,所以主要过滤VLAN所属二层接口收到的报文。而SVI是一个三层逻辑接口,应用在SVI上的ACL是基于三层接口的ACL,主要过滤通过路由转发的报文。若VLAN是一个Private VLAN,则无法运用VACL和基于SVI的ACL,若VLAN是Super VLAN,则和普通VLAN相同。
图1 in方向和out方向概念
图2 基于VLAN应用的原理图
以典型的高校解决方案为例。在该方案中,以锐捷S26系列作为接入层交换机连接各院系PC,各院系接入层交换机S26通过Trunk口上连汇聚层交换机S57,S57上有不同VLAN分别隔离各个院系。锐捷S86作为核心层交换机下连S57进行高速转发,并连接各种服务器,如FTP、HTTP服务器等,最后通过防火墙与Internet相连。拓扑如图2。
校园网对ACL应用通常有以下需求:
1.S26所连接各院系PC,一个接口只允许一台合法PC接入,不允许其他设备接入。
2.各个院系间不能互相访问和共享文件,即不允许各VLAN间数据流通过。
3.Internt病毒无处不在,需要封堵各种病毒常用端口,以保障内网安全。
4.只允许校园内部PC对校园服务器进行访问,拒绝外部PC的访问。
5.各院系PC必须在不同的VLAN中,以减少广播,多播数据流对网络的影响。
针对以上需求,我们可以通过以下具体配置,设置ACL应用:
核心层交换机S86关键配置
汇聚层交换机S57关键配置
接入层交换机S26关键配置
通过实际测试表明,锐捷交换机的ACL功能,可以有效防止病毒、防止恶意攻击、控制VLAN间数据流、控制服务器的访问、控制用户接入等,可以满足应用的需求。
(作者单位为集美大学网络中心)