网络基础10--ACL与包过滤

一、ACL 定义与核心功能

ACL(访问控制列表)是通过规则匹配实现数据包过滤或分类的核心技术,广泛应用于包过滤、NAT、QoS、路由策略等场景。其核心由规则条目组成,每条规则包含匹配条件(如源 / 目 IP、端口、协议)和执行动作(Permit/Deny),最终隐含 “拒绝所有” 规则(思科设备)或依赖全局默认策略(华为设备)。

二、工作原理与设备差异
  1. 匹配顺序

    • 思科:按规则配置顺序逐条匹配,隐含拒绝所有(Default Deny)。

               2.华为 / H3C:支持全局默认策略(默认 Permit),无隐含规则,未匹配规则的数据包按全局策略处理。

    2. 接口方向:入方向(In)过滤进入设备的数据包,出方向(Out)过滤离开设备的数据包,每个接口每方向仅支持绑定一条 ACL。

    3. 转发流程:思科 IP 转发中,入方向先过滤,出方向后过滤;华为类似,但支持策略路由与 NAT 联动。

三、ACL 分类与配置要点

1.分类

      1.ACL按照匹配字段所属的网络层次(三层 /二层 )及功能特性进行的分类:

类型序号范围(华为 / 思科)匹配字段典型应用
基本 ACL2000-2999(华为)/1-99(思科)仅源 IP限制网段访问(如 Telnet)
扩展 ACL3000-3999(华为)/100-199(思科)五元组(源 / 目 IP、协议、端口)精细控制(如禁止特定端口)
二层 ACL(MAC)4000-4999(华为)/700-799(思科)MAC 地址、以太类型交换机端口安全

      2. ACL 的功能(匹配字段)和配置方式(规则管理特性) 进行的分类:

      (1)传统标准ACL
分类数据:根据数据包中的源 IP 地址分类数据。
增删改:只能按照质序增加,不能从中间新增,删除一一个规则即册除整条 ACL。
(2)命名标准ACL
分类数据:根据数据包中的源 IP 地址分类数据。
增刑改:每条ACL中的规则都有唯-一序号按照序号从小到大依次匹配,可以按序号新
增,可以单独删除某一条规则。
(3)传统扩展ACL
分类数据:可以根据数据包中的五元组来分类数据(、目IP,协议号,源、目端口)。
增删改:只能按照顺序增加,不能从中间新增,删除-一个规则即删除整条 ACL。

     (4)命名扩展ACL
分类数据:可以根据数据包中的五元组来分类数据(源、目IP,协议号,源、目端口)。
增删改:每条 ACL中的规则都有唯一序号。按照序号大小匹配,可以按序号新增。

2.配置关键

  • 通配符:IP 匹配使用通配符(0 固定,1 可变),如192.168.1.0 0.0.0.255匹配网段。

  • 端口操作符:支持gt(大于)、 eq(等于)、不等于(neq)、小于(lt)、range(范围)等,如range 80 123匹配 80-123 端口。

  • 命名 ACL:支持按序号插入 / 删除规则(如思科默认步长 10(起始10),华为 / H3C默认步长 5(华为起始5 / H3C起始0)),解决序号 ACL 需整体删除的缺陷。

四、高级应用与典型案例

1. 高级应用:

  1. 基于时间的 ACL
    限制上班时间(9:00-18:00)禁止特定网段访问外网,配置示例:

    time-range off-work  
    periodic weekdays 09:00 to 18:00  
    access-list 100 deny ip 172.16.1.0 0.0.0.255 any time-range off-work  
    

    (绑定接口入方向)。

  2. 自反 ACL(单向控制)
    仅允许内网主动访问外网,自动生成回程规则。思科通过established关键字匹配已建立的 TCP 连接,华为需配置reflect动态生成反向规则。

  • reflect关键字:在出站 ACL 中标记流量,触发自反规则生成(需与evaluate配合使用)。

  • evaluate关键字:在入站 ACL 中调用自反规则,允许回程流量。

      3. 分片处理

          思科默认过滤所有分片,华为支持首片匹配后放行后续分片,避免碎片攻击。

2. 典型案例:   

      标准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应用案例一:要求192.168.1.192 -255不能访问192.168.2.128 -255。

        扩展ACL应用案例二:192.168.1.0网段自动获取IP地址,且只能访问192.168.x.x。

五、配置注意事项
  • 接口绑定位置:标准 ACL 建议近目的端(过滤源 IP),扩展 ACL 近源端(减少冗余流量)。

  • 隐含规则风险:思科未匹配规则默认拒绝,华为需显式配置deny any或依赖全局策略。

  • 日志与排错:启用 ICMP 不可达消息可反馈拒绝原因,但可能泄露信息,需按需开启。

六、总结

        ACL 通过规则匹配实现网络细粒度控制,其核心在于理解设备差异(如隐含规则、匹配顺序)、灵活运用通配符与端口操作符,并结合时间、方向等条件实现场景化需求。典型案例包括网段隔离(如 192.168.1.192-255 禁止访问 192.168.2.128-255)、服务限制(仅允许 DNS/80/443 端口)等,需根据设备类型(思科 / 华为)选择对应配置方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/89091.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/89091.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web安全 - 基于 SM2/SM4 的前后端国产加解密方案详解

文章目录概述一、背景与法规要求二、算法选型三、核心流程四、前端实现要点(伪代码)五、后端实现要点(伪代码)六、公钥存储策略七、全流程示例图八、总结与最佳实践推荐概述 随着信息安全法规日益严格,如《网络安全法》《数据安全法》和等保…

ACL动态路由实验全攻略:配置与安全实战

实验拓扑图 实验需求 步骤1.按照图示配置IP地址2.按照图示区域划分配置对应的动态路由协议3.在R7上配置dhcp服务器,能够让pc可以获取IP地址4.将所有环回宣告进ospf中,将环回17宣告进rip中,将rip路由引rospf中,ospf路由引.rip中5.要…

电动汽车制动系统及其工作原理

制动系统是实现车辆减速、停车功能的重要系统。电动汽车的制动系统按照制动实现方式分为机械制动和电机再生制动,机械制动根据制动力实现方式不同又可分为液压机械制动系统、气压机械制动系统和电子机械制动系统。目前,电动汽车的制动系统实现一般为协调…

CentOS 7 Linux 离线安装 docker-compose

CentOS 7 Linux 离线安装 docker-compose 1. docker-compose 简介 1.1. docker-compose 是什么? docker-compose 是 Docker 官方提供的工具,用于定义和运行多容器 Docker 应用程序。通过一个 YAML 文件(通常为 docker-compose.yml&#xf…

排序算法实战(上)

一、引言在力扣刷题的旅程中,排序类题目是绕不开的重要板块。今天就来分享两道经典排序题——912. 排序数组和75. 颜色分类的解题思路与代码实现,带你深入理解排序算法在实际题目中的应用 。二、题目剖析与解题思路(一)912. 排序数…

python学智能算法(二十)|SVM基础概念-感知机算法及代码

引言 前序学习进程中,已经学习了超平面的基础知识,学习链接为:超平面 在此基础上,要想正确绘制超平面,还需要了解感知机的相关概念。 感知机 感知机是对生物神经网络的模拟,当输入信号达到感知机的阈值时…

操作HTML网页

一、HTML网页的介绍 HTML,即超文本标记语言(HyperText Markup Language),它不是一种编程语言,而是一种标记语言,用于描述网页的结构。HTML 通过一系列标签来定义网页中的各种元素,如文本、图片…

Django--03视图和模板

Django–03视图和模板 Part 3: Views and templates 本教程承接第二部分,我们将继续开发投票应用,重点介绍 Django 的表单处理和通用视图。 文章目录Django--03视图和模板前言概述一、编写更多视图二、编写实际执行操作的视图三、快捷方式:r…

《每日AI-人工智能-编程日报》--2025年7月15日

介绍:AI :英伟达恢复向中国销售 H20 并推出新 GPU:7 月 15 日,英伟达官宣将恢复向中国销售 H20,并推出全新的 NVIDIA RTX PRO GPU,其中 B30 性能约为 H20 的 75%,定价在 6500 至 8000 美元之间&…

C++STL-list

一.基础概念相当于数据结构里面的双向链表二.基础操作1.list对象创建1. 默认构造函数list<int> l1;2. 初始化列表list<int> l2_1 { 9,8,7,6,5 };list<int> l2_2({ 9, 8, 7, 1, 5 });3. 迭代器list <int> l3(l2_1.begin(), l2_1.end());4. 全0初始化li…

【PTA数据结构 | C语言版】字符串插入操作

本专栏持续输出数据结构题目集&#xff0c;欢迎订阅。 文章目录题目代码题目 请编写程序&#xff0c;将给定字符串 t 插入到另一个给定字符串 s 的第 pos 个字符的位置。 输入格式&#xff1a; 输入先后给出主串 s 和待插入的字符串 t&#xff0c;每个非空字符串占一行&#…

Postman + Newman + Jenkins 接口自动化测试

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 </

CAS单点登录架构详解

目录 概述核心概念 TGC (Ticket Granting Cookie)TGT (Ticket Granting Ticket)ST (Service Ticket) 架构设计 整体架构存储架构安全机制 工作流程 完整登录时序流程步骤详解 技术实现 会话管理数据同步问题最佳实践 参考资料 概述 CAS (Central Authentication Service) 是…

C++中正则表达式详解和实战示例

C 中的正则表达式&#xff08;Regular Expression&#xff09;主要通过标准库 <regex> 提供&#xff0c;能够用于字符串匹配、查找、替换、验证格式等。它在 C11 中首次引入&#xff0c;并在 C14 和 C17 中逐步完善。一、头文件和命名空间 #include <regex> #inclu…

深入解析Avro、Protobuf与JSON:序列化技术的选择与应用

在现代分布式系统和数据交换场景中&#xff0c;序列化技术是数据存储、传输和通信的核心。本文深入探讨三种主流序列化技术&#xff1a;Avro、Protobuf 和 JSON&#xff0c;从背景、特点、示例代码&#xff08;Python&#xff09;、优势及最佳实践等多个维度进行对比分析&#…

Vue 中 effectScope() 的全面解析与实战应用

一、effectScope 概述1.1 什么是 effectScopeeffectScope() 是 Vue 3.2 引入的核心 API&#xff0c;用于创建副作用作用域容器。它能够将多个响应式副作用&#xff08;如 watch、watchEffect 和 computed&#xff09;组织在一起&#xff0c;实现统一的生命周期管理。1.2 核心价…

嵌入式面试八股文(十六)·一文搞懂嵌入式常用名词IC、ASIC、CPU、MPU、MCU、SoC、SoPC、GPU、DSP

目录 1. IC&#xff08;Integrated Circuit&#xff0c;集成电路&#xff09; 2. ASIC&#xff08;Application-Specific Integrated Circuit&#xff0c;专用集成电路&#xff09; 3. CPU&#xff08;Central Processing Unit&#xff0c;中央处理器&#xff09; 4. M…

安全参綉25暑假第一次作业

第一天 1.首先讲了d0cker的部署&#xff0c; 这个是第一个Vulhub漏洞环境。所有环境都使用D0cker容器化&#xff0c;使其易于部署和隔离测试。 其中&#xff0c;国内的阿里用不了&#xff0c;你得搞个代理&#xff0c;下国外的&#xff1a;入门指南 | Vulhub 然后按这个…

RocketMQ源码级实现原理-消息消费总览

Overview可以看到&#xff0c;pull message和consume message实际上是两个过程&#xff0c;但是对于用户是透明的 注意这三个Offset的含义&#xff0c;physical offset就是commitLog中的全局偏移量分发dispatch如上图&#xff0c;Topic的每个queue&#xff0c;都绑定了唯一的一…

linux打包固件shell脚本

不打包 pack.sh解压后无父目录&#xff08;直接是文件&#xff09;生成 checksum.txt&#xff08;包含所有文件的 SHA256&#xff09;打包后 .tar.gz 移动到上级目录#!/bin/bash# 检查是否传入版本号参数 if [ -z "$1" ]; thenecho "Usage: $0 <version> …