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

news2024/10/1 16:15:00

目录

ACL 访问控制列表

ACL分类

ACL的组成

ACL匹配机制

ACL调用方式

实验配置

不允许PC1访问PC4

只允许PC1访问PC4

高级ACL

基本概念

实验配置 限制ping

实验配置 限制DNS

基于时间的ACL

实验配置


ACL 访问控制列表

根据一系列不同的规则,设备根据这些规则对数据包进行分类,并针对不同类型的报文进行不同的处理,从而可以实现网络访问行为的控制、限制网络流量,提高网络性能、防止网络攻击。

 

ACL分类

分类

编号范围

功能概述

基于接口的ACL

编号范围是1000~1999

根据报文的入接口对报文进行过滤

基本ACL

编号范围是2000~2999

根据源地址对报文进行过滤

高级ACL

编号范围是3000~3999

根据源/目的地址、源/目的端口号、协议类型等对报文进行过滤

二层ACL

编号范围是4000~4999

根据源MAC地址、目的MAC地址和以太帧协议类型等二层信息对报文进行过滤

用户ACL UCL(User ACL)

编号范围是6000~9999

根据报文的源IP地址、源业务组、源用户组、源端口号、目的IP地址、目的业务组、目的用户组、目的端口号、协议类型等内容定义规则,实现对报文的匹配过滤

基于MPLS的ACL

编号范围是10000~10999

根据MPLS报文的Exp值、Label值、TTL值对报文进行过滤

经常使用的是基本ACL和高级ACL。

 

ACL的组成

比如:rule deny source 192.168.1.12 0.0.0.0     

  • 其中的0.0.0.0 不是子网掩码而是通配符掩码,并不是区分网络号和主机号的,0.0.0.0可以简写成0
  • 通配符掩码用来告诉路由器,需要检查IP地址中的多少位(可以不是连续的1)
  • 0表示需要检查的位,1表示不需要检查的位 0->感兴趣 1->不感兴趣
  • 192.168.1.12  0.0.0.0表示精确匹配这个IP地址,而如果是0.0.0.0 255.255.255.255表示匹配所有(any)
  • 如果精确匹配最后一段是奇数的地址,那么最后1bit肯定是1,所以可以写成例如192.168.1.1 0.0.0.254 的样式

通配符掩码可以是不是连续的0或者1,如图

 

ACL匹配机制

 

ACL调用方式

 ACL调用分为inbound方向和outbound方向,inbound方向调用是先调用后路由,outbound方向调用是先路由后调用。

如果数据流方向如下图,那么在F0/0处就是IN方向,在F0/1就是OUT方向。

 如果数据流方向如下图,那么就是反过来,在F0/1口是IN方向,在F0/0口是OUT方向。

 

实验配置

  • 确定部署位置
  • 匹配对应流量
  • 决定调用方向
  • 查看以及测试

不允许PC1访问PC4

 

 第一步:确定部署位置

现在PC1 不允许访问PC4,控制肯定是在数据包的必经之路上,所以可以在R1和R2上配置,但是我们一般采用靠近源的位置进行配置,这个为了集中化部署。

我们选择R1上配置,但是R1上有俩个接口,G0/0/1和G0/0/2。选择G0/0/1,在数据的流向上,就是inbound入方向;选择G0/0/2,在数据的流向上,就是outbound出方向;一般我们还是采用靠近源的位置进行配置。

确认部署位置为R1的G0/0/1口。

第二步:匹配对应流量

[AR1]acl 2000     
[AR1-acl-basic-2000]rule 5 deny source 192.168.1.11 0.0.0.0     
[AR1-acl-basic-2000]rule permit source any

 

第三步:决定调用方式

[AR1] interface GigabitEthernet 0/0/1     
[AR1-GigabitEthernet0/0/1] traffic-filter inbound acl 2000

 

第四步:查看和测试

查看ACL       [AR1] display acl 2000

[AR1]display acl 2000
Basic ACL 2000, 2 rules
Acl's step is 5
 rule 5 deny source 192.168.1.12 0 
 rule 10 permit (5 matches)

查看流量模板的应用                [AR1]display traffic-filter applied-record 

[AR1]display traffic-filter applied-record 
-----------------------------------------------------------
Interface                   Direction  AppliedRecord       
-----------------------------------------------------------
GigabitEthernet0/0/1        inbound    acl 200

第五步:如何删除

删除的时候,使用rule 的编号进行删除

[AR1] acl 2000     

[AR1-acl-basic-2000] undo rule 5

或者 删除所有的ACL

[AR1]undo acl all
 Info: Now deleting all ACL configurations, please wait......
Deleting operation has finished!

 

只允许PC1访问PC4

第一步:确定部署位置

题目要求只允许PC1访问PC4,也就意味着剩余的PC2和PC3是不能访问PC4的,但PC1.PC2,PC3之间的通信应该是不受影响的,所以部署位置在R1的GE0/0/2或者R2的两侧接口处。我们一般选择靠近源的位置,也就是R1的G0/0/2口。

第二步:匹配对应流量

[AR1]acl 2000
[AR1-acl-basic-2000]rule permit source 192.168.1.11 0
[AR1-acl-basic-2000]rule deny source any

第三步:决定调用方式

[AR1]interface GigabitEthernet 0/0/2
[AR1-GigabitEthernet0/0/2]traffic-filter outbound acl 2000

第四步:查看和测试

[AR1]display acl 2000
Basic ACL 2000, 2 rules
Acl's step is 5
 rule 5 permit source 192.168.1.1 0 
 rule 10 deny (62 matches)

[AR1]display traffic-filter applied-record
-----------------------------------------------------------
Interface                   Direction  AppliedRecord       
-----------------------------------------------------------
GigabitEthernet0/0/2        outbound   acl 2000
----------------------------------------------------------- 

 

高级ACL

基本概念

高级ACL可以针对数据包的源、目的IP地址、协议类型、源目的端口号等元素进行匹配

  • 使用编号创建一个高级ACL,并进入ACL视图:

[Huawei] acl num
[Huawei-acl-adv-num]
高级ACL编号的范围是3000~3999。

  • 根据IP配置高级ACL规则:

[Huawei-acl-adv-num] rule 5  {permit/deny}  ip source src-address wildcard  destination dst-address wildcard
除了IP协议,高级ACL还能根据IP承载的上层协议信息进行匹配,例如TCP、UDP、ICMP等等。

ACL配置:操作符的含义

操作符及语法

含义

equal portnumber

等于端口号 portnumber

greater-than portnumber

大于端口号 portnumber

less-than portnumber

小于端口号 portnumber

not-equal portnumber

不等于端口号 portnumber

range portnumber1 portnumber2

介于端口号 portnumber1和portnumber2之间

 

实验配置 限制ping

在PC1和PC2都可以访问Server1和Server2的情况下,限制PC2 ping Server2,放行其他流量

 1.配置ACL 匹配对应流量

[AR1]acl 3000
[AR1-acl-adv-3000]rule deny ip source 192.168.1.2 0 destination 10.1.1.2 0 icmp-type echo

#echo 和 echo reply 不同,如果都被限制,那么Server2也无法ping PC2,所以不能限制echo reply
[AR1-acl-adv-3000]rule permit ip 

 2.接口进行调用

[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]traffic-filter inbound acl 3000

实验配置 限制DNS

在PC1和PC2都可以访问Server1和Server2的情况下,限制PC2访问Server2的DNS服务,放行其他流量

  • DNS使用的是UDP服务
  • DNS的传输层端口号是53

[AR1]acl 3000     
[AR1-acl-adv-3000]rule deny UDP source 192.168.1.2 0 destination 10.1.1.2 0 dest ination-port eq 53
[AR1-acl-adv-3000]rule permit ip

[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]traffic-filter inbound acl 3000

 

基于时间的ACL

命令规范

time-range time-name [ { time1 to time2 { days }    |     from time1 date1 [ to time2 date2 ] } ]

time-name  指定时间段的名称。

time-name

指定时间段的名称

time1

指定时间段的开始时间

to time2

指定时间段的结束时间

days

指定时间段在周几有效

from time1 date1

指定时间段从某一天某一时间开始

to time2 date2

指定时间段到某一天某一时间结束。

结束时间必须大于起始时间。

举例

  • time-range test 14:00 to 18:00 off-day
  • 配置时间段test,在周末下午14:00到18:00生效
  • time-range test from 08:30 2013/1/1 to 18:00 2013/12/31
  • 配置时间段test,从2013年1月1日早上8点半开始生效,2013年12月31日晚上6点停止生效

实验配置

规定员工在上班时间(周一到周五8:00-17:00)不能浏览taobao网站

1.创建时间范围 time-range

[AR1]time-range working-time 8:00 to 17:00 working-day 

2.配置基于时间的ACL

[AR1]acl 3000     
[AR1-acl-adv-3000]rule 4 deny tcp source 192.168.1.0 0.0.0.255 time-range working-time destination 10.1.1.1 0 destination-port eq 80
[AR1]interface GigabitEthernet 0/0/0
[AR1-GigabitEthernet0/0/0]traffic-filter inbound acl 3000

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

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

相关文章

使用Python实现Auto.js的自动输入图形验证码

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

【unity进阶知识6】Resources的使用,如何封装一个Resources资源管理器

文章目录 一、Unity资源加载的几种方式1、Inspector窗口拖拽2、Resources3、AssetBundle4、Addressables(可寻址资源系统)5、AssetDatabase 二、准备三、同步加载Resources资源1、Resources.Load同步加载单个资源1.1、基本加载1.2、加载指定类型的资源1.…

详解JavaScript中把函数作为值

8.4 作为值的函数 JS中函数不仅是一种语法,也是值,也就是说,可以将函数赋值给变量,存储在对象的属性或者数组的元素中,作为参数传入另外一个函数等。 来看一个函数:function square(x){return x*x;} 定义…

深度学习之入门书籍

自学深度学习,书籍很重要。 从我个人来说,我不太习惯英译版本,或者那些牛人说的,直接读英文,我是水平不够。只讲自己的经验。牛人绕道。 推荐书籍: 深度学习:从入门到精通,这本书不错。把基础的深度学习的…

自然语言处理问答系统技术

自然语言处理问答系统技术 随着人工智能的不断发展,自然语言处理(NLP)技术已成为推动智能问答系统发展的核心技术。问答系统是利用NLP来解析用户提出的问题,并从知识库中找到最相关的答案。在许多应用中,如智能客服、…

用 LoRA 微调 Stable Diffusion:拆开炼丹炉,动手实现你的第一次 AI 绘画

总得拆开炼丹炉看看是什么样的。这篇文章将带你从代码层面一步步实现 AI 文本生成图像(Text-to-Image)中的 LoRA 微调过程,你将: 了解 Trigger Words(触发词)到底是什么,以及它们如何影响生成结…

构建企业数字化转型的战略基石——TOGAF框架的深度解析

数字化时代的企业变革需求 在全球范围内,数字化转型已成为企业提高竞争力、优化运营流程、提升客户体验的核心战略。数字技术的迅猛发展,不仅改变了传统行业的运作模式,也迫使企业重新思考其业务架构和技术基础设施。TOGAF(The O…

用示波器测动态滞回线

大学物理(下)实验-中南民族大学通信工程2022级 手动逐个处理数据较为麻烦且还要绘图,故想到用pythonmatplotlib来计算结果并数据可视化。 代码实现 import matplotlib.pyplot as plt# 样品一磁化曲线 X [0, 0.2, 0.4, 0.6, 0.8, 1, 1.5, 2.…

实战笔记:Vue2项目Webpack 3升级到Webpack 4的实操指南

在Web开发领域,保持技术的更新是非常重要的。随着前端构建工具的快速发展,Webpack已经更新到5.x版本,如果你正在使用Vue2项目,并且还在使用Webpack 3,那么是时候考虑升级一下Webpack了。我最近将我的Vue2项目从Webpack…

TDesign组件库+vue3+ts 如何视觉上合并相同内容的table列?(自定义合并table列)

背景 当table的某一列的某些内容相同时&#xff0c;需要在视觉上合并这一部分的内容为同个单元格 如上图所示&#xff0c;比如需要合并当申请人为同个字段的列。 解决代码 <t-table:data"filteredData":columns"columns":rowspan-and-colspan"…

psutil库的使用说明

前言 psutil是一个跨平台的库&#xff0c;用于获取系统的进程和系统利用率&#xff08;包括 CPU、内存、磁盘、网络等&#xff09;信息。 目录 安装 应用场景 常用方法 一、系统信息相关函数 二、进程信息相关函数 三、网络信息相关函数 四、其他实用函数 使用样例 监控应…

YOLOv11改进 | Neck篇 | YOLOv11引入BiFPN双向特征金字塔网络

1.BiFPN介绍 摘要&#xff1a;模型效率在计算机视觉中变得越来越重要。 在本文中&#xff0c;我们系统地研究了用于目标检测的神经网络架构设计选择&#xff0c;并提出了几个提高效率的关键优化。 首先&#xff0c;我们提出了一种加权双向特征金字塔网络&#xff08;BiFPN&…

【Linux服务器】git和github交互使用

前言&#xff1a;有时候pycharm连接不上github&#xff0c;还是得命令行操作 目录 1. 准备git2. 配置github账户3. 上传项目3.1 创建本地仓库3.2 提交本地代码3.3 上传到github 4. 注意 1. 准备git 下载链接&#xff1a;官网 下载后直接运行安装&#xff0c;cmd输入git --vers…

基于Springboot+Vue的农场投入品运营线上管理系统 (含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 在这个…

Kali Linux语言设置成中文

要将Kali Linux设置成中国地区&#xff08;简体中文&#xff09;&#xff0c;可以按照以下步骤进行操作&#xff1a; 一、更新软件包列表 打开Kali Linux的终端。输入以下命令来更新软件包列表&#xff1a; sudo apt-get update二、安装语言包 输入以下命令来安装locales包…

社区医疗健康管理:SpringBoot技术应用

1系统概述 1.1 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所&#xff0c;二十一世纪是信息的时代&#xff0c;所以信息的管理显得特别重要。因此&#xff0c;使用计算机来管理社区医院信息平台的相关信息成为必然。开发…

如何实现多套环境的自动化测试?

实战练习 分别准备两套测试环境&#xff0c;都对其发起 get 请求&#xff0c;传入参数 name&#xff0c;对应值为 hogwarts&#xff0c;并断言其响应值。 测试环境1&#xff1a;http://httpbin.org/get 测试环境2&#xff1a;https://httpbin.ceshiren.com/get <strong&g…

YOLOv11改进 | Neck篇 | YOLOv11引入Slim-Neck(轻量)

1. Slim-Neck介绍 摘要&#xff1a;目标检测是计算机视觉中重要的下游任务。 对于车载边缘计算平台来说&#xff0c;巨大的模型很难达到实时检测的要求。 而且&#xff0c;由大量深度可分离卷积层构建的轻量级模型无法达到足够的精度。 我们引入了一种新的轻量级卷积技术 GSCon…

Go语言入门:掌握基础语法与核心概念

Go&#xff08;又称 Golang&#xff09;是一种开源的编程语言&#xff0c;由 Google 的 Robert Griesemer、Rob Pike 和 Ken Thompson 在 2007 年设计。Go 语言在设计时考虑了现代多核处理器的并发计算&#xff0c;其语法简洁、易于理解&#xff0c;同时提供了高效的编译和执行…

Android Studio | 无法识别Icons.Default.Spa中的Spa

编写底部导航栏&#xff0c;涉及到Spa部分出现报红&#xff1a; 解决办法&#xff1a;在build.gradle.kts中引入图标依赖 dependencies {implementation "androidx.compose.material:material-icons-extended:<version>" }