目录
一、ACL介绍
1.1 ACL简介
1.2 ACL组成
1.3 ACL分类
1.4 ACL通配符
1.5 ACL作用
1.6 如何使用ACL
1.7 ACL应用场景
二、高级ACL配置
2.1 组网拓扑
2.2 配置思路
2.3 配置步骤
2.4 验证结果
一、ACL介绍
1.1 ACL简介
ACL(Access Control Lists,访问控制列表)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。访问控制列表被广泛地应用于路由器和三层交换机,借助于访问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全。
访问控制列表ACL是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源IP地址、目的IP地址、源端口、目的端口、协议类型等。
ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。
1.2 ACL组成
ACL的每一条规则都会允许或者拒绝特定的流量,在定义一条合理的ACL规则之前,需要了解其基本组成。
1. ACL标识:使用数字或者名称来标识ACL。
使用数字标识ACL:不同的类型的ACL使用不同的数字进行标识。关于每类ACL编号的详细介绍, 请参见ACL的分类。
使用名称标识ACL:可以使用字符来标识ACL,就像用域名代替IP地址一样,更加方便记忆。
2. ACL规则:即描述匹配条件的判断语句。
规则编号:用于标识ACL规则,一条ACL中的每一条规则都有一个相应的编号,称为规则编号(rule-id)。
- 缺省情况下,报文均按照规则编号从小到大的顺序与规则进行匹配
- 缺省情况下,设备会在创建ACL的过程中自动为每一条规则分配一个编号
- 缺省情况下,规则编号的步长为5。
- 步长的大小反映了相邻规则编号之间的间隔大小。间隔的存在,实际上是为了便于在两个相邻的规则之间插入新的规则。
动作:包括permit (允许)、deny(拒绝)两种动作,表示设备对所匹配的数据包接受或者丢弃。
匹配项:ACL定义了极其丰富的匹配项。包括生效时间段、IP协议(ICMP、TCP、UDP等)、源 /目的地址以及相应的端口号(21、23、80等)。关于每种匹配项的详细介绍,请参见ACL的常用匹配项。

1.3 ACL分类
ACL根据其不同的规则和使用场景分成了不同的类型,分别是基本ACL、高级ACL、二层ACL、用户自定义ACL,其中应用最广泛的是基本ACL和高级ACL。
配置ACL时,每一个ACL分配一个编号,称为ACL编号。基本ACL、高级ACL、二层ACL、用户自定义ACL的编号范围分别为2000~2999、3000~3999、4000~4999、5000~5999。配置ACL时,ACL的类型应该与相应的编号范围保持一致,具体介绍如下:
|
ACL 类型 |
编号范围 |
适用IP协议版本 |
规则制定依据 |
|
基本ACL |
2000~2999 |
IPV4 |
只能匹配报文的源 IP 地址 |
|
IPV6 |
只能匹配报文的源 IPV6 地址 |
||
|
高级ACL |
3000~3999 |
IPV4 |
能匹配报文的源 IP 地址、目的 IP 地址、源端口号、目的端口号、IP承载的协议类型、协议的特性等三四层信息指定匹配规则 |
|
IPV6 |
能匹配报文的源 IPV6 地址、目的 IPV6 地址、源端口号、目的端口号、IPV6承载的协议类型、协议的特性等三四层信息指定匹配规则 |
||
|
二层ACL |
4000~4999 |
IPV4、IPV6 |
能匹配报文的源MAC地址、目的MAC地址、802.1Q优先级、二层协议类型等二层信息指定匹配规则 |
1.4 ACL通配符
通配符掩码和子网掩码相似,但含义不同,0表示对应位须比较,1表示对应为不比较。
说明:ACL通配符掩码和OSPF反掩码相同,都是用255减去子网掩码就是反掩码。如:192.168.1.130子网掩码255.255.255.128,对应的网络地址为192.168.1.128,ospf取反掩码0.0.0.127,即每一组掩码用255减去128。
|
IP地址 |
通配符掩码 |
地址范围 |
|
192.168.10.1 |
0.0.0.255 |
192.168.10.0/24 |
|
192.168.10.1 |
0.0.3.255 |
192.168.10.0/22 |
|
192.168.10.1 |
0.255.255.255 |
192.0.0.0/8 |
|
192.168.10.1 |
0.0.0.0 |
192.168.10.1 |
|
192.168.10.1 |
255.255.255.255 |
0.0.0.0/0 |
|
192.168.0.1 |
0.0.2.255 |
192.168.0.0/24和192.168.2.0/24 |
1.5 ACL作用
ACL作为一个过滤器,设备通过应用ACL来阻止和允许特定流量的流入和流出,如果没有它,任何流量都会自由流入和流出,使得网络容易受到攻击。
为保证财务数据安全,企业在路由设备上应用ACL可以阻止内网内部研发部门主机对财务服务器的访问,同时允许总裁办公室访问财务服务器。为了保护企业内网的安全,在路由设备上应用ACL可以封堵网络病毒常用的端口,防止Internet上的恶意流量入侵。
ACL可以实现以下功能:
1.6 如何使用ACL
1. 设置相应的ACL规则。
为ACL设置相关规则的时候,需要了解入口流量与出口流量,如下图所示:入口流量指的是进入设备(以路由器为例)接口的流量(无论来源是外部Internet还是内部网络),同理,出口流量指的是从设备接口流出的流量。

当外部Internet访问内部网络时,通过路由器接口2的入口流量,其源IP地址为外部的公网IP;而当内部网络需要访问外部网络时,通过路由器的接口1的入口流量,其源IP地址则为内网的IP。
2. 将ACL应用在相应的设备接口的特定方向(in/out)上。
规则设置完成后,需要将ACL应用在设备的接口上才能正常工作。因为所有的路由和转发决策都是由设备的硬件做出的,所以ACL语句可以更快地执行。
方式一:接口调用示例
ACL的规则写法和路由器保持一致,华为设备需要在物理接口下调用ACL,示例:
Interface g0/0/1
traffic-filter outbound acl 3001
方式二:全局调用示例
[SW] traffic-filter vlan 10 inbound acl 2000
acl 2000只对vlan10生效,类似将acl 2000调用到了vlanif 10接口上。
ACL注意事项:
1)一个接口,同一个方向,只能调用一个ACL
2)一个ACL里可以有多个rule规则,从上往下依次执行
3)数据包一旦被某个rule匹配,就不在继续向下匹配
4)用来做数据包访问控制时,华为设备默认包含放行所有(思科设备默认禁止)
1.7 ACL应用场景
在企业网络中设备进行通信时,需要保障数据传输的安全可靠和网络的性能稳定。访问控制列表ACL(Access Control List)可以定义一系列不同的规则,设备根据这些规则对数据包进行分类,并针对不同类型的报文进行不同的处理,从而可以实现对网络访问行为的控制、限制网络流量、提高网络性能、防止网络攻击等。
二、高级ACL配置
2.1 组网拓扑
内网接入交换机ACC连接的终端设备通过静态方式配置IP地址上网,为了保证内网的安全性,需在接入层交换机封禁22、23、135、136、137、138、139、445、3389等高危端口。

2.2 配置思路
ACL策略封禁高危端口配置思路如下:
2.3 配置步骤
1. 创建高级ACL 3001并配置ACL规则。
[Switch] acl 3001
[Switch-acl-adv-3001] rule 5 deny tcp destination-port eq 22
[Switch-acl-adv-3001] rule 10 deny udp destination-port eq 22
[Switch-acl-adv-3001] rule 15 deny tcp destination-port eq 23
[Switch-acl-adv-3001] rule 20 deny udp destination-port eq 23
[Switch-acl-adv-3001] rule 25 deny tcp destination-port eq 135
[Switch-acl-adv-3001] rule 30 deny udp destination-port eq 135
[Switch-acl-adv-3001] rule 35 deny tcp destination-port eq 136
[Switch-acl-adv-3001] rule 40 deny udp destination-port eq 136
[Switch-acl-adv-3001] rule 45 deny tcp destination-port eq 137
[Switch-acl-adv-3001] rule 50 deny udp destination-port eq 137
[Switch-acl-adv-3001] rule 55 deny tcp destination-port eq 138
[Switch-acl-adv-3001] rule 60 deny udp destination-port eq 138
[Switch-acl-adv-3001] rule 65 deny tcp destination-port eq 139
[Switch-acl-adv-3001] rule 70 deny udp destination-port eq 139
[Switch-acl-adv-3001] rule 75 deny tcp destination-port eq 445
[Switch-acl-adv-3001] rule 80 deny udp destination-port eq 445
[Switch-acl-adv-3001] rule 85 deny tcp destination-port eq 3389
[Switch-acl-adv-3001] rule 90 deny udp destination-port eq 3389
[Switch-acl-adv-3001] rule 2000 permit ip
2. 配置基于ACL 3001的流分类,对匹配ACL 3001的报文进行分类。
[Switch] traffic classifier 3001 //创建流分类
[Switch-classifier-3001] if-match acl 3001 //将ACL与流分类关联
[Switch-classifier-3001] quit
3. 配置流行为3001,动作为允许报文通过(缺省值,不需配置)。
说明:对于ACL规则中的动作permit、deny以及流行为中的动作permit、deny,只要存在一个是deny,匹配报文的最终处理结果就是deny,即丢弃报文。
[Switch] traffic behavior 3001 //创建流行为
[Switch-behavior-3001] statistic enable //使能流量统计功能(可选)
[Switch-behavior-3001] quit
4. 配置流策略3001,将流分类3001与流行为3001关联。
[Switch] traffic policy 3001 //创建流策略
[Switch-trafficpolicy-3001] classifier 3001 behavior 3001 //将流分类3001与流行为3001关联
[Switch-trafficpolicy-3001] quit
5. 在接入交换机所有端口的出入方向应用流策略或者全局应用流策略。
[Switch] interface ranage gigabitethernet 0/0/1 to gigabitethernet 0/0/2
[Switch-GigabitEthernet2/0/1] traffic-policy 3001 inbound //流策略应用在端口入方向
[Switch-GigabitEthernet2/0/1] traffic-policy 3001 outbound //流策略应用在端口出方向
[Switch-GigabitEthernet2/0/1] quit
# 或者在交换机调用全局的出入方向的流策略。
[Switch] traffic-policy 3001 global inbound //流策略全局调用入方向
[Switch] traffic-policy 3001 global outbound //流策略全局调用出方向
2.4 验证结果
# 查看ACL 3001规则的配置信息。
[Switch] display acl 3001
# 查看流分类的配置信息。
[Switch] display traffic classifier user-defined
# 查看流行为的配置信息。
[Switch] display traffic behavior user-defined
# 查看流策略的配置信息。
[Switch] display traffic policy user-defined
# 查看流策略的调用信息。
[Switch] display traffic-policy applied-record
# 查看流策略的应用记录。
display traffic-policy applied-record
# 执行如下命令检测是否配置流量过滤策略
display current-configuration configuration acl-adv
display current-configuration configuration classifier
display current-configuration configuration behavior
display current-configuration configuration trafficpolicy




