防火墙ACL安全策略多厂商对比
专题-网络配置 · 第05篇 日期:2026-08-03
全文
开篇:VLAN划好了,谁该访问谁?
上一篇文章我们讲完了新华三H3C的VLAN划分,网络通了只是第一步——通了不等于安全。
想象一个场景:财务部的VLAN 30,里面放着工资表、成本核算、税务数据。研发部的VLAN 10,里面是CAD图纸、工艺配方。两个VLAN之间通过VLANIF三层接口互通——但问题是:研发部的张三凭什么能ping通财务部的服务器?
这就是ACL(访问控制列表)要解决的问题。
网络层的门禁系统:谁从哪到哪,允许还是拒绝,全部写进规则,逐包检查。
今天这篇,我们做一件网工圈最有价值的事——把华为、新华三H3C、锐捷、思科四家防火墙/交换机的ACL配置命令放在一起对比。不是泛泛而谈,是逐条命令对照,看完你拿着任何一家的设备都能上手配。
一、ACL到底是什么?3分钟搞懂核心概念
ACL(Access Control List,访问控制列表)本质上是一张规则表,每条规则叫一个ACE(Access Control Entry,访问控制条目)。
设备收到数据包后,从上往下逐条匹配规则:
- 匹配到permit → 放行
- 匹配到deny → 丢弃
- 全部不匹配 → 执行默认动作(多数设备默认permit,安全设备默认deny)
ACL分类(四厂商通用):
| 类型 | 编号范围 | 匹配维度 | 典型场景 |
|---|---|---|---|
| 标准ACL | 1-99 / 2000-2999 | 仅源IP | 简单限制某网段访问 |
| 扩展ACL | 100-199 / 3000-3999 | 源IP+目的IP+协议+端口 | 精确控制到端口级 |
| 命名ACL | 名称代替编号 | 同上 | 可读性好,可插入/删除单条 |
一句话原则:标准ACL只能看"谁发的",扩展ACL能看"谁发给谁、用什么协议、走什么端口"。生产环境99%用扩展ACL。
二、四厂商ACL创建命令对比
2.1 创建扩展ACL(以"允许研发部10.1.1.0/24访问服务器10.2.1.100的TCP 445端口"为例)
华为:
[HUAWEI] acl 3000 # 创建高级ACL
[HUAWEI-acl-adv-3000] rule permit tcp source 10.1.1.0 0.0.0.255 destination 10.2.1.100 0 destination-port eq 445
[HUAWEI-acl-adv-3000] rule deny ip source any destination 10.2.1.100 0 # 拒绝其他访问服务器
[HUAWEI-acl-adv-3000] quit
H3C(新华三):
[H3C] acl advanced 3000 # 创建高级ACL
[H3C-acl-ipv4-adv-3000] rule permit tcp source 10.1.1.0 0.0.0.255 destination 10.2.1.100 0 destination-port eq 445
[H3C-acl-ipv4-adv-3000] rule deny ip destination 10.2.1.100 0 # 拒绝其他访问
[H3C-acl-ipv4-adv-3000] quit
锐捷:
Ruijie(config)# ip access-list extended 3000
Ruijie(config-ext-nacl)# 10 permit tcp 10.1.1.0 0.0.0.255 host 10.2.1.100 eq 445
Ruijie(config-ext-nacl)# 20 deny ip any host 10.2.1.100
Ruijie(config-ext-nacl)# exit
思科:
Cisco(config)# ip access-list extended 3000
Cisco(config-ext-nacl)# 10 permit tcp 10.1.1.0 0.0.0.255 host 10.2.1.100 eq 445
Cisco(config-ext-nacl)# 20 deny ip any host 10.2.1.100
Cisco(config-ext-nacl)# exit
2.2 四厂商命令差异速查表(⭐核心干货)
| 对比维度 | 华为 | H3C | 锐捷 | 思科 |
|---|---|---|---|---|
| 创建高级ACL | acl 3000 |
acl advanced 3000 |
ip access-list extended 3000 |
ip access-list extended 3000 |
| 命名ACL | acl name web-acl advanced |
acl advanced name web-acl |
ip access-list extended web-acl |
ip access-list extended web-acl |
| 规则关键字 | rule permit/deny |
rule permit/deny |
permit/deny(直接写) |
permit/deny(直接写) |
| 源地址关键字 | source |
source |
无关键字直接写 | 无关键字直接写 |
| 目的地址关键字 | destination |
destination |
无关键字直接写 | 无关键字直接写 |
| 单主机简写 | 10.2.1.100 0 |
10.2.1.100 0 |
host 10.2.1.100 |
host 10.2.1.100 |
| 任意地址 | any |
any |
any |
any |
| 规则编号 | 自动步长5(5/10/15…) | 自动步长5 | 手动指定(10/20/30…) | 手动指定(10/20/30…) |
| 通配符掩码 | 反掩码(0精确匹配) | 反掩码(0精确匹配) | 反掩码(0精确匹配) | 反掩码(0精确匹配) |
关键差异解读:
- 华为和H3C的ACL语法最接近,但创建命令不同:华为
acl 3000,H3C必须写acl advanced 3000。- 锐捷和思科的语法几乎一致(锐捷早期就是借鉴思科CLI),但锐捷的安全策略以Web界面为主。
- 华为/H3C的规则用
rule关键字引导,锐捷/思科直接写permit/deny。- 单主机简写:华为/H3C写
IP 0,锐捷/思科用host IP——这是最容易搞混的地方。
三、四厂商应用ACL到接口对比
ACL创建完不会自动生效,必须应用到接口或安全域间。
华为(交换机/路由器):
[HUAWEI] interface gigabitethernet 0/0/1
[HUAWEI-GigabitEthernet0/0/1] traffic-filter inbound acl 3000
[HUAWEI-GigabitEthernet0/0/1] quit
华为(防火墙安全域间):
[HUAWEI] firewall interzone trust untrust
[HUAWEI-interzone-trust-untrust] packet-filter 3000 inbound
[HUAWEI-interzone-trust-untrust] quit
H3C:
[H3C] interface gigabitethernet 1/0/1
[H3C-GigabitEthernet1/0/1] packet-filter 3000 inbound
[H3C-GigabitEthernet1/0/1] quit
H3C还支持全局应用:
packet-filter 3000 global inbound——设备所有接口入方向同时生效。
锐捷:
Ruijie(config)# interface gigabitethernet 0/1
Ruijie(config-if-GigabitEthernet 0/1)# ip access-group 3000 in
Ruijie(config-if-GigabitEthernet 0/1)# exit
思科:
Cisco(config)# interface gigabitethernet 0/1
Cisco(config-if)# ip access-group 3000 in
Cisco(config-if)# exit
接口应用命令差异:
| 厂商 | 接口应用命令 | 方向关键字 |
|---|---|---|
| 华为(交换机) | traffic-filter inbound acl 3000 |
inbound/outbound |
| 华为(防火墙) | packet-filter 3000 inbound |
inbound/outbound |
| H3C | packet-filter 3000 inbound |
inbound/outbound |
| 锐捷 | ip access-group 3000 in |
in/out |
| 思科 | ip access-group 3000 in |
in/out |
⚠️ 最大坑:华为/H3C用
inbound/outbound,锐捷/思科用in/out。迁移配置时漏改这个关键字会直接报错。
四、安全策略最佳实践:最小权限+默认拒绝
无论用哪家设备,ACL设计的核心原则是通用的:
原则1:最小权限——只放行必须的流量
# ❌ 错误:放行整个网段所有端口
rule permit ip source 10.1.1.0 0.0.0.255 destination 10.2.1.0 0.0.0.255
# ✅ 正确:只放行需要的端口
rule permit tcp source 10.1.1.0 0.0.0.255 destination 10.2.1.100 0 destination-port eq 445
原则2:默认拒绝——最后一条deny all
# 华为/H3C
rule deny ip source any destination any
# 锐捷/思科
deny ip any any
华为/H3C默认动作是permit(未匹配规则的全放行),必须显式加deny all。锐捷/思科扩展ACL末尾有隐式deny all,但建议显式写出以提高可读性。
原则3:精确规则在前,宽泛规则在后
ACL从上往下匹配,命中即停。如果宽泛规则在前,后面的精确规则永远不会被执行。
原则4:开启日志记录
# 华为
rule deny ip source any destination any logging
# H3C
rule deny ip source any destination any logging
# 锐捷
deny ip any any log
# 思科
deny ip any any log
日志会记录被拒绝的包数、源/目的IP,是安全审计的核心数据源。等保三级要求访问控制日志留存至少180天。
五、典型场景:限制研发部访问财务核心区
组网需求:
- 研发部VLAN 10(10.1.1.0/24)→ 允许访问Internet和邮件服务器
- 研发部VLAN 10 → 禁止访问财务VLAN 30(10.3.1.0/24)
- 其他部门 → 禁止访问财务VLAN 30
华为配置:
[HUAWEI] acl 3000
[HUAWEI-acl-adv-3000] rule deny ip source 10.1.1.0 0.0.0.255 destination 10.3.1.0 0.0.0.255
[HUAWEI-acl-adv-3000] rule permit ip source 10.1.1.0 0.0.0.255 destination any
[HUAWEI-acl-adv-3000] quit
[HUAWEI] interface vlanif 10
[HUAWEI-Vlanif10] traffic-filter inbound acl 3000
H3C配置:
[H3C] acl advanced 3000
[H3C-acl-ipv4-adv-3000] rule deny ip source 10.1.1.0 0.0.0.255 destination 10.3.1.0 0.0.0.255
[H3C-acl-ipv4-adv-3000] rule permit ip source 10.1.1.0 0.0.0.255 destination any
[H3C-acl-ipv4-adv-3000] quit
[H3C] interface vlan 10
[H3C-Vlan10] packet-filter 3000 inbound
锐捷配置:
Ruijie(config)# ip access-list extended 3000
Ruijie(config-ext-nacl)# 10 deny ip 10.1.1.0 0.0.0.255 10.3.1.0 0.0.0.255
Ruijie(config-ext-nacl)# 20 permit ip 10.1.1.0 0.0.0.255 any
Ruijie(config-ext-nacl)# exit
Ruijie(config)# interface vlan 10
Ruijie(config-if-VLAN 10)# ip access-group 3000 in
思科配置:
Cisco(config)# ip access-list extended 3000
Cisco(config-ext-nacl)# 10 deny ip 10.1.1.0 0.0.0.255 10.3.1.0 0.0.0.255
Cisco(config-ext-nacl)# 20 permit ip 10.1.1.0 0.0.0.255 any
Cisco(config-ext-nacl)# exit
Cisco(config)# interface vlan 10
Cisco(config-if)# ip access-group 3000 in
六、验证命令对比
配置完不验证等于没配。四厂商的查看命令:
| 操作 | 华为 | H3C | 锐捷 | 思科 |
|---|---|---|---|---|
| 查看ACL规则 | display acl 3000 |
display acl 3000 |
show access-lists 3000 |
show ip access-list 3000 |
| 查看接口应用 | display traffic-filter applied-record |
display packet-filter interface |
show ip access-group |
show ip access-lists |
| 查看匹配计数 | display acl 3000(含命中次数) |
display packet-filter statistics interface |
show access-lists(含匹配数) |
show access-list(含matches) |
| 清除计数 | reset acl counter 3000 |
reset packet-filter statistics |
clear access-list counters |
clear access-list counters |
display vs show:华为/H3C用
display,锐捷/思科用show。这是CLI风格的最大分水岭之一。
七、ACL与等保合规的关联
等保三级(GA/T 2380-2026)对访问控制有明确要求:
- 网络边界访问控制:必须在安全域边界部署访问控制设备(防火墙/交换机ACL),这是"物理与环境安全"+“通信安全"的核心要求。
- 最小权限原则:访问控制策略应基于"默认拒绝”,仅放行必要流量——对应ACL的deny all兜底。
- 日志审计180天:ACL拒绝日志必须留存至少180天——对应ACL的logging功能+日志服务器联动。
- 安全策略集中管理:建议通过统一安全策略管理平台管理所有设备的ACL规则——避免"规则膨胀"后无人维护。
网络访问控制做好了,数据层面的权限管控呢? ACL管的是网络层"能不能到",但文件层面的"能不能看、能不能下载、能不能拷走"——这是私有云盘的权限管理体系要解决的问题。32维权限模型、文件不落地预览、AD域联动离职自动回收,才是数据安全的最后一公里。
八、排坑清单:4个常见翻车场景
坑1:方向搞反——ACL应用在错的方向
- inbound = 进接口时检查(推荐,节省设备资源)
- outbound = 出接口时检查
- 如果在入方向已经permit了,出方向再deny也没用——因为包已经被路由转发了
坑2:掩码写反——0.0.0.255 vs 255.255.255.0
- ACL用反掩码:0=精确匹配,1=忽略
10.1.1.0 0.0.0.255= 匹配10.1.1.x整个/24网段- 如果写成
10.1.1.0 255.255.255.0= 只匹配10.1.1.0这一个地址(因为255=忽略所有位)
坑3:规则顺序错误——宽泛规则吃掉精确规则
# ❌ 错误:permit all在前,后面的deny永远不会执行
rule 5 permit ip source any destination any
rule 10 deny ip source 10.1.1.0 0.0.0.255 destination 10.3.1.0 0.0.0.255
坑4:华为防火墙安全域间ACL vs 交换机接口ACL
- 华为防火墙用
firewall interzone+packet-filter,走安全域间逻辑 - 华为交换机用接口下
traffic-filter,走接口级逻辑 - 两者机制不同,不能混用