ACL学习笔记

news2024/12/23 23:31:40

1.ACL快速配置

需求:拒绝PC 1访问PC 3

(1)配置PC

PC 1:

PC 2:

PC 3:

(2)配置R1的接口IP信息

sys

sysname R1

undo info-center enable

interface GigabitEthernet0/0/0

 ip address 192.168.1.1 255.255.255.0

 quit

interface GigabitEthernet0/0/1

 ip address 192.168.2.1 255.255.255.0

 quit

interface GigabitEthernet0/0/2

 ip address 192.168.3.1 255.255.255.0

 quit

display ip interface brief

(3)验证网络连通性

PC 1 ping PC 2 和 PC 3

(4)在R1上创建高级ACL,禁止PC 1访问PC 3:

acl 3000

rule deny ip source 192.168.1.2 0 destination 192.168.3.2 0

#创建规则拒绝源IP为192.168.1.2访问目标IP为192.168.3.2的报文

quit

int g0/0/0

traffic-filter inbound acl 3000

#在G0/0/0接口的入方向调用ACL 3000

quit

(5)验证ACL规则

结果可以看到PC 1无法访问PC 3,说明ACL规则生效拒绝192.168.1.2访问192.168.3.2。

2.ACL技术概述

随着网络的飞速发展,网络安全和网络服务质量QoS (Quality of Service)问题日益突出。访问控制列表 (ACL, Access Control List)是与其紧密相关的一个技术。

ACL可以通过对网络中报文流的精确识别,与其他技术结合,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。

访问控制列表(ACL技术是一种基于包过滤的流控制技术,用于实现网络访问控制和流量过滤。

ACL是由一系列permitdeny语句组成的、有序规则的列表。

ACL是一个匹配工具,能够对报文进行匹配和区分。

ACL应用:

• 匹配IP流量

• 在Traffic-filter中被调用

• 在NAT(Network Address Translation)中被调用

• 在路由策略中被调用

• 在防火墙的策略部署中被调用

• 在QoS中被调用

• 其他……

ACL技术通过定义一系列的访问规则,‌这些规则可以针对数据包的源地址、目的地址、端口号、协议类型等进行匹配,‌从而实现对网络流量的精细控制。

‌ACL可以分为不同的类型,‌包括标准IP访问列表、扩展IP访问列表、命名的IP访问列表等,‌每种类型都有其特定的应用场景和匹配规则。‌

例如,‌标准IP访问列表主要匹配IP包中的源地址,‌而扩展IP访问列表则提供了更多的匹配项,如协议类型、源端口、目的端口等。‌

3.ACL工作原理

ACL的工作原理主要涉及在路由设备上定义ACL列表,‌并将这些列表应用于路由设备的某个接口上,‌以便对通过该接口的流量进行过滤。‌当数据包到达路由设备时,‌路由设备会读取数据包的包头信息,‌并与ACL列表中的规则进行匹配。‌一旦数据包与某条规则匹配,‌路由设备将根据该规则的决定(‌允许或拒绝)‌来处理该数据包。‌如果数据包与所有规则都不匹配,‌则可能会被默认拒绝或允许,‌这取决于ACL的配置和默认规则。‌

3.1ACL的组成

ACL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。

3.2规则编号

规则编号与步长

规则编号(Rule ID):一个ACL中的每一条规则都有一个相应的编号。

步长(Step): 步长是系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值,缺省值为5步长的作用是为了方便后续在旧规则之间,插入新的规则。

思考:如果希望增加1条规则,该如何处理?

可以在旧规则10和15之间新增一条rule 11

比如rule 11 deny source 10.1.1.3 0

Rule ID分配规则: 系统为ACL中首条未手工指定编号的规则分配编号时,使用步长值(例如步长=5,首条规则编号为5)作为该规则的起始编号;为后续规则分配编号时,则使用大于当前ACL内最大规则编号且是步长整数倍的最小整数作为规则编号。

例1:首条未手工指定编号的规则分配编号时,会使用默认步长值5作为该规则的起始编号,第二条还是不指定的话,那么就以5的倍数去增加,第二条的步长值就为10进行编号。

例2:当我们指定首条规则的步长小于默认值步长5,比如为2,那么下一跳未指定规则编号步长值就为5。

例3:当我们指定首条规则的步长大于默认值步长5,比如为6,那么下一跳未指定规则编号步长值就为10。而不会从5开始编号。

3.3通配符(Wildcard)

通配符是一个32比特长度的数值,用于指示IP地址中,哪些比特位需要严格匹配,哪些比特位无需匹配。

通配符通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码完全不同。

3.3.1匹配规则:

 “0”表示“严格匹配” ; “1”表示“任意”

思考:如何匹配192.168.1.1/24对应网段的地址?

比如rule permit source 192.168.1.0 0.0.0.255;后面通配符的255代表192.168.1.0段的任意匹配了。

3.3.2匹配192.168.1.0/24这个子网中的奇数IP地址,例如192.168.1.1、192.168.1.3、192.168.1.5等。匹配奇数IP最后一位通配符需为1。

特殊的通配符

精确匹配192.168.1.1这个IP地址

192.168.1.1 0.0.0.0 = 192.168.1.1 0

匹配所有IP地址

      1. 255.255.255 = any

3.4 ACL的分类与标识

3.4.1基于ACL规则定义方式的分类

分类

编号范围

规则定义描述

基本ACL

2000~2999

仅使用报文的源IP地址分片信息生效时间段信息来定义规则。

高级ACL

3000~3999

可使用IPv4报文的源IP地址、目的IP地址、协议类型、ICMP类型、TCP源/目的端口号、UDP源/目的端口号、生效时间段等来定义规则。

二层ACL

4000~4999

使用报文的以太网帧头信息来定义规则,如根据源MAC地址、目的MAC地址、二层协议类型等。

用户自定义ACL

5000~5999

使用报文头、偏移位置、字符串掩码和用户自定义字符串来定义规则。

用户ACL

6000~6999

既可使用IPv4报文的源IP地址或源UCL(User Control List)组,也可使用目的IP地址或目的UCL组、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。

3.4.2基于ACL配置方法的分类

分类

规则定义描述

数字型ACL

传统的ACL标识方法。创建ACL时,指定一个唯一的数字标识该ACL。

命名型ACL

通过名称代替编号来标识ACL。

3.4.3基本ACL

编号范围: 2000-2999

假设在某个部门中,不允许10.1.1.1和10.1.1.2访问外网,

创建的基本ACL 2000中,规则5和10精确匹配拒绝源IP地址10.1.1.1和10.1.1.2,

其他10.1.1.0网段源IP地址则可以访问外网。基本ACL功能单一。

3.4.4高级ACL

编号范围: 3000-3999

高级ACL比基本ACL更精准去建立规则。

3.5 ACL的匹配机制

3.6 ACL的匹配顺序及匹配结果

配置顺序(config模式)

系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。

思考:“允许”是指允许流量通过吗?

不是绝对的,主要看ACL调用在什么地方。如果是调用在流量过滤(traffic-filter),那么它就是允许。

3.7 ACL的匹配位置

入站 (Inbound)及出站 (Outbound)方向

3.8 ACL 总结

① 如果某acl 没有被调用,该acl不起任何作用。

② 针对接口下traffic-filter 调用acl,一个接口的同一个方向,只能调用一个acl。

③ 通常情况下,一个acl里面可以有多个rule 规则,从上往下依次执行。

④ 数据包一旦被某rule匹配,就不再继续向下匹配。

⑤ ACL 用来做流量过滤时,默认隐含放过所有(华为设备)

4.ACL 的基础配置

4.1基本ACL的基础配置命令

华为命令中,中括号里的可以选配或者不配,而大括号{ }里面的内容是必配。

(1) 创建基本ACL

[Huawei] acl [ number ] acl-number [ match-order config ]

使用编号(2000~2999)创建一个数字型的基本ACL,并进入基本ACL视图。

例:acl number 2001 或 alc 2001

[Huawei] acl name acl-name { basic | acl-number } [ match-order config ]

使用名称创建一个命名型的基本ACL,并进入基本ACL视图。

例:

(2)配置基本ACL的规则

[Huawei-acl-basic-2000] rule [ rule-id ] { deny | permit } [ source { source-address source-wildcard| any}| time-range time-name ]

在基本ACL视图下,通过此命令来配置基本ACL的规则。

4.2案例一:使用基本ACL过滤数据流量

配置需求:

在R1上部署基本ACL后,ACL将试图穿越R1 的源地址为192.168.1.0/24网段的数据包过滤掉,并放行其他流量,从而禁止192.168.1.0/24网段的用户访R1右侧的服务器网络。

(1)配置PC

PC1:

PC2:

(2)配置R1接口IP信息

sys

undo info-center enable

sysname R1

int g0/0/0

interface GigabitEthernet0/0/0

 ip address 192.168.1.1 255.255.255.0

interface GigabitEthernet0/0/1

 ip address 10.1.1.2 255.255.255.0

interface GigabitEthernet0/0/2

 ip address 192.168.2.1 255.255.255.0

 quit

(3)验证网络连通性

PC1进行ping访问网关和server

(4)在R1上创建基本ACL,禁止192.168.1.0/24网段访问Internet 服务器网络:

acl 2000 

 rule 5 deny source 192.168.1.0 0.0.0.255

(5)由于从接口GE0/0/0进入R1,所以在接口GE0/0/0的入方向配置流量过滤:

interface GigabitEthernet0/0/0

traffic-filter inbound acl 2000

quit

(6)验证ACL

ACL规则生效,在R1的GE0/0/0入方向禁止PC1访问服务器,PC2不做ACL控制还是可以访问的。

4.3高级ACL的基础配置命令

(1)创建高级ACL

[Huawei] acl [ number ] acl-number [ match-order config ]

使用编号(3000~3999)创建一个数字型的高级ACL,并进入高级ACL视图。

[Huawei] acl name acl-name { advance | acl-number } [ match-order config ]

使用名称创建一个命名型的高级ACL,进入高级ACL视图。

(2)配置基本ACL的规则

根据IP承载的协议类型不同,在设备上配置不同的高级ACL规则。对于不同的协议类型,有不同的参数组合。

当参数protocol为IP时,高级ACL的命令格式为

在高级ACL视图下,通过此命令来配置高级ACL的规则。

当参数protocol为TCP时,高级ACL的命令格式为

在高级ACL视图下,通过此命令来配置高级ACL的规则。

4.4案例二:使用高级ACL限制不同网段的用户互访

配置需求:

某公司通过R1实现各部门之间的互连。为方便管理网络,管理员为公司的研发部和市场部规划了两个网段的IP地址。

现要求R1能够限制两个网段之间互访,防止公司机密泄露。

(1)配置PC

研发部门PC 1:

市场部门PC 2:

(2)配置R1和Internet的接口IP

R1:

sys

sysname R1

undo info-center enable

interface GigabitEthernet0/0/0

 ip address 10.1.1.1 255.255.255.0

 quit

interface GigabitEthernet0/0/1

 ip address 10.1.2.1 255.255.255.0

quit

interface GigabitEthernet0/0/2

 ip address 12.1.1.1 255.255.255.252

quit

Internet:

sys

sysname Internet

undo info-center enable

interface GigabitEthernet0/0/0

 ip address 12.1.1.2 255.255.255.252

 quit

(3)验证网络连通性

PC 1 ping PC 2 和 Internet

(4)配置路由

R1:

ip route-static 0.0.0.0 0 12.1.1.2

Internet:

ip route-static 10.1.1.0 24 12.1.1.1

ip route-static 10.1.2.0 24 12.1.1.1

或配置汇总的静态路由

ip route-static 10.1.0.0 23 12.1.1.1

验证连通性PC1 ping Internet

(5)创建高级ACL 3001并配置ACL规则,拒绝研发部访问市场部的报文:

acl 3001

rule deny ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255

quit

(6)创建高级ACL 3002并配置ACL规则,拒绝市场部访问研发部的报文:

acl 3002

rule deny ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255

quit

(7)由于研发部和市场部互访的流量分别从接口GE0/0/0和GE0/0/1进入R1,所以在接口GE0/0/0和GE0/0/1的入方向配置流量过滤:

interface GigabitEthernet 0/0/0

traffic-filter inbound acl 3001

 quit

interface GigabitEthernet 0/0/1

 traffic-filter inbound acl 3002

quit

(8)验证结果

PC 1 访问PC 2

4.5案例三:使用ACL基本命名型和高级命名型做访问控制

配置需求:

PC 1在工作日周一至周五允许访问网络的时间为6:00-23:00;

PC 2 访问PC 1。

(1)R1已完成IP地址和路由的相关配置。

(2)配置PC 1访问网络的时间段

time-range time_to_internet 6:00 to 23:00 working-day

(3)在R1上创建PC 1访问网络的基本命名型ACL,并调用时间规则

acl name PC1_to_internet basic

rule permit source 10.1.1.0 0.0.0.255 time-range time_to_internet

quit

(4)在R1上创建PC 2禁止访问PC 1的高级命名型ACL

acl name deny_PC2_to_PC1 advance

rule deny ip source 10.1.2.2 0 destination 10.1.1.2 0

quit

(5)在R1的G0/0/0和G0/0/1接口的入方向配置流量过滤

int g0/0/0

traffic-filter inbound acl name PC1_to_internet

quit

int g0/0/1

traffic-filter inbound acl name deny_PC2_to_PC1

quit

(6)验证测试

查看所有的ALC

PC 2 访问PC 1

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

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

相关文章

超声波智能水表多少钱一个?

超声波智能水表的价格因品牌、功能、规格等因素而异,就拿深圳合众致达科技有限公司智能水电表厂家的超声波智能水表DN15口径产品举例,价格为399元起。具体价格需根据实际需求来确定。 一、影响价格的主要因素 -技术含量:具备远程数据传输、…

DSOJ-id12

1.保留几位小数 #include <iostream>#include <iomanip> //必须包含这个头文件using namespace std;void main( ){ double a 3.141596;cout<<fixed<<setprecision(3)<<a<<endl; //输出小数点后3位 2. 使用了未初始化的局部变量 Point* …

如何使用小乌龟清除认证缓存、还原版本、定位及常用开发工具集成

&#x1f600;前言 本篇博文是关于如何使用小乌龟清除认证缓存、还原版本、定位及常用开发工具集成&#xff0c;希望你能够喜欢 &#x1f3e0;个人主页&#xff1a;晨犀主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是晨犀&#xff0c;希望我的文章可以帮助到大…

openGuass之CTE Reuse

一. 前言 ​ CTE 是指with的公共表达式&#xff0c;如下所示是个CTE样例&#xff1a; ​ CTE表达式往往在同一条sql中多次被重复引用&#xff0c;如上图所示的cte被引用了两次&#xff08;c1 和 c2&#xff09;&#xff0c;我们称为2个CTE实例。 ​ 本文只要…

Windows系统Nginx下载安装配置 运行错误处理

Nginx是一款轻量级的web 服务器/反向代理 服务器。本篇文章主要是nginx的下载安装&#xff0c;处理运行中遇到的问题&#xff0c;配置反向代理。主要分为两部分&#xff1a;下载安装和配置。 目录 1.下载安装 2.nginx配置反向代理 1.下载安装 nginx官网&#xff1a;nginx: …

新160个crackme -044-tsrh-crackme

运行分析 提示去除NAG 不去除NAG也能进入主窗口&#xff0c;需要破解Name和Serial PE分析 ASM程序&#xff0c;32位&#xff0c;壳未知 去除NAG ida搜索字符串&#xff0c;发现NAG弹窗标题字符串&#xff0c;双击进入函数 找到了messagebox&#xff0c;即NAG位置00401079 打开x…

网络压缩之动态计算(dynamic computation)

动态计算希望网络可以自由 地调整它需要的计算量。为什么期待网络可以自由地调整它需要的计算量呢? 因为有时候我 们可能同样的模型会想要跑在不同的设备上面&#xff0c;而不同的设备上面的计算资源是不太一样的。所以期待训练好一个网络以后&#xff0c;放到新的设备上面&am…

Python编程基础知识,让编程基础更加扎实(输出个人简介)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

考研--数学(相关公式)

解析几何 知识点1 A(x1,y1) B(x2,y2) 则AB长度 |AB| A、B中点的坐标 &#xff08;&#xff0c;) 知识点2 方程求解 ①点斜式&#xff1a; y-y0k(x0-x) ②斜率式&#xff1a; ykxb ③两点式&#xff1a; …

【笔记篇】Davinci Configurator CanNm模块

目录 1 简介1.1 架构概览2 功能描述2.1 特性2.2 初始化2.3 状态机2.3.1 网络模式2.3.1.1 重复报文状态2.3.1.2 正常状态2.3.1.3 准备休眠状态2.3.2 预休眠模式2.3.3 总线休眠模式2.4 被动模式(对于被动节点)2.5 NM报文格式2.6 NM报文发送2.6.1 重试第一次报文请求2.7 降低总线…

集成电路学习:什么是I2C内部集成电路总线

I2C&#xff1a;内部集成电路总线 I2C&#xff0c;全称Inter-Integrated Circuit&#xff0c;即内部集成电路总线&#xff0c;是由飞利浦公司&#xff08;现为恩智浦半导体&#xff09;在上世纪八十年代初开发的一种同步的串行通信总线。它以其接线简单、硬件实现容易、可扩展性…

Mysql8利用binlog实现数据恢复

文章目录 1binlog基本概念2 binlog相关常用命令3 binlog工具mysqlbinlog4 测试数据准备&导入数据5 模拟误删表6 数据恢复方式说明7 数据恢复分析(偏移量方式恢复)8 数据恢复9 验证10 数据恢复的局限性11 总结 1binlog基本概念 binlog即binary log&#xff0c;二进制日志文件…

【React原理 - 任务调度之中断恢复】

概览 本文紧接上文介绍React调度的时间分片中任务中断和恢复&#xff0c;由于篇幅过长&#xff0c;所以拆成了两篇。上文主要介绍了调度器中的优先级和调度任务的触发、注册和调度循环。本文主要从任务调度入手介绍调度任务之后发送了什么&#xff0c;即在协调器中如何进行到f…

【matlab】数组操作:寻找最大值和最小值及其位置ind2sub函数

【matlab】数组操作&#xff1a;寻找最大值和最小值及其位置ind2sub函数 本文将介绍如何在MATLAB环境中使用内置函数来创建数组&#xff0c;以及如何找到数组中的最大值和最小值及其对应的位置。通过示例代码&#xff0c;我们将一步步展示这一过程&#xff0c;帮助读者更好地理…

探索Python的测试之道:unittest库的奥秘

文章目录 探索Python的测试之道&#xff1a;unittest库的奥秘背景&#xff1a;为何选择unittest&#xff1f;什么是unittest库&#xff1f;如何安装unittest库&#xff1f;简单库函数使用方法场景应用场景一&#xff1a;测试数学运算场景二&#xff1a;测试异常处理场景三&…

armv8 memory model概述

概述 在armv8 架构中&#xff0c;它引入了更多的维度来描述内存模型&#xff0c;从而在此基础上进行硬件优化(但其中一些并未被主流的软件所接受)&#xff0c;在此做一些简单的整理&#xff0c;更多信息请参考 Arm spec 以及 AMBA 协议。下文主要是对Memory 和 Device 两大类的…

Python 算法交易实验86 QTV200日常推进-获取A股日交易额并统计

说明 上一篇说到&#xff0c;交易量可能可以作为策略规则的支持度分析&#xff0c;但是(我现在还不想付费买数据)现成的接口似乎并没有这样的统计。获取某一只股票的日交易数据是相对简单的&#xff0c;市场上也就不到5000只的股票&#xff0c;总数据量应该也不会超过18M(5000…

面向整个价值链的高可信度卫星测试解决方案

在动态行业格局中增强卫星任务能力 在罗德与施瓦茨&#xff0c;我们利用专业知识和量身定制的测试和测量解决方案为卫星行业提供支持。这包括帮助行业参与者满足完整测试路径的要求&#xff0c;以实现完美的系统性能&#xff0c;确保符合最新技术和标准。此外&#xff0c;我们…

2024年8月文章一览

2024年8月编程人总共更新了3篇文章&#xff1a; 1.2024年7月文章一览 2.《Programming from the Ground Up》阅读笔记&#xff1a;p95-p102 3.《Programming from the Ground Up》阅读笔记&#xff1a;p103-p116 8月&#xff0c;对自己而言是糟糕的一个月&#xff0c;两个项…