访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。
ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。
ACL 基本原理
此处均转自华为官网中AR系列配置指南——ACL 配置,点击此处查看完整内容。
ACL 的组成
ACL由一系列规则组成,通过将报文与ACL规则进行匹配,设备可以过滤出特定的报文。ACL的结构组成,如下图所示:
- ACL编号:使用数字或者名称来标识ACL
- 使用数字标识ACL:不同的类型的ACL使用不同的数字进行标识。
- 使用名称标识ACL:可以使用字符来标识ACL,就像用域名代替IP地址一样,更加方便记忆。
- 规则:即描述匹配条件的判断语句
- 规则编号:用于标识ACL规则,所有规则均按照规则编号从小到大进行排序
- 动作:包括permit/deny两种动作,表示设备对所匹配的数据包接受或者丢弃。
- 匹配项:ACL定义了极其丰富的匹配项。包括生效时间段、IP协议(ICMP、TCP、UDP等)、源/目的地址以及相应的端口号(21、23、80等)。
ACL 分类
基于ACL规则定义方式的划分如下。
随着ACL技术的发展,其种类越来越丰富,根据其不同的规则和使用场景,常用的可分为以下几类:
- 基本ACL
- 高级ACL
- 二层ACL
- 用户ACL
ACL 匹配机制
配置示例
如下图,该网络可以正常互相通信,PC和Client可达任意网段。图中橙色部分是我们要去实现的功能,提前完成的配置如下:
- PC1和Client1各属VLAN10和VLAN20下。
- 借助AR1实现单臂路由,使PC1和Client1互相访问。
- 蓝色框区域采用OSPF,同属区域area0。
检查相关配置
(1) PC1 访问各网段设备
(2) Client1 访问 PC1
配置相应的 ACL 规则
为ACL设置相关规则的时候,需要了解流量数据的出口和入口,若我们假设配置的单臂路由那一块为我们的内部网络,那么访问外网时R2的g0/0/0
就相当流量的入接口(inbound),其余两个接口就是出接口(outbound)。为了方便实验,我们将在 R2 的 g0/0/0
接口下进行ACL配置。
查看要求我们知道此时需要匹配两条规则且基本ACL是无法满足第二条规则,于是我们采用高级ACL,值得注意的是一个接口下只能运行一个ACL列表,不能同时运行多个。所以我们将这两条匹配规则写在一个ACL列表下。
<R2>system view
[R2]acl 3999
[R2-acl-adv-3999]rule deny 1 source 192.168.2.100 0 destination 192.168.4.100 0
[R2-acl-adv-3999]rule deny ip source 192.168.1.100 0 destination any
[R2-acl-adv-3999]int g0/0/0
[R2-GigabitEthernet0/0/0]traffic-filter inbound acl 3999
查看当前接口下的配置,我们刚刚写的ACL已经在当前接口下生效。
随便查看下我们写的ACL列表,确认无误。
配置验证
1. PC1 无法进行跨网段访问,只可访问Client1
当前可直接去
ping
线路上的R2的g0/0/0
,只要它不通即可。
为验证ACL是否匹配,还额外ping
了R1的g0/0/0
,当然也可以通过display acl all
查看当前ACL命中次数。
2. Client1 无法访问 server ICMP服务,但可以访问其它服务
使用ping
可以向网络主机发送 ICMP 回显请求。它用来检查网络是否通畅或者网络连接速度快慢,从而判断网络是否正常。
这里很明显可以看到我们设置ACL已经匹配规则,无法ping
通该地址。当然也可以选择别的地址进行“ping测试”,这里就不再进行演示…
现在我们再去访问该地址上的服务。首先服务器上启动某个服务(我选择的是HTTP服务,文件根目录随便选),随后请求该服务,看到弹出的界面——访问成功!
配置文件
SW1:
#
sysname SW1
#
vlan batch 10 20
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
#
interface GigabitEthernet0/0/2
port link-type access
port default vlan 10
#
interface GigabitEthernet0/0/3
port link-type access
port default vlan 20
#
R1
#
sysname R1
#
interface GigabitEthernet0/0/0
ip address 12.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/1
#
interface GigabitEthernet0/0/1.1
dot1q termination vid 10
ip address 192.168.1.1 255.255.255.0
arp broadcast enable
#
interface GigabitEthernet0/0/1.2
dot1q termination vid 20
ip address 192.168.2.1 255.255.255.0
arp broadcast enable
#
ospf 100 router-id 1.1.1.1
area 0.0.0.0
network 12.1.1.0 0.0.0.255
network 192.168.1.0 0.0.0.255
network 192.168.2.0 0.0.0.255
#
R2:
#
sysname R2
#
acl number 3999
rule 5 deny icmp source 192.168.2.100 0 destination 192.168.4.100 0
rule 10 deny ip source 192.168.1.100 0
#
interface GigabitEthernet0/0/0
ip address 12.1.1.2 255.255.255.0
traffic-filter inbound acl 3999
#
interface GigabitEthernet0/0/1
ip address 23.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/2
ip address 24.1.1.2 255.255.255.0
#
ospf 100 router-id 2.2.2.2
area 0.0.0.0
network 12.1.1.0 0.0.0.255
network 23.1.1.0 0.0.0.255
network 24.1.1.0 0.0.0.255
#
R3:
#
sysname R3
#
interface GigabitEthernet0/0/0
ip address 23.1.1.3 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 192.168.3.1 255.255.255.0
#
ospf 100 router-id 3.3.3.3
area 0.0.0.0
network 23.1.1.0 0.0.0.255
network 192.168.3.0 0.0.0.255
#
R4:
#
sysname R4
#
interface GigabitEthernet0/0/0
ip address 24.1.1.4 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 192.168.4.1 255.255.255.0
#
ospf 100 router-id 4.4.4.4
area 0.0.0.0
network 24.1.1.0 0.0.0.255
network 192.168.4.0 0.0.0.255
#
学到了学到了
ACL在网络安全中的重要性。它不仅是一个报文过滤器,更是网络保障的重要防线!!!