ACL 访问控制列表全解析:从规则语法到实战配置

发布于:2025-07-29 ⋅ 阅读:(19) ⋅ 点赞:(0)

ACL访问控制列表

前言

访问控制列表ACL(Access Control List)可以定义一系列不同的规则,设备根据这些规则对数据包进行分类,并针对不同类型的报文进行不同的处理,从而可以实现对网络访问行为的控制、限制网络流量、提高网络性能、防止网络攻击等等。

1. 应用场景

一、基于条件过滤与动作执行

  • 功能说明:ACL能够依据特定的需求设定过滤条件,并且在数据匹配这些条件后执行相应的动作。
  • 场景示例:在图中,数据从主机(如主机A、B、C、D)经过交换机SWA传输到路由器RTA。RTA会对数据进行匹配检查,未匹配的数据包直接转发到互联网,而匹配的数据包可能会执行特定动作,比如图中显示的加密处理后再转发。
  • 应用意义:这种方式可以实现对特定数据的精准控制,例如对敏感数据进行加密保护,确保数据在传输过程中的安全性。

二、流量的允许与拒绝控制

  • 功能说明:ACL可以通过定义规则来决定是否允许或拒绝网络流量的通过。
  • 场景示例:在第二张图中,路由器RTA的不同接口(如G0/0/0和G0/0/1)应用了ACL规则。从图中可以看到,某些流量被禁止通过(用叉号表示),而其他流量可能被允许通过。例如,可能禁止主机A、B所在网段(192.168.1.0/24)的流量访问互联网,或者禁止主机C、D所在网段(192.168.2.0/24)的流量访问服务器A。
  • 应用意义:这种应用可以用于网络访问控制,增强网络的安全性,防止未经授权的访问,或者实现特定的网络访问策略,如限制某些用户或网段的访问权限。

2. ACL 分类

ACL 类型 编号范围 可匹配条件 特点 常用动作
基本 ACL 2000-2999 源 IP 地址等 功能较简单,无法过滤协议 Permit(允许)、Deny(拒绝)
高级 ACL 3000-3999 源 IP 地址、目的 IP 地址、源端口、目的端口、协议等 功能丰富,更适用于复杂网络环境 Permit(允许)、Deny(拒绝)
二层 ACL 4000-4999 源 MAC 地址、目的 MAC 地址、以太帧协议类型等 基于数据链路层信息进行过滤,针对 MAC 地址等链路层特征生效 Permit(允许)、Deny(拒绝)

3. ACL规则语法总结

一、核心语法元素表格

语法元素 说明 示例
acl <acl-number> 创建ACL列表,<acl-number>为编号 acl 2000(创建基本ACL,编号2000)
rule <rule-id> 定义单条规则,<rule-id>规则编号(需唯一,设备按编号从小到大依次匹配规则) rule 5(创建编号为5的规则)
<action> 规则动作: - permit:允许匹配的流量 - deny:拒绝匹配的流量 deny(拒绝流量)、permit(允许流量)
source <ip-address> <wildcard-mask> 匹配源IP地址: - <ip-address>:源IP(单个IP或网段) - <wildcard-mask>:反掩码(0表示严格匹配该位,255表示任意) source 192.168.1.0 0.0.0.255(匹配192.168.1.0/24网段)

二、规则匹配逻辑

ACL规则按 “编号从小到大” 依次匹配,一旦某条规则匹配成功,立即执行该规则的动作(permit/deny),不再检查后续规则

若所有规则都未匹配,基本ACL默认拒绝(deny)所有流量(高级ACL默认行为需参考设备手册,通常也为deny)。

三、示例解析

图片中配置了ACL 2000(基本ACL),包含4条规则,匹配逻辑如下:

规则编号 动作 源IP/反掩码 匹配效果
rule 5 deny 192.168.1.0 0.0.0.255 拒绝192.168.1.0/24网段的流量
rule 10 deny 192.168.2.0 0.0.0.255 若流量未匹配rule 5,则检查此规则,拒绝192.168.2.0/24网段
rule 15 permit 172.17.0.0 0.0.0.255 若流量未匹配前两条,允许172.17.0.0/24网段
rule 20 deny 172.16.0.0 0.0.0.255 若流量未匹配前三条,拒绝172.16.0.0/24网段

四、补充说明(反掩码与子网掩码的关系)

反掩码(通配符掩码)与子网掩码作用相反

  • 子网掩码用 1 表示“网络位/必须匹配”,0 表示“主机位/任意”;
  • 反掩码用 0 表示“必须匹配”,255 表示“任意”。

例如:source 192.168.1.0 0.0.0.255 中,反掩码 0.0.0.255 表示前3个字节(192.168.1)必须严格匹配,最后1个字节(.0)任意,对应子网掩码 255.255.255.0,即匹配 192.168.1.0/24 网段。

五、 ACL基本配置

基本ACL2000-2999的配置案例

配置思路:

1、配置交换机,设置两个网段,在 g0/0/24口配trunk放行所有vlan

2、路由器配置ACL访问控制列表允许通过192.168.0.1/24 拒绝192.168.1.0/24

(1)交换机配置

<Huawei>sys
[Huawei]vlan batch 2 to 3
# [Huawei]int vlanif 2
# [Huawei-Vlanif2]ip address 192.168.0.1 24
# [Huawei-Vlanif2]int vlanif 3
# [Huawei-Vlanif3]ip address 192.168.1.1 24
[Huawei-Vlanif3]int g0/0/1
[Huawei-GigabitEthernet0/0/1]port link-type access
[Huawei-GigabitEthernet0/0/1]port default vlan 2
[Huawei-GigabitEthernet0/0/1]int g0/0/2
[Huawei-GigabitEthernet0/0/2]port link-type access
[Huawei-GigabitEthernet0/0/2]port default vlan 3
[Huawei-GigabitEthernet0/0/2]int g0/0/24
[Huawei-GigabitEthernet0/0/24]port link-type trunk
[Huawei-GigabitEthernet0/0/24]port trunk allow-pass vlan 2 3

无需配置vlanif,在路由器中配置网关,交换机模拟二层

(2)路由器配置

(1)先配置ACL控制表

<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]acl 2000
[Huawei-acl-basic-2000]rule 5 permit source 192.168.0.0 0.0.0.255
[Huawei-acl-basic-2000]rule 10 deny source 192.168.1.0 0.0.0.255

(2)配置001接口和应用当前的ACL

<Huawei>sys
[Huawei]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 10.10.1.1 24 #给10.10.1.2配置网关
[Huawei-GigabitEthernet0/0/1]traffic-filter inbound acl 2000 #给当前接口配置入栈ACL
[Huawei-GigabitEthernet0/0/1]dis this
[V200R003C00]
#
interface GigabitEthernet0/0/1
ip address 10.10.1.1 255.255.255.0
traffic-filter inbound acl 2000
#
return

(3)单臂路由配置

[Huawei-acl-basic-2000]int g0/0/0.2
[Huawei-GigabitEthernet0/0/0.2]dot1q termination vid 2
[Huawei-GigabitEthernet0/0/0.2]ip address 192.168.0.1 24
[Huawei-GigabitEthernet0/0/0.2]arp broadcast enable
[Huawei-GigabitEthernet0/0/0.2]int g0/0/0.3
[Huawei-GigabitEthernet0/0/0.3]dot1q termination vid 3
[Huawei-GigabitEthernet0/0/0.3]ip address 192.168.1.1 24
#备注:如果单臂路由中开启所有路由中的arp广播,则在后续的出入栈位置需要设置outbound

(4)连通性测试

扩展一点

仅允许192.168.0.0/24网段内的主机可以远程登录路由器进行管理

思路:设一个ACCL普通表,限制其他网段主机访问

<Huawei>sys
Enter system view, return user view with Ctrl+Z.
[Huawei]acl 2001
[Huawei-acl-basic-2001]rule 5 deny source 192.168.1.0 0.0.0.255 #禁用单个网段
[Huawei-acl-basic-2001]rule 10 deny source 192.168.1.100 0.0.0.0 #禁用单个IP
[Huawei-acl-basic-2001]quit
[Huawei]user-interface vty 0 4
[Huawei-ui-vty0-4]acl 2001 ?
inbound Filter login connections from the current user interface
outbound Filter logout connections from the current user interface
[Huawei-ui-vty0-4]acl 2001 inbound

虚拟终端配置:默认有5个虚拟会话,编号分别是0-4,用来做远程单登录:telnet ssh等

六、高级ACL配置

3000-3999编号

举例:

仅允许192.168.0.2 访问10.10.1.2 FTP服务(21端口),如下:

(1) 放行192.168.0.2访问10.10.1.2的21服务

[Huawei-acl-adv-3000]rule permit tcp source 192.168.0.2 0.0.0.0 destination 10.10.1.2 0.0.0.0 destination-port eq 21 #注意,可以指定规则不编号,也可忽略
[Huawei-acl-adv-3000]dis this
[V200R003C00]
#
acl number 3000
rule 5 permit tcp source 192.168.0.2 0 destination 10.10.1.2 0 destination-port
eq ftp
#
return

指定端口的时候采用的数学符号:

数学符号 对应表示
大于 gt
小于 lt
等于 eq
范围 range

(2)同时,需要设置其他主机不允许访问10.10.1.2的21服务

[Huawei-acl-adv-3000]rule deny tcp destination 10.10.1.2 0.0.0.0 destination-port eq 21
[Huawei-acl-adv-3000]dis this
[V200R003C00]
#
acl number 3000
rule 5 permit tcp source 192.168.0.2 0 destination 10.10.1.2 0 destination-port
eq ftp
rule 10 deny tcp destination 10.10.1.2 0 destination-port eq ftp
#
return

其他流量需要放行

[Huawei-acl-adv-3000]rule permit ip
[Huawei-acl-adv-3000]quit

[Huawei-acl-adv-3000]rule permit ip

表示在高级 ACL 3000的配置视图下,添加一条规则:允许所有 IP 协议的数据包(包括 TCP、UDP、ICMP 等基于 IP 的协议)通过。

其中,acl-adv-3000 表示 “编号 3000 的高级 ACL”(华为高级 ACL 编号范围为 3000-3999);rule 是配置 ACL 规则的关键字;permit 表示 “允许”;ip 表示匹配所有 IP 协议的数据包。

(3)应用到需要配置的接口即可

[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]traffic-filter outbound acl 3000
[Huawei-GigabitEthernet0/0/0]quit
[Huawei]dis acl 3000
Advanced ACL 3000, 3 rules
Acl's step is 5
rule 5 permit tcp source 192.168.0.2 0 destination 10.10.1.2 0 destination-port
eq ftp
rule 10 deny tcp destination 10.10.1.2 0 destination-port eq ftp
rule 15 permit ip

七、 ACL(访问控制列表)规则总结

1. 基于「IP地址 + 协议类型」

  • 控制逻辑:通过源/目的IP地址协议类型(TCP/UDP/ICMP等)精准拦截/放行流量。
  • 示例规则:
rule deny tcp source 192.168.1.0 0.0.0.255 destination 10.10.1.2 0.0.0.0

(拒绝 192.168.1.0/24 网段到 10.10.1.2所有TCP流量

2. 基于「端口号」

  • 控制逻辑:通过TCP/UDP的源/目的端口(如HTTP=80、FTP=21)细化流量控制。
  • 示例规则:
rule permit tcp source 192.168.1.0 0.0.0.255 destination 10.10.1.2 0.0.0.0 destination-port eq 21

(允许 192.168.1.0/2410.10.1.2FTP流量,因FTP控制连接的目的端口为21)

3. 基于「数据包标志位」

  • 控制逻辑:通过TCP头部标志位(SYN/ACK/FIN等)识别连接阶段(如“发起新连接”“确认连接”)。
  • 示例规则:
rule permit tcp source 192.168.1.0 0.0.0.255 destination 10.10.1.2 0.0.0.0 tcp-flag syn

(允许 192.168.1.0/2410.10.1.2TCP SYN包,即允许“发起新连接”的流量)

4. 基于「时间」

  • 控制逻辑:通过时间范围(按天/周等周期)限制规则生效时段,实现“分时管控”。
  • 配置步骤:先定义时间范围,再关联规则。
    示例:
time-range work-time 09:00 to 18:00 daily  // 定义“工作时间”:每天9:00-18:00
rule permit ip source 192.168.1.0 0.0.0.255 destination 10.10.1.2 0.0.0.0 time-range work-time

(仅在“工作时间”内,允许 192.168.1.0/2410.10.1.2所有IP流量

5. 流量方向

  • 定义:
    • inbound进入接口的流量(如“外网→内网服务器”的流量)。
    • outbound离开接口的流量(如“内网→外网”的流量)。
      (规则需结合接口方向应用,精准控制“进/出”流量)

6. 规则优先级(匹配顺序)

  • 机制:规则按编号从小到大匹配(编号越小,优先级越高,优先执行)。
  • 示例:
rule 5 deny ip source 192.168.1.0 0.0.0.255 destination 10.10.1.2 0.0.0.0  // 先拒绝该IP段所有流量
rule 10 permit ip  // 再允许所有IP流量(若前一条未匹配,才会执行)

(若 rule 5 匹配成功,rule 10 不会执行;若 rule 5 不匹配,才会执行 rule 10

结语

在网络世界中,访问控制列表(ACL)就像一位精准的“守门人”,用一条条规则编织起网络安全与流量管理的防线。从基本ACL对源IP的简单过滤,到高级ACL对协议、端口、标志位的精细管控,再到二层ACL基于MAC地址的链路层防护,它以灵活的姿态适配着从简单到复杂的网络场景——无论是限制特定网段的访问权限,还是精准放行某类服务流量,ACL都在用“规则”的力量让网络行为更可控、更安全。

配置ACL的过程,实则是对网络需求的深度拆解:明确“谁能访问谁”“通过什么协议访问”“在什么时间访问”,再将这些需求转化为有序的规则。而规则的优先级、动作的合理设置,更考验着对网络流量走向的理解——毕竟,一条顺序颠倒的规则可能让整个策略功亏一篑。

对于网络管理者而言,ACL不是一成不变的“清单”,而是需要随网络架构、业务需求动态调整的“活策略”。它提醒我们:网络安全的核心,在于“精细化管控”;而高效的流量管理,始于对每一个数据包的清晰认知。

希望通过本文的梳理,你能对ACL的原理与配置有更清晰的把握。在实际运维中,不妨从具体场景出发,选择合适的ACL类型,打磨每一条规则——让这位“守门人”既不滥用权限,也不疏于防范,最终为你的网络筑起既安全又高效的屏障。


网站公告

今日签到

点亮在社区的每一天
去签到