eNSP 实战难度 · 进阶

ACL 访问控制图解:规则怎么一条条匹配流量

ACL 规则匹配原理图解,一张图看懂 permit/deny 与匹配顺序,附华为 eNSP 配置阻止指定网段。

#ACL#安全#eNSP

先看效果

ACL规则匹配过程图
ACL 按规则编号从小到大逐条匹配,第一条命中的规则生效

为什么需要 ACL

网络通了之后,安全就来了:比如财务部的电脑不应该能访问服务器区的 SSH;访客 Wi-Fi 不应该能访问内网。这些「谁能访问谁」的规则,就是 ACL(访问控制列表)干的活。

ACL 是一系列规则的集合,用来识别流量(允许/拒绝),然后被其他功能引用,比如接口上的 traffic-filter、NAT、QoS。

原理图解

看上面这张图:

  • ACL 里规则按编号从小到大排好;
  • 每个数据包来了,从第一条开始逐条比对;
  • 命中第一条规则的 permit/deny 立即生效,后面的规则不再看;
  • 如果所有规则都没命中,最后有一个隐含的拒绝所有(deny any)兜底。

所以写 ACL 要记住:匹配是从上往下的,顺序就是命运。permit 和 deny 谁先谁后直接决定效果。

eNSP 完整配置

用基本 ACL(2000-2999,根据源地址匹配)阻止 192.168.10.0/24 网段访问服务器 192.168.100.10:

# ===== 在 R1 上配置 =====
<Huawei> system-view
[Huawei] sysname R1

# 1. 创建基本 ACL 2001
[R1] acl number 2001
# 拒绝 192.168.10.0/24(放前面,先匹配)
[R1-acl-basic-2001] rule 5 deny source 192.168.10.0 0.0.0.255
# 允许其他所有(放后面兜底)
[R1-acl-basic-2001] rule 10 permit
[R1-acl-basic-2001] quit

# 2. 在要控制的接口上应用(此处是连服务器一侧的内网口)
[R1] interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1] traffic-filter inbound acl 2001
[R1-GigabitEthernet0/0/1] quit

[R1] save

验证

# 查看 ACL 规则
[R1] display acl 2001

# 查看接口上的应用
[R1] display traffic-filter applied-record

再从 192.168.10.0 网段 ping 192.168.100.10,应该不通;其他网段正常。

常见问题

Q: 我写了 deny 但流量还是过去了? A: ① 检查 ACL 是否应用到了接口(光建 ACL 不应用没用);② 检查方向(inbound/outbound 有没有搞反——inbound 是进入接口的流量);③ 检查规则顺序,会不会有更靠前的 permit 先把它放行了。

Q: 什么时候用基本 ACL,什么时候用高级 ACL? A: 基本 ACL(2000-2999)只能按源地址匹配;高级 ACL(3000-3999)能按源/目的地址、协议(TCP/UDP/ICMP)、端口号等精细匹配。需要控端口就用高级 ACL。

下一步

控制谁访问谁是安全的第一步,但内网设备上外网还涉及地址转换。看 NAT 源地址转换配置。