当前位置: 首页 > news >正文

业务访问控制-ACL与包过滤

业务访问控制-ACL与包过滤

ACL的定义及应用场景

  • ACL(Access Control List,访问控制列表)是用来实现数据包识别功能的;

  • ACL可以应用于诸多场景:

    • 包过滤功能:对数据包进行放通或过滤操作。
    • NAT(Network Address Translation,网络地址转换)
    • 按需拨号
    • Qos流分类ACL:只对数据包进行匹配,或者说对数据包进行流量分类。
    • 路由过滤ACL:对路由进行方向或过滤操作。
    • 路由策略ACL:只对路由进行匹配。

ACL包过滤的工作原理

网络访问控制需求

  • 网络访问控制需求
    • 要求192.168.1.192 - 255 不能访问192.168.2.128 - 255.

在这里插入图片描述

ACL包过滤基本原理

  • ACL包过滤
    • 第一步ACL:每条ACL都由若干条ACL规则条目组成。
      • ACL规则条目:由1个匹配条件和执行动词(permit或deny)组成。
    • 第二步ACL包过滤:讲ACL绑定到设备接口上,进行数据包过滤。
      • 匹配permit规则条目的允许放行。
      • 匹配deny规则条目的拒绝通过。

在这里插入图片描述

  • 设备接口的入方向和出方向
    • 入方向(in):数据包进入设备的方向。
    • 出方向(out):数据包离开设备的方向。
    • 两个方向都可以绑定ACL对数据包进行过滤。

在这里插入图片描述

  • 包过滤ACL绑定:每个接口的每个方向只能绑定1条ACL

在这里插入图片描述

一条ACL可以包含很多条规则条目,在Cisco设备,隐含规则条目会拒绝所有,即没有配置任何ACL规则条目的情况下。在华为和华三的设备没有限制。

思科ACL包过滤基本原理

  • 思科ACL包过滤原理

在这里插入图片描述

  • 思科IP转发流程
    • 入处理执行in方向ACL包过滤
    • 出处理执行out方向ACL包过滤

在这里插入图片描述

入方向处理

在这里插入图片描述

出方向处理

在这里插入图片描述

华为/H3C ACL包过滤基本原理

  • 华为华三ACL包过滤基本原理

在这里插入图片描述

  • 华为华三IP转发流程
    • 入处理执行in方向ACL包过滤
    • 出处理执行out方向ACL包过滤

在这里插入图片描述

ACL的分类及应用

ACL规则条目组成——序号/名字+字段匹配

  • 利用数字序号标识访问控制列表

在这里插入图片描述

  • 可以给访问控制列表指定名称,便于维护

ACL规则条目组成——序号/名字+执行动作+字段匹配

IP数据包字段匹配方法:

  • 数据包中的各个字段
    • 数据包中的各个字段都可以进行匹配
    • 常用匹配五元组:源IP、目标IP、协议、源端口、目标端口

在这里插入图片描述

  • 数据包中的IP地址字段匹配

    • 匹配字段

      • 匹配源IP
      • 匹配目标IP
      • 同时匹配源IP和目标IP
    • 匹配方法

      • IP地址 通配符
        • 通配符32位,按位通配,位为0表示这位不能变,位为1表示这位可变。
    • 匹配案列1

      • 匹配:192.168.1.1 - 192.168.1.254
      • 答案:192.168.1.0 0.0.0.255
    • 匹配案列2

      • 匹配:192.168.2.128 - 192.168.2.254
      • 答案:192.168.2.128 0.0.0.127
    • 匹配案列3

      • 匹配:192.168.1.192
      • 答案:192.168.1.192 0.0.0.0
      • 可以简写为:host 192.168.1.192
    • 匹配案列4

      • 匹配:所有IP地址
      • 答案:0.0.0.0 255.255.255.255
      • 可以简写为:any
    • 匹配案列5

      • 匹配:所有偶数IP地址
      • 答案:192.168.1.1 0.0.0.254
    • 匹配案列6

      • 所有奇数IP地址
      • 答案:192.168.1.0 0.0.0.254
  • TCP/UDP包中的端口字段匹配

    • 匹配字段

      • 匹配源端口
      • 匹配目标端口
      • 同时匹配源端口和目标端口
    • 匹配方法

      • 端口范围操作符、端口号

        操作符全称含义示例作用
        eqequal匹配“等于”某个端口号eq 80:表示 HTTP 服务
        neqnot equal匹配“不等于”某个端口号neq 23:除 Telnet 以外的服务
        gtgreater匹配“大于”某个端口号gt 1023:过滤高位端口
        ltless匹配“小于”某个端口号lt 1024:匹配常用低端口(0-1023)
        range范围匹配“在两个端口之间”的端口range 20 21:FTP数据和控制端口
    • 匹配案例1

      • 匹配:DNS端口
      • 答案:eq 53
    • 匹配案列2

      • 匹配:DHCP服务器端口
      • 答案:eq 67
    • 匹配案例3

      • 匹配:DHCP客户端端口
      • 答案:eq 68
    • 匹配案列4

      • 匹配:80 - 123端口
      • 答案:range 80 123
    • 匹配案例5

      • 匹配:1024及以上的端口
      • 答案:gt 1023
    • 匹配案例6

      • 匹配:1024及以下的端口
      • 答案:lt 1024

ACL分类

在这里插入图片描述

命名ACL

  • 标准ACL与扩展ACL的缺陷(序号)
    • 对任意一条ACL规则条目的删除、修改、插入都需要先删除整个ACL,然后重新配置。

在这里插入图片描述

  • 命名ACL

    • 按序号顺序匹配,可按序号增加、删除、修改、插入规则条目。

    • Cisco设备,如果省略序号,默认开始序号10,默认步长为10。

    • 标准命名ACL

      在这里插入图片描述

    • 扩展命名ACL

      在这里插入图片描述

  • 命名ACL应用案例

    • 可按序号增加、删除、修改、插入规则条目。

在这里插入图片描述

ACL高级应用

基于时间ACL配置案例

  • 需求:上班时间(9:00 - 18:00)不允许员工的主机(172.16.1.0/24)访问Internet,下班时间可以访问Internet上的Web服务。

在这里插入图片描述

自反ACL

  • 单向访问控制需求
    • 只允许内网访问外网,不允许外网访问内网

在这里插入图片描述

  • 自反ACL

    • reeflect name1:
      • 根据流出的数据流动自动产生回程需要的源目反向的ACL规则条目
    • evaluate1 name1
      • 调用自动产生的ACL

在这里插入图片描述

典型ACL包过滤案例

标准ACL

  • 标准ACL应用案例一
    • 只有192.168.1.0-254、192.168.2.0-191能访问192.168.3.0网段。
    • 不允许10.0.0.0/8访问本路由器的网段

在这里插入图片描述

  • 标准ACL应用案例二
    • 只有192.168.3.1-254才能Telnet到RT1。

在这里插入图片描述

扩展ACL

  • 扩展ACL应用案例一
    • 要求192.168.1.192 - 255不能访问192.168.2.128 - 255

在这里插入图片描述

  • 扩展ACL应用案例二
    • 192.168.1.0网段自动获取IP导致,且只能访问192.168.x.x

在这里插入图片描述

放置位总结:**标准靠目标,扩展靠源头;ACL要绑接口,PC是无能手。**即标准ACL放在靠近目标PC的那边的路由器上,因为标准ACL只能看源IP,放在太前面,容易误封。扩展ACL要放在靠近源目标的那边的路由器上,因为扩展ACL能精确的识别IP、各种协议等,放在前面可以节省宽带资源。

交换机IP ACL

  • 思科交换机IP ACL

在这里插入图片描述

✅ 一、ACL包过滤回顾(核心知识)

🔹 ACL(Access Control List)访问控制列表

是一种**基于规则对数据包进行匹配与控制(放行/拒绝)**的技术,应用于:

  • 包过滤(最常见)
  • 路由策略、NAT、防火墙等
  • QoS分类、按需拨号等

🔹 ACL匹配原则

  1. 自上而下按顺序匹配
  2. 一旦匹配成功就不再继续往下匹配
  3. 若没有匹配任何规则,则默认拒绝(Cisco)或看平台默认策略(华为默认放行)

✅ 二、ACL匹配结构

每条ACL规则 = 执行动作 + 匹配条件

例如:

access-list 101 permit tcp any any eq 80

表示:允许任何人访问目的端口为80(HTTP)的主机


✅ 三、ACL端口匹配方式(核心知识点)

ACL在过滤 TCP 或 UDP 协议 时,可以匹配源端口目的端口。这时就要用到你提到的端口范围操作符

操作符含义示例作用
eq等于eq 80匹配特定端口(如HTTP)
neq不等于neq 23除了该端口之外的都匹配
gt大于gt 1023高端口匹配
lt小于lt 1024匹配常见系统端口(如FTP、DNS)
range范围(含头尾)range 20 21匹配一段连续的端口(如FTP)

✅ 四、常见端口匹配案例

场景命令
匹配 DNS 服务eq 53
匹配 DHCP 服务器端口eq 67
匹配 DHCP 客户端端口eq 68
匹配 Web 服务eq 80
匹配 HTTPS 服务eq 443
匹配 FTP 控制端口eq 21
匹配 FTP 数据端口eq 20
匹配 80–123 之间的服务range 80 123
匹配 1024及以上端口gt 1023
匹配 1024以下端口lt 1024

✅ 五、完整ACL配置示例(Cisco)

🎯 示例1:允许访问HTTP和HTTPS,禁止其他访问

access-list 110 permit tcp any any eq 80
access-list 110 permit tcp any any eq 443
access-list 110 deny ip any any
interface f0/0
ip access-group 110 in

🎯 示例2:仅允许FTP服务端口范围

access-list 120 permit tcp any any range 20 21
access-list 120 deny ip any any

✅ 六、补充注意事项

  1. ACL分类
    • 标准ACL:只过滤源IP
    • 扩展ACL:支持源IP + 目的IP + 协议 + 端口号(最常用于端口匹配)
  2. 接口方向绑定
    • in:进接口方向(数据进入设备时)
    • out:出接口方向(数据从设备出去时)
  3. 一个接口一个方向只能绑定一条ACL
  4. 端口匹配只能用于 TCP / UDP 协议,不能用于 ICMP、GRE 等非端口协议。

✅ 七、额外练习(你可以尝试写写)

❓问题1:

只允许 192.168.1.0/24 访问 DNS 服务?

✅ 答案:

access-list 150 permit udp 192.168.1.0 0.0.0.255 any eq 53

❓问题2:

禁止任意主机 telnet 到本设备(23端口)?

✅ 答案:

access-list 160 deny tcp any any eq 23

命令解释:

✅ 示例1:允许访问 HTTP 和 HTTPS,禁止其他访问

access-list 110 permit tcp any any eq 80
access-list 110 permit tcp any any eq 443
access-list 110 deny ip any any
interface f0/0
ip access-group 110 in

🔍 第1行:

access-list 110 permit tcp any any eq 80
📖 解释:
  • access-list 110:定义一条编号为110的 扩展ACL(扩展ACL编号是100–199或2000–2699)
  • permit:表示 允许 匹配的流量通过
  • tcp:只作用于 TCP协议
  • any any
    • 第一个 any:表示任何源IP地址
    • 第二个 any:表示任何目标IP地址
  • eq 80:表示 目标端口等于80(即 HTTP 服务)
✅ 结果:

允许所有主机访问任意主机的 HTTP 服务


🔍 第2行:

access-list 110 permit tcp any any eq 443
📖 解释:
  • 跟上面结构一样,只是目标端口变为 eq 443,即 HTTPS(加密网页服务)
✅ 结果:

允许所有主机访问任意主机的 HTTPS 服务


🔍 第3行:

access-list 110 deny ip any any
📖 解释:
  • deny:拒绝匹配的流量
  • ip:表示匹配所有 IP 协议(包含 TCP、UDP、ICMP 等)
  • any any:任意源IP → 任意目标IP
✅ 结果:

拒绝所有非 HTTP/HTTPS 的 IP 流量(如 FTP、Telnet、DNS 等)

⚠️ 注意:这一条也起到了“兜底”的作用,拦截其它未明确放行的流量。


🔍 第4、5行:

interface f0/0
ip access-group 110 in
📖 解释:
  • interface f0/0:进入接口配置模式,表示在 f0/0 接口上应用ACL
  • ip access-group 110 in
    • 表示将 ACL 编号 110 绑定到该接口
    • 方向是 in(表示进入接口的数据包要被检查)

🧠 总体结果:

  • 接口 f0/0 接收到的数据包中:
    • 如果是 TCP 且目标端口是 80 或 443 → 放行
    • 否则(所有其它服务/协议)→ 拒绝

✅ 示例2:只允许FTP(控制+数据端口)

access-list 120 permit tcp any any range 20 21
access-list 120 deny ip any any

🔍 第1行:

access-list 120 permit tcp any any range 20 21
📖 解释:
  • permit tcp:允许 TCP 协议流量
  • any any:任意源IP、任意目标IP
  • range 20 21:目的端口号在 20~21 范围内(包含20和21)

📌 说明:

  • 端口20是 FTP 数据端口
  • 端口21是 FTP 控制端口
✅ 结果:

允许所有主机访问 FTP 服务(仅 FTP)


🔍 第2行:

access-list 120 deny ip any any

拒绝除 FTP 以外的所有 IP 流量


✅ 示例3:只允许 192.168.1.0/24 使用 DNS 服务

access-list 150 permit udp 192.168.1.0 0.0.0.255 any eq 53

🔍 解释:

  • permit udp:允许 UDP 协议流量
  • 192.168.1.0 0.0.0.255:源IP范围是 192.168.1.0 ~ 192.168.1.255
  • any:目标IP可以是任意
  • eq 53:目标端口为 53(DNS服务)
✅ 结果:

只允许 192.168.1.X 的主机访问 DNS 服务(UDP 53端口)


🧠 最后补充:ACL执行流程图简化版

http://www.lryc.cn/news/587391.html

相关文章:

  • 【OpenGL ES】手撕一个mini版的Android native渲染框架
  • 串口学习和蓝牙通信HC05(第八天)
  • AI交互中的礼貌用语:“谢谢“的效用与代价分析
  • 09.获取 Python 列表的首尾元素与切片技巧
  • LLM大模型微调技术全景:从IFT、SFT到RLHF、DPO与PPO强化学习
  • 华擎B150M Pro4S魔改bios上8代U
  • AutoLabor-ROS-Python 学习记录——第一章 ROS概述与环境搭建
  • vue3 el-select默认选中
  • (33)记录描述窗体组件属性的枚举量 enum Qt :: WidgetAttribute, 简记为 WA_
  • 大模型微调(一):基于Swift框架进行自我认知微调(使用Lora微调Qwen3-8B模型)
  • MCU中的系统控制器(System Controller)是什么?
  • pthread_mutex_unlock函数的概念和用法
  • 手写muduo笔记
  • Clojure和Golang中的Channel有什么异同(TBC)
  • NumPy 中 np.c_ 的用法解析
  • Can I Trust Your Answer? Visually Grounded Video Question Answering
  • Python协程进阶:优雅终止与异常处理详解
  • Java 面向对象的特征(一)
  • Actor-Critic重要性采样原理
  • 在高并发场景下,仅依赖数据库机制(如行锁、版本控制)无法完全避免数据异常的问题
  • 用豆包AI云盘保存和分析录音文件
  • 维基艺术图片: 数据标注 (2)
  • java: DDD using oracle 21c
  • 树莓派5-ollama-linux-arm64.tgz 下载
  • KL散度:信息差异的量化标尺 | 从概率分布对齐到模型优化的核心度量
  • 强化学习初探及OREAL实践
  • Leaflet面试题及答案(61-80)
  • Flink数据流高效写入MySQL实战
  • XCZU2CG-2SFVC784I Xilinx FPGA AMD Zynq UltraScale+ MPSoC
  • Vivado ILA抓DDR信号(各种IO信号:差分、ISERDES、IOBUFDS等)