ACL简介
定义
访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。
ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。
ACL配置完成后,必须应用在业务模块中才能生效,其中最基本的ACL应用,就是在简化流策略/流策略中应用ACL,使设备能够基于全局、VLAN或接口下发ACL,实现对转发报文的过滤。此外,ACL还可以应用在Telnet、FTP、路由等模块。业务模块之间的ACL默认处理动作和处理机制有所不同,具体请参见ACL应用模块的ACL默认动作和处理机制。
目的
ACL可以实现对网络中报文流的精确识别和控制,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。
图1是一个典型的ACL应用组网场景。
某企业为保证财务数据安全,禁止研发部门访问财务服务器,但总裁办公室不受限制。实现方式:在Interface 1的入方向上部署ACL,禁止研发部门访问财务服务器的报文通过。Interface 2上无需部署ACL,总裁办公室访问财务服务器的报文默认允许通过。
保护企业内网环境安全,防止Internet病毒入侵。实现方式:在Interface 3的入方向上部署ACL,防止病毒通过该接口入侵。
ACL的基本原理
ACL由一系列规则组成,通过将报文与ACL规则进行匹配,设备可以过滤出特定的报文。设备支持软件ACL和硬件ACL两种实现方式。
ACL的组成
一条ACL的结构组成,如图1所示。
-
ACL名称:通过名称来标识ACL,就像用域名代替IP地址一样,更加方便记忆。这种ACL,称为命名型ACL。
命名型ACL一旦创建成功,便不允许用户再修改其名称。
仅基本ACL与基本ACL6,以及高级ACL与高级ACL6,可以使用相同的ACL名称;其他类型ACL之间,不能使用相同的ACL名称。
命名型ACL实际上是“名字+数字”的形式,可以在定义命名型ACL时同时指定ACL编号。如果不指定编号,则由系统自动分配,设备为其分配的编号是该类型ACL可用编号中取值范围内的最大值。
-
ACL编号:用于标识ACL,也可以单独使用ACL编号,表明该ACL是数字型。
不同的ACL类型使用不同的ACL编号取值标识。
-
规则:即描述报文匹配条件的判断语句。
-
规则编号:用于标识ACL规则。可以自行配置规则编号,也可以由系统自动分配。
ACL规则的编号范围是0~4294967294,所有规则均按照规则编号从小到大进行排序。系统按照规则编号从小到大的顺序,将规则依次与报文匹配,一旦匹配上一条规则即停止匹配。
-
动作:报文处理动作,包括permit/deny两种,表示允许/拒绝。
-
匹配项:ACL定义了极其丰富的匹配项。除了图1中的源地址和生效时间段,ACL还支持很多其他规则匹配项。例如,二层以太网帧头信息(如源MAC、目的MAC、以太帧协议类型),三层报文信息(如目的IP地址、协议类型),以及四层报文信息(如TCP/UDP端口号)等。关于每种匹配项的详细介绍,请参见交换机支持的ACL及常用匹配项。
-
ACL的实现方式
目前设备支持的ACL,有以下两种实现方式。
-
软件ACL:针对与本机交互的报文(必须上送CPU处理的报文),由软件实现来过滤报文的ACL,比如FTP、TFTP、Telnet、SNMP、HTTP、路由协议、组播协议中引用的ACL。
-
硬件ACL:针对所有报文,通过下发ACL资源到硬件来过滤报文的ACL,比如流策略、基于ACL的简化流策略、用户组以及为接口收到的报文添加外层Tag功能中引用的ACL。
两者主要区别在于:
-
过滤的报文类型不同:软件ACL用来过滤与本机交互的报文,硬件ACL可以用来过滤所有报文。
-
报文过滤方式不同:软件ACL是被上层软件引用来实现报文的过滤,硬件ACL是被下发到硬件来实现报文的过滤。通过软件ACL过滤报文时,会消耗CPU资源,通过硬件ACL过滤报文时,则会占用硬件资源。通过硬件ACL过滤报文的速度更快。
-
对不匹配ACL的报文的处理动作不同:当使用软件ACL时,如果报文未匹配上ACL中的规则,设备对该报文采取的动作为deny,即拒绝报文通过;当使用硬件ACL时,如果报文未匹配上ACL中的规则,设备对该报文采取的动作为permit,即允许报文通过。
组网需求
如图1所示,Switch作为FTP服务器,对网络中的不同用户开放不同的访问权限:
- 子网1(172.16.105.0/24)的所有用户在任意时间都可以访问FTP服务器。
- 子网2(172.16.107.0/24)的所有用户只能在某一个时间范围内访问FTP服务器。
- 其他用户不可以访问FTP服务器。
已知Switch与各个子网之间路由可达,要求在Switch上进行配置,实现FTP服务器对客户端访问权限的设置。
实验拓扑
配置思路
采用如下的思路在Switch上进行配置:
- 配置时间段和ACL,使设备可以基于时间的ACL,对网络中不同用户的报文进行过滤,从而控制不同用户的FTP访问权限。
- 配置FTP基本功能。
- 在FTP模块中应用ACL,使ACL生效。
实验步骤
S2 配置
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname S2
[S2]undo info-center enable
Info: Information center is disabled.
[S2]vlan batch 10 20 30
Info: This operation may take a few seconds. Please wait for a moment...done.
[S2]interface Ethernet0/0/1
[S2-Ethernet0/0/1]port link-type access
[S2-Ethernet0/0/1]port default vlan 10
[S2-Ethernet0/0/1]quit
[S2]interface Ethernet0/0/2
[S2-Ethernet0/0/2]port link-type access
[S2-Ethernet0/0/2]port default vlan 20
[S2-Ethernet0/0/2]interface Ethernet0/0/3
[S2-Ethernet0/0/3]port link-type access
[S2-Ethernet0/0/3]port default vlan 30
[S2-Ethernet0/0/3]quit
[S2]interface GigabitEthernet 0/0/1
[S2-GigabitEthernet0/0/1]port link-type trunk
[S2-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[S2-GigabitEthernet0/0/1]quit
S3 配置
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sysname S3
[S3]undo info-center enable
Info: Information center is disabled.
[S3]vlan batch 10 20 30 100
Info: This operation may take a few seconds. Please wait for a moment...done.
[S3]interface Vlanif 100
[S3-Vlanif100]ip address 192.168.1.1 24
[S3-Vlanif100]quit
[S3]interface GigabitEthernet 0/0/2
[S3-GigabitEthernet0/0/2]port link-type access
[S3-GigabitEthernet0/0/2]port default vlan 100
[S3-GigabitEthernet0/0/2]quit
[S3]interface Vlanif 10
[S3-Vlanif10]ip address 172.16.105.254 24
[S3-Vlanif10]quit
[S3]interface Vlanif 20
[S3-Vlanif20]ip address 172.16.107.254 24
[S3-Vlanif20]quit
[S3]interface Vlanif 30
[S3-Vlanif30]ip address 10.10.10.254 24
[S3-Vlanif30]quit
[S3]interface GigabitEthernet 0/0/1
[S3-GigabitEthernet0/0/1]port link-type trunk
[S3-GigabitEthernet0/0/1]port trunk allow-pass vlan all
[S3-GigabitEthernet0/0/1]quit
[S3]ip route-static 192.168.2.0 24 192.168.1.2
R1 配置
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]sy
[Huawei]sysname R1
[R1]undo info-center enable
Info: Information center is disabled.
[R1]interface GigabitEthernet 0/0/2
[R1-GigabitEthernet0/0/2]ip address 192.168.2.254 24
[R1-GigabitEthernet0/0/2]quit
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]ip address 192.168.1.2 24
[R1-GigabitEthernet0/0/0]quit
[R1]ip route-static 0.0.0.0 0 192.168.1.1
FTPserver 配置时间段
<Huawei>system-view
Enter system view, return user view with Ctrl+Z.
[Huawei]s
[Huawei]sys
[Huawei]sysname FTPserver
[FTPserver]undo info-center enable
Info: Information center is disabled.
[FTPserver]time-range ftp-access from 0:0 2023/1/1 to 23:59 2023/12/31
Info: The starting or ending time has been configured earlier than the current t
ime.
[FTPserver]time-range ftp-access 14:00 to 18:00 off-day
配置基本ACL
[FTPserver]acl number 2001
[FTPserver-acl-basic-2001]rule permit source 172.16.105.0 0.0.0.255
[FTPserver-acl-basic-2001]rule permit source 172.16.107.0 0.0.0.255 time-range f
tp-access
[FTPserver-acl-basic-2001]rule deny source any
[FTPserver-acl-basic-2001]quit
配置FTP基本功能
[FTPserver]ftp server enable
Info: The FTP server is already enabled.
[FTPserver]aaa
[FTPserver-aaa]local-user huawei password cipher abc.123
[FTPserver-aaa]local-user huawei privilege level 15
Info: Add a new user.
[FTPserver-aaa]local-user huawei service-type ftp
[FTPserver-aaa]local-user huawei ftp-directory flash:
[FTPserver-aaa]quit
配置FTP服务器访问权限
[FTPserver]ftp acl 2001
FTPserver 剩余配置
[FTPserver]interface Vlanif 2
[FTPserver-Vlanif2]ip address 192.168.2.1 24
[FTPserver-Vlanif2]quit
[FTPserver]interface GigabitEthernet 0/0/1
[FTPserver-GigabitEthernet0/0/1]port link-type access l
[FTPserver-GigabitEthernet0/0/1]port default vlan 2
[FTPserver-GigabitEthernet0/0/1]quit
[FTPserver]ip route-static 0.0.0.0 0 192.168.2.254
测试结果(用S3访问FTP服务器),172.16.105.0 网段可以访问FTP服务器
10.10.10.0 网段无法访问FTP服务器