ACL(Access Control List)-访问控制列表
step-步长
wildcard-通配符
inbound-入站
outbound-出站
背景
随着网络的飞速发展,网络安全和网络服务质量QoS(Quality of Service)问题日益突出。
1)园区重要服务器资源被随意访问,园区机密信息容易泄露,造成安全隐患。
2)Internet病毒肆意侵略园区内网,内网环境的安全性堪忧。
3)网络带宽被各类业务随意挤占,服务质量要求最高的语音、视频业务的带宽得不到保障,造成用户体验差。
因此提高网络安全性和服务质量迫在眉睫,我们需要对网络进行控制。比如,需要借助一个工具帮助实现一些流量的过滤。
概述
ACL是由permit或deny语句组成的一系列有顺序的规则的集合;它通过匹配报文的相关字段实现对报文的分类。
ACL是能够匹配一个IP数据包中的源IP地址、目的IP地址、协议类型、源目的端口等元素的基础性工具;ACL还能够用于匹配路由条目,通过ACL可以实现对网络中报文流的精确识别和控制,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。
ACL的组成
ACL编号:在网络设备上配置ACL时,每个ACL都需要分配一个编号,称为ACL编号,用来标识ACL。不同分类的ACL编号范围不同,这个后面具体讲。
规则:前面提到了,一个ACL通常由若干条“permit/deny”语句组成,每条语句就是该ACL的一条规则。
规则编号:每条规则都有一个相应的编号,称为规则编号,用来标识ACL规则。可以自定义,也可以系统自动分配。ACL规则的编号范围是0~4294967294,所有规则均按照规则编号从小到大进行排序。
动作:每条规则中的permit或deny,就是与这条规则相对应的处理动作。permit指“允许”,deny指“拒绝”,但是ACL一般是结合其他技术使用,不同的场景,处理动作的含义也有所不同。
比如:ACL如果与流量过滤技术结合使用(即流量过滤中调用ACL),permit就是“允许通行”的意思,deny就是“拒绝通行”的意思。
匹配项:ACL定义了极其丰富的匹配项。例子中体现的源地址,ACL还支持很多其他规则匹配项。例如,二层以太网帧头信息(如源MAC、目的MAC、以太帧协议类型)、三层报文信息(如目的地址、协议类型)以及四层报文信息(如TCP/UDP端口号)等。
ACL的分类与标识
基于ACL规则定义方式的分类
分类 |
编号范围 |
规则定义描述 |
基本ACL |
2000~2999 |
仅使用报文的源IP地址、分片信息和生效时间段信息来定义规则。 |
高级ACL |
3000~3999 |
可使用IPv4报文的源IP地址、目的IP地址、IP协议类型、ICMP类型、TCP源/目的端口号、UDP源/目的端口号、生效时间段等来定义规则。 |
二层ACL |
4000~4999 |
使用报文的以太网帧头信息来定义规则,如根据源MAC地址、目的MAC地址、二层协议类型等。 |
用户自定义ACL |
5000~5999 |
使用报文头、偏移位置、字符串掩码和用户自定义字符串来定义规则。 |
用户ACL |
6000~6999 |
既可使用IPv4报文的源IP地址或源UCL(User Control List)组,也可使用目的IP地址或目的UCL组、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。 |
基于ACL标识方法的分类
分类 |
规则定义描述 |
数字型ACL |
传统的ACL标识方法。创建ACL时,指定一个唯一的数字标识该ACL。 |
命名型ACL |
通过名称代替编号来标识ACL。 |
ACL的匹配机制
ACL的匹配顺序
华为设备支持两种匹配顺序:自动排序(auto模式)和配置顺序(config模式)。缺省的ACL匹配顺序是config模式。
自动排序,是指系统使用“深度优先”的原则,将规则按照精确度从高到低进行排序,并按照精确度从高到低的顺序进行报文匹配。
配置顺序,系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配如果后面又添加了一条规则,则这条规则会被加入到相应的位置,报文仍然会按照从小到大的顺序进行匹配。
注意:ACL技术总是与其他技术结合在一起使用的,因此,所结合的技术不同,“允许 (permit)”及“拒绝 (deny)”的内涵和作用也会不同。例如,当ACL技术与流量过滤技术结合使用时,permit就是“允许通行”的意思,deny就是“拒绝通行”的意思。
ACL的配置位置
入站方向:
出站方向
基本ACL的基础配置命令
1. 创建基本ACL
[Huawei] acl [ number ] acl-number [ match-order config ]
使用编号(2000~2999)创建一个数字型的基本ACL, 并进入基本ACL视图。
[Huawei] acl name acl-name { basic| acl-number} [ match-orderconfig ]
使用名称创建一个命名型的基本ACL,并进入基本ACL视图。
2.配置基本ACL的规则
[Huawei-acl-basic-2000] rule [ rule-id] { deny | permit } [ source { source-address source-wildcard | any } |
time-range time-name ]
在基本ACL视图下,通过此命令来配置基本ACL的规则。
高级ACL的基础配置命令
1.创建高级ACL
[Huawei] acl [ number ] acl-number [ match-order config ]
使用编号(3000~3999)创建一个数字型的高级ACL,并进入高级ACL视图。
[Huawei] acl name acl-name { advance | acl-number } [ match-orderconfig]
使用名称创建一个命名型的高级ACL,进入高级ACL视图。
2.配置基本ACL的规则
根据IP承载的协议类型不同,在设备上配置不同的高级ACL规则。对于不同的协议类型,有不同的参数组合。
当参数protocol为IP时,高级ACL的命令格式为
rule [ rule-id] { deny | permit } ip [ destination {destination-address destination-wildcard| any } | source { source-
addresssource-wildcard | any } | time-rangetime-name | [ dscp dscp |[ tos tos| precedenceprecedence] ]]
在高级ACL视图下,通过此命令来配置高级ACL的规则。
当参数protocol为TCP时,高级ACL的命令格式为
rule [ rule-id] { deny | permit }{ protocol-number| tcp} [ destination { destination-addressdestination-wildcard| any }
| destination-port { eg ,port | gt port | ltport | range port-start port-end }| source { source-address source-wildcard|
any} | source-port {eqport | gt port |It port | range port-startport-end } I tcp-flag { ack | fin | syn}* | time-range
time-name]★
在高级ACL视图下,通过此命令来配置高级ACL的规则。
配置实例
案例1:使用基本ACL过滤数据流量
需求:
在Router上部署基本ACL后,ACL将试图穿越Router的源地址为192.168.1.0/24网段的数据包过滤掉,并放行其他流量,从而禁止192.168.1.0/24网段的用户访问Router右侧的服务器网络
拓扑图:
配置步骤:
如图完成路由器的IP地址和路由相关配置。
创建基本ACL 2000并配置ACL规则,拒绝192.168.1.0/24网段的报文通过,允许其他网段的报文通过。
[Router] acl 2000
[Router-acl-basic-2000] rule deny source 192.168.1.0 0.0.0.255
[Router-acl-basic-2000] rule permit source any
3. 配置流量过滤
[Router] interface GigabitEthernet 0/0/1
[Router-GigabitEthernet0/0/1] traffic-filter inbound acl 2000
案例2:使用高级ACL限制不同网段的用户互访
需求:
某公司通过Router实现各部门之间的互连。为方便管理网络,管理员为公司的研发部和市场部规划了两个网段的IP地址。
现要求Router能够限制两个网段之间互访,防止公司机密泄露
拓扑图:
配置步骤:
如图完成路由器的IP地址和路由的相关配置。
创建高级ACL 3001并配置ACL规则,拒绝研发部访问市场部的报文通过。
[Router] acl 3001
[Router-acl-adv-3001] rule deny ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
创建高级ACL 3002并配置ACL规则,拒绝市场部访问研发部的报文通过。
[Router] acl 3002
[Router-acl-adv-3002] rule deny ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255