ACL访问控制列表基本概念

2024-06-18 16:48

本文主要是介绍ACL访问控制列表基本概念,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. ACL概述

 

(1)、ACL全称访问控制列表(Access Control List)。

 

(2)、基本原理:ACL使用包过滤技术,在路由器上读取第三层及第四层包头中的信息(如源地址、目的地址、协议口、端口号等),根据预先定义好的规则对包进行过滤,从而达到控制的目的。

 

(3)ACL目的:限制网络流量、提高网络性能;提供对通信流量的控制手段;提供网络访问的基本安全手段。

 

(4)、功能:网络中的结点分为资源结点和用户结点两大类,其中资源结点提供服务或数据,而用户结点访问资源结点所提供的服务与数据。ACL的主要功能就是一方面保护资源结点,阻止非法用户对资源结点的访问;另一方面限制特定的用户结点对资源结点的访问权限。

 

(5)、ACL的访问顺序

a、按照各语句在访问列表的顺序,顺序查找,一旦找到了某一匹配条件,就结束匹配,不再检查后面的语句。

b、如果所有语句都没有匹配,在默认情况下,虽然看不到最后一行,但最后总是拒绝全部流量的。

 

 

 

 

2. ACL的分类

 

(1) 标准ACL(表号取值范围1-99)

 

 

第一步:定义访问控制列表

 

命令格式:access-list access-list-number  { permit |deny } source  [source-wildcard] [log]

 

 

 

参数

 

参数描述

access-list-number

访问控制列表表号

permit | deny

满足条件,拒绝或允许

source-wildcard

 

通配符,0表示检查,1表示不检查

log

表示将有关数据包匹配情况生成日志表

 

 

例如:

!定义访问控制列表

router(config)# access-list 1 permit 192.168.1.0 0.0.0.255

!删除访问控制列表(这里无法删除某一条ACL语句,只能删除整个ACL表)

router(config)# no access-list 1

 

 

 

第二步:应用到某一个接口上

 

命令格式:{ protocol } access-group access-list-number  {in |  out}

 

例如:

router(config)# int f0/0

router(config-if)ip access-group 1 out

 

 

 

 

 

 

(2) 扩展ACL(表号取值范围100-199)

 

 

第一步:定义访问控制列表

 

命令格式:access-list access-list-number  { permit |deny } protocol  source  source-wildcard  [operator operand]  destination destination-wildcard  [operatoroperand] [established] [log]

 

 

参数

 

参数描述

access-list-number

访问控制列表表号

permit | deny

满足条件,拒绝或允许

 

source-wildcard

destination-wildcard

 

通配符,0表示检查,1表示不检查

log

表示将有关数据包匹配情况生成日志表

protocol

用来指定协议类型,如IP、TCP、UDP、ICMP等

lt,gt,eq,neq

(小于、大于、等于、不等于)

operand

一个端口号或应用名称

established

如果数据包使用一个已建立连接,便可允许TCP信息通过

 

 

 

 

 

 

 

例如:

!定义访问控制列表

router(config)# access-list 101 permit tcp 192.168.1.00.0.0.255 192.168.2.0 0.0.0.255 eq 80

!删除访问控制列表(这里无法删除某一条ACL语句,只能删除整个ACL表)

router(config)# no access-list 101

 

 

 

第二步:应用到某一个接口上

 

命令格式:{ protocol } access-group access-list-number  {in |  out}

 

例如:

router(config)# int f0/0

router(config-if)ip access-group 101 out

 

 

 

 

 

(3) 命名ACL

 

第一步:创建一个ACL命名,要求名字字符串要唯一

 

命令格式:ip  access-list{ standard  | extended } name

 

 

 

 

 

第二步:定义访问控制列表

 

标准ACL命令格式:  { permit | deny }  source source-wildcard  [log]

 

 

扩展ACL命令格式: { permit | deny } protocol  source source-wildcard  [operatoroperand]  destination  destination-wildcard  [operator operand] [established] [log]

 

 

 

 

 

 

 

例如:

!定义访问控制列表

router(config)#ipaccess-list extended permit-one

router(config-ext-nacl)# permit tcp 192.168.1.00.0.0.255 192.168.2.0 0.0.0.255 eq 80

!删除访问控制列表(这里可以删除某一条ACL语句)

router(config-ext-nacl)# no  permit tcp 192.168.1.0 0.0.0.255 192.168.2.00.0.0.255 eq 80

 

 

 

第三步:应用到某一个接口上

 

命令格式:{ protocol } access-group  name {in  |  out}

 

例如:

router(config)# int f0/0

router(config-if)ip access-group permit-one out

 


 

 

 

 



这篇关于ACL访问控制列表基本概念的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1072561

相关文章

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

Python进阶之列表推导式的10个核心技巧

《Python进阶之列表推导式的10个核心技巧》在Python编程中,列表推导式(ListComprehension)是提升代码效率的瑞士军刀,本文将通过真实场景案例,揭示列表推导式的进阶用法,希望对... 目录一、基础语法重构:理解推导式的底层逻辑二、嵌套循环:破解多维数据处理难题三、条件表达式:实现分支

Linux权限管理与ACL访问控制详解

《Linux权限管理与ACL访问控制详解》Linux权限管理涵盖基本rwx权限(通过chmod设置)、特殊权限(SUID/SGID/StickyBit)及ACL精细授权,由umask决定默认权限,需合... 目录一、基本权限概述1. 基本权限与数字对应关系二、权限管理命令(chmod)1. 字符模式语法2.

把Python列表中的元素移动到开头的三种方法

《把Python列表中的元素移动到开头的三种方法》在Python编程中,我们经常需要对列表(list)进行操作,有时,我们希望将列表中的某个元素移动到最前面,使其成为第一项,本文给大家介绍了把Pyth... 目录一、查找删除插入法1. 找到元素的索引2. 移除元素3. 插入到列表开头二、使用列表切片(Lis

python中列表应用和扩展性实用详解

《python中列表应用和扩展性实用详解》文章介绍了Python列表的核心特性:有序数据集合,用[]定义,元素类型可不同,支持迭代、循环、切片,可执行增删改查、排序、推导式及嵌套操作,是常用的数据处理... 目录1、列表定义2、格式3、列表是可迭代对象4、列表的常见操作总结1、列表定义是处理一组有序项目的

C++11范围for初始化列表auto decltype详解

《C++11范围for初始化列表autodecltype详解》C++11引入auto类型推导、decltype类型推断、统一列表初始化、范围for循环及智能指针,提升代码简洁性、类型安全与资源管理效... 目录C++11新特性1. 自动类型推导auto1.1 基本语法2. decltype3. 列表初始化3

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

Python中合并列表(list)的六种方法小结

《Python中合并列表(list)的六种方法小结》本文主要介绍了Python中合并列表(list)的六种方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋... 目录一、直接用 + 合并列表二、用 extend() js方法三、用 zip() 函数交叉合并四、用

Spring Boot中的YML配置列表及应用小结

《SpringBoot中的YML配置列表及应用小结》在SpringBoot中使用YAML进行列表的配置不仅简洁明了,还能提高代码的可读性和可维护性,:本文主要介绍SpringBoot中的YML配... 目录YAML列表的基础语法在Spring Boot中的应用从YAML读取列表列表中的复杂对象其他注意事项总

C++类和对象之初始化列表的使用方式

《C++类和对象之初始化列表的使用方式》:本文主要介绍C++类和对象之初始化列表的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C++初始化列表详解:性能优化与正确实践什么是初始化列表?初始化列表的三大核心作用1. 性能优化:避免不必要的赋值操作2. 强