技术博客

ACL 访问控制实验:为什么匹配顺序比规则本身更重要?

从基础 ACL 和高级 ACL 入手,讲清楚流量匹配、规则顺序、接口方向和验证方法。

ACL访问控制网络安全HCIA-Datacom

ACL 用来根据条件匹配流量,可以做访问控制、流量过滤,也常作为 NAT、策略路由等功能的匹配工具。

很多 ACL 实验失败,不是规则不会写,而是方向、顺序和匹配范围没有想清楚。

基础 ACL

基础 ACL 主要基于源 IP 匹配。

acl number 2000
rule 5 deny source 192.168.10.10 0
rule 10 permit source any

ACL 通常按规则编号从小到大匹配,命中后停止继续匹配。因此更具体的规则应该放在前面。

高级 ACL

高级 ACL 可以匹配源地址、目的地址、协议和端口。

acl number 3000
rule 5 deny tcp source 192.168.10.0 0.0.0.255 destination 192.168.20.10 0 destination-port eq 80
rule 10 permit ip

如果只想限制 Web 访问,就不要粗暴 deny 整个 IP,否则可能把 DNS、ICMP、业务端口一起拦掉。

接口方向

ACL 应用到接口时,要区分 inbound 和 outbound。方向判断建议站在设备接口视角:流量进入该接口就是 inbound,流量离开该接口就是 outbound。

interface GigabitEthernet0/0/1
traffic-filter inbound acl 3000

方向选错时,规则看起来正确,但实际不会命中。

验证方法

display acl 3000
display traffic-filter applied-record

验证 ACL 不要只看配置,还要看命中次数。没有命中,说明流量没有走到这个规则,或者匹配条件写错。

排障建议

先画出流量方向,再写规则;先允许必要业务,再拒绝风险访问。生产环境修改 ACL 前,要准备回退命令,避免把自己远程管理链路切断。

实验目标

ACL 实验建议设计一个明确业务场景:办公网可以访问服务器的 SSH,但不能访问 Web;管理网可以访问所有服务;其他网段默认拒绝。

有了业务目标,ACL 规则才不会变成机械命令。每一条规则都应该回答“允许谁访问谁的什么服务”或“拒绝谁访问谁的什么服务”。

拓扑假设

Office VLAN 10 ---- Router ---- Server VLAN 20
Manage VLAN 30 ----/

服务器地址为 192.168.20.10。办公网为 192.168.10.0/24,管理网为 192.168.30.0/24

可以用高级 ACL 控制办公网访问服务器的特定端口。

规则设计方法

写 ACL 前先列策略表:

策略表比直接敲命令更重要。生产环境中,很多 ACL 事故都来自没有先写清楚策略。

验收标准

验证 ACL 时要从多个方向测试:

如果业务结果和命中次数不一致,要检查 ACL 是否应用在正确接口和正确方向。

安全注意点

远程维护设备时,修改 ACL 前一定要确认不会阻断自己的管理流量。可以先开一个备用会话,或提前准备回滚命令。

对于生产网络,ACL 应该配合日志、变更审批和配置备份。实验阶段就养成这些习惯,会减少以后真实变更的风险。

参考资料