ACL访问控制列表

ACL概述

为什么会有ACL

  • 因为我们要过滤数据流量,要做访问控制,要保障内网安全

ACL是什么

  • ACL:访问控制列表
  • 是一个包含了多个规则的列表,不同规则通过规则号进行区分
  • 每个规则都包含动作+条件两部分内容
  • 动作分为:允许(permit)和拒绝(deny)
  • 条件分为:地址、端口、通配符
  • ACL本质上是一种报文过滤器,可以根据规则来过滤数据报文,比如允许数据通过,比如拒绝数据通过

ACL作用

  • 对网络中数据报文进行过滤,做访问控制
  • 提高内网安全性,提高带宽利用率

ACL类型

  • 基本ACL:过滤三层数据报文
    编号:2000~2999,条件:源ip地址
  • 高级ACL:可以过滤三层数据报文,也可以过滤四层数据报文
    编号:3000~3999,条件:五元组(源ip/目标ip/协议号/源端口/目标端口)
  • 二层ACL:
    编号:4000~4999,用于匹配源MAC地址、目的MAC地址、802.1q优先级等

ACL组成

  • ACL编号:用于标识ACL,基本ACL(2000~ 2999 )、高级ACL(3000~ 3999)
  • 规则:即描述报文匹配条件的判断语句
    规则编号:用于标识规则,范围:0~4294967294,规则号越小越好,可以手动指定,也可根据步长值自动分配
    动作:包括permit/deny两种动作,表示允许/拒绝
    匹配项:地址、端口、通配符····

ACL匹配原则

  • 根据ACL规则编号从小到大匹配(编号越小越优先被匹配)
  • 匹配即停止(匹配上了第一条规则,就按照规则的动作去执行,不在向下查找第二条规则)
  • 如果数据报文没有匹配到第一条规则,继续向下查找第二条规则,如果匹配,则按照第二条规则的动作去执行
  • 如果所有的规则都无法匹配,则执行隐含规则
  • 隐含规则(默认规则):隐含规则有两个一个允许所有,一个拒绝所有
    拒绝所有:只要不使用traffic-filter调用ACL就是拒绝所有(默认拒绝所有)
    允许所有:只要使用traffic-filter调用ACL规则时默认规则是允许所有

匹配流程:

  • 首先系统会查找设备上是否配置了ACL。
  • 如果ACL不存在,则返回ACL匹配结果为:不匹配。
  • 如果ACL存在,则查找设备是否配置了ACL规则。
  • 如果规则不存在,则返回ACL匹配结果为:不匹配。
  • 如果规则存在,则系统会从ACL中编号最小的规则开始查找。
  • 如果匹配上了permit规则,则停止查找规则,并返回ACL匹配结果为:匹配(允许)。
  • 如果匹配上了deny规则,则停止查找规则,并返回ACL匹配结果为:匹配(拒绝)。
  • 如果未匹配上规则,则继续查找下一条规则,以此循环。如果一直查到最后一条规则,报文仍未匹配上,则返回ACL匹配结果为:不匹配。
    从整个ACL匹配流程可以看出,报文与ACL规则匹配后,会产生两种匹配结果:“匹配”和“不匹配”。
  • 匹配(命中规则):指存在ACL,且在ACL中查找到了符合匹配条件的规则。不论匹配的动作是“permit”还是“deny”,都称为“匹配”,而不是只是匹配上permit规则才算“匹配”。
  • 不匹配(未命中规则):指不存在ACL,或ACL中无规则,再或者在ACL中遍历了所有规则都没有找到符合匹配条件的规则。以上三种情况,都叫做“不匹配”。
  • 匹配原则:一旦命中即停止匹配。

通配符

  • 使用源/目的IP地址定义为规则的匹配项时,需要在IP地址后面指定通配符,确定一个地址范围
  • IP地址通配符与IP地址的反掩码类似,也是一个32比特位的数字字符串
  • IP地址通配符的作用是,定义IP地址中的哪些位将被检查
  • IP地址通配符也是有0和1组成的,“0”表示“检查相应的位”,“1”表示“不检查相应的位,总结:“检查0,忽略1”

ACL实验

基本ACL

拓扑

需求

  • 不允许售后部主机(192.168.1.0/24)访问财务服务器
  • 允许售后部主机访问公司其他主机

配置步骤

第一步:配置PC1/PC2/Server1的IP地址,掩码,网关
第二步:配置交换机SW1/SW2

  • 创建VLAN,接口加入VLAN
    第三步:配置路由,让网络互通
  • 配置R1和R2的接口IP地址
  • 在R1中配置默认路由,下一跳为192.168.12.2
  • 在R2中配置静态路由,下一跳为192.168.12.1
    第四步:在R2中配置ACL
  • 在R2中配置基本ACL(拒绝售后部主机访问财务服务器)
  • 在R2的g0/0/2接口的出方向,调用基本ACL
    第五步:测试与验证

配置命令

第一步:配置PC1/PC2/Server1的IP地址,掩码,网关
第二步:配置交换机SW1/SW2
SW1配置:

  • [SW1]vlan 10
  • [SW1-vlan10]quit
  • [SW1]port-group group-member g0/0/1 g0/0/2
  • [SW1-port-group]port link-type access
  • [SW1-port-group]port default vlan 10
 SW2配置:
  • [SW2]vlan 20
  • [SW2-vlan20]quit
  • [SW2]port-group group-member g0/0/1 g0/0/2
  • [SW2-port-group]port link-type access
  • [SW2-port-group]port default vlan 20

第三步:配置路由,让网络互通
R1配置:

  • [R1]int g0/0/0
  • [R1-GigabitEthernet0/0/0]ip address 192.168.12.1 24
  • [R1-GigabitEthernet0/0/0]int g0/0/1
  • [R1-GigabitEthernet0/0/1]ip address 192.168.1.254 24
  • [R1-GigabitEthernet0/0/1]quit
  • [R1]ip route-static 0.0.0.0 0 192.168.12.2 //配置默认路由
 R2配置:
  • [R2]int g0/0/0
  • [R2-GigabitEthernet0/0/0]ip address 192.168.12.2 24
  • [R2-GigabitEthernet0/0/0]int g0/0/1
  • [R2-GigabitEthernet0/0/1]ip address 192.168.2.254 24
  • [R2-GigabitEthernet0/0/1]int g0/0/2
  • [R2-GigabitEthernet0/0/2]ip address 192.168.3.254 24
  • [R2-GigabitEthernet0/0/2]quit
  • [R2]ip route-static 192.168.1.0 24 192.168.12.1 //配置静态路由

第四步:在R2中配置ACL

  • [R2]acl 2000 //创建基本ACL
  • [R2-acl-basic-2000]rule 10 deny source 192.168.1.0 0.0.0.255 //配置ACL规则
  • [R2-acl-basic-2000]quit
  • [R2]int g0/0/2
  • [R2-GigabitEthernet0/0/2]traffic-filter outbound acl 2000 //调用ACL

总结:调用基本ACL,尽量在离目标近的接口上调用,避免数据被误杀
第五步:测试与验证

  • PC1 ping 财务服务器-server1 不通
  • PC2 ping 财务服务器-server1 通
  • PC1 ping PC2 通
  • 在R1中测试网络连通性
  • [R1]ping -a 192.168.1.254 192.168.3.1 不通
  • [R1]ping -a 192.168.12.1 192.168.3.1 通
  • 在R2中查看acl规则和接口调用信息
  • display acl all //查看acl信息
  • display traffic-filter applied-record //查看acl调用信息

高级ACL配置案例

拓扑

需求

需求1:-售后部主机Client1仅能访问 Server1上的Web服务,但是不能访问server1的其他任何服务
解析:

  • Client1只能访问server1的80端口,只能访问服务器部署的网站(web服务)
  • Client1不能ping 通server1
  • Client1 不能访问server1 的ftp服务
    需求2:-售后部主机Client1可以访问行政部的所有主机的所有服务
    解析:
  • Client1 可以ping通PC1,可以ping通192.168.2.0/24网段的所有IP
    需求3:-售后部主机Client1不能访问网络中的其他任何主机
    解析:
  • Client1 不能访问其他的路由器的接口IP地址,如:12.0/24 23.0/24

配置步骤

第一步:配置Client1/PC1/Server1的IP,掩码,网关

  • 开启server1的web服务
    第二步:配置路由,让网络互通
  • 配置R1/R2/R3的接口IP地址
  • 在R1中配置默认路由,下一跳为192.168.12.2
  • 在R2中配置去往192.168.1.0/24的静态路由,下一跳为192.168.12.1
  • 在R2中配置去往192.168.3.0/24的静态路由,下一跳为192.168.23.3
  • 在R3中配置默认路由,下一跳为192.168.23.2
    第三步:在R1中配置ACL
    在R1中配置高级ACL
  • 允许源售后部主机访问目标服务器server1的web服务
  • 允许源售后部主机访问行政部网段的所有主机
  • 拒绝源售后部主机访问网络中其他任何主机
  • 在R1的g0/0/2接口的入方向,调用高级ACL
    第四步:测试与验证

配置命令

第一步:配置Client1/PC1/Server1的IP,掩码,网关
第二步:配置路由,让网络互通
R1配置:

  • [R1]int g0/0/0
  • [R1-GigabitEthernet0/0/0]ip address 192.168.12.1 24
  • [R1-GigabitEthernet0/0/0]int g0/0/2
  • [R1-GigabitEthernet0/0/2]ip address 192.168.1.254 24
  • [R1-GigabitEthernet0/0/2]quit
  • [R1]ip route-static 0.0.0.0 0 192.168.12.2

R2配置:

  • [R2]int g0/0/0
  • [R2-GigabitEthernet0/0/0]ip address 192.168.12.2 24
  • [R2-GigabitEthernet0/0/0]int g0/0/1
  • [R2-GigabitEthernet0/0/1]ip address 192.168.23.2 24
  • [R2-GigabitEthernet0/0/1]int g0/0/2
  • [R2-GigabitEthernet0/0/2]ip address 192.168.2.254 24
  • [R2-GigabitEthernet0/0/2]quit
  • [R2]ip route-static 192.168.1.0 24 192.168.12.1
  • [R2]ip route-static 192.168.3.0 24 192.168.23.3

R3配置:

  • [R3]int g0/0/0
  • [R3-GigabitEthernet0/0/0]ip address 192.168.23.3 24
  • [R3-GigabitEthernet0/0/0]int g0/0/2
  • [R3-GigabitEthernet0/0/2]ip address 192.168.3.254 24
  • [R3-GigabitEthernet0/0/2]quit
  • [R3]ip route-static 0.0.0.0 0 192.168.23.2

第三步:在R1中配置ACL
R1配置:

  • [R1]acl 3000
  • [R1-acl-adv-3000]rule 10 permit tcp source 192.168.1.1 0 destination 192.168.3.1 0 destination-port eq www
  • [R1-acl-adv-3000]rule 20 permit ip source 192.168.1.1 0 destination 192.168.2.0 0.0.0.255
  • [R1-acl-adv-3000]rule 30 deny ip source 192.168.1.1 0 destination any
  • [R1-acl-adv-3000]quit
  • [R1]int g0/0/2
  • [R1-GigabitEthernet0/0/2]traffic-filter inbound acl 3000

总结:

  • 调用高级ACL,尽量离源近的接口上调用,避免无效的流量占用有限的带宽

命令解析:

  • acl 3000 :高级acl
  • rule 10 :规则10
  • permit :允许
  • tcp :tcp协议: 四层流量
  • ip : ip协议 :三层流量
  • source :源
  • 192.168.1.1:源IP地址
  • 0.0.0.0. :通配符:0代表绝对匹配,代表唯一的一个IP地址
  • destination :目标
  • 192.168.3.1 0.0.0.0 :目标IP地址,通配符为 0
  • destination-port :目标端口
  • eq :等于
  • www :web服务: 默认是80端口
  • any :表示任意IP地址,你可以理解为所有
  • inbound :入向流量
    ps:
    如果是对售后部所有主机做规则,这样配置写通配符
  • rule 10 permit tcp source 192.168.1.0 0.0.0.255
  • rule 20 permit ip source 192.168.1.0 0.0.0.255
  • rule 30 deny ip source 192.168.1.0 0.0.0.255
    如果是仅仅对售后部PC1做规则,这样配置写通配符
  • rule 10 permit tcp source 192.168.1.1 0
  • rule 20 permit ip source 192.168.1.1 0
  • rule 30 deny ip source 192.168.1.1 0

第四步:验证与测试

  • client1 可以访问server1的web服务
  • client1 可以ping 通 192.168.2.0/24 的主机
  • client1 不能ping 通 server1 (192.168.3.1)
  • client1 不能ping 通 192.168.12.1
  • client1 不能ping 通 192.168.12.2
  • client1 不能ping 通 192.168.23.2
  • client1 不能ping 通 192.168.23.3
  • client1 不能ping 通 192.168.3.254

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

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

相关文章

【C#】学习获取程序执行路径,Gemini 帮助分析

一、前言: 在Delphi中,如果想要获取当前执行程序的目录,程序代码如下: ExtractFilePath(ParamStr(0)); 今天在分析一个别人做的C#程序时看到了一段C#代码,意思是获取执行程序所在的文件目录: public stat…

使用 scrapyd 部署 scrapy

1.scrapyd 是什么? Scrapyd 是一个用于部署和运行 Scrapy 爬虫项目的服务器应用程序。它使得你可以通过 HTTP 命令来部署、管理和执行多个 Scrapy 爬虫,非常适合持续集成和生产环境中的爬虫部署。 2.安装scrapyd 并使用 2.1 安装 scrapyd F:\scrapydTes…

智能革新:如何用会话式AI提升您的工作效率?

提升职场竞争力,会话式AI产品助你走在时代前沿 在当今的职场环境中,提高工作效率是每一位人力资源管理者追求的目标。而在效率的背后,往往隐藏着工作方法的正确与否。在众多提升效率的方法中,人工智能技术无疑是一股不可忽视的力量…

汇聚荣科技:拼多多开店没有流量应该怎么办?

拼多多开店没有流量是一个常见的问题,许多新手商家都会遇到这样的困境。那么,如何解决这个问题呢?下面从四个方面进行详细阐述。 一、优化店铺和商品 首先,要确保店铺和商品的质量。店铺要有自己独特的风格和特色,商品要有高质量…

Java | Leetcode Java题解之第90题子集II

题目&#xff1a; 题解&#xff1a; class Solution {List<Integer> t new ArrayList<Integer>();List<List<Integer>> ans new ArrayList<List<Integer>>();public List<List<Integer>> subsetsWithDup(int[] nums) {Arra…

RK3568平台开发系列讲解(SPI篇)spi_dev 驱动分析

🚀返回专栏总目录 文章目录 一、结构体二、API三、spidev驱动分析3.1、init3.2、probe3.3、spidev_write3.4、spidev_read3.5、spidev_open四、spi_register_driver分析五、spi_dev缺点沉淀、分享、成长

docker 部署 prometheus + Grafana +

# prometheus安装 # 1.拉镜像 docker pull prom/prometheus:v2.43.0 # 2.创建配置文件 mkdir /opt/prometheus/data cd /opt/prometheus/ vi prometheus.yml # 3.使用root用户启动 docker run --name prometheus -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/pro…

前端 performance api使用 —— mark、measure计算vue3页面echarts渲染时间

文章目录 ⭐前言&#x1f496;vue3系列文章 ⭐Performance api计算持续时间&#x1f496; mark用法&#x1f496; measure用法 ⭐计算echarts渲染的持续时间⭐结束 ⭐前言 大家好&#xff0c;我是yma16&#xff0c;本文分享关于 前端 performance api使用 —— mark、measure计…

刷题之最长连续序列

哈希表 class Solution { public:int longestConsecutive(vector<int>& nums) {//set记录并且去重nums中的数unordered_set<int>set;for(int i0;i<nums.size();i){set.insert(nums[i]);}int result0;//遍历所有数for(auto iset.begin();i!set.end();i){//如…

求正方形阴影部分面积

正方形边长6&#xff0c;求阴影部分面积 xy6① vw6② 1/26v1/23x1/263③ 1/26v1/26y1/266④ ③是左下角三角形的面积&#xff0c;④是左上角三角形的面积。 求解方程组得到x2 阴影部分面积1/2*3x3.

【iOS】工厂模式

文章目录 前言设计模式的三大原则简单工厂模式工厂方法模式抽象工厂模式关于三兄弟的升级与降级注意 前言 上文讲完了iOS的架构模式&#xff0c;接下来聊一聊设计模式&#xff0c;设计模式有许多&#xff0c;主要介绍一下工厂模式 设计模式的三大原则 S 单一职责原则 告诉我…

【解决Android Studio】cmake报错找不到vulkan包

1 报错信息 CMake Error at D:/Android/project/cmake/3.10.2.4988404/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find Vulkan (missing: Vulkan_LIBRARY) Call Stack (most recent call first): 2. 错误原因 minSdk版本不对&am…

MySql初学日记

MySql基础 概述 结构化查询语言(Structure Query Language)简称SQL。 是一种特殊的&#xff0c;标准的数据库编程语言&#xff0c;&#xff0c;一般的数据库管理系统都支持&#xff0c;用于对数据库进行增删改查等操作&#xff0c;实现数据持久化到本地。 使用完整的管理系…

(四)Spring教程——控制反转或依赖注入与Java的反射技术

IoC的底层实现技术是反射技术&#xff0c;目前Java、C#、PHP 等语言均支持反射技术。 在运行状态中&#xff0c;对于任意一个类&#xff0c;都能够获取到这个类的所有属性和方法&#xff1b;对任意一个对象&#xff0c;都能够调用它的任意方法和属性&#xff08;包括私有的方法…

【JavaEE】HTTP 协议

文章目录 一、HTTP 协议1、HTTP 是什么2、理解 "应用层协议"3、理解 HTTP 协议的工作过程4、HTTP 协议格式5、HTTP 请求 (Request)5.1 认识 URL 6、 二、HTTPS1、HTTPS是什么2、"加密" 是什么3、HTTPS 的工作过程3.1 对称加密3.2 非对称加密3.3 证书3.4 完…

VBA_NZ系列工具NZ06:VBA创建PDF文件说明

我的教程一共九套及VBA汉英手册一部&#xff0c;分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的入门&#xff0c;到数据库&#xff0c;到字典&#xff0c;到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑&#xff0c;这么多知识点该如何组织…

Llama 3 超级课堂 -笔记

课程文档&#xff1a; https://github.com/SmartFlowAI/Llama3-Tutorial 课程视频&#xff1a;https://space.bilibili.com/3546636263360696/channel/series 1 环境配置 1.1 创建虚拟环境,名为&#xff1a;llama3 conda create -n llama3 python3.10 1.2 下载、安装 pyt…

论文解读:Self-Prompt Mechanism for Few-Shot Image Recognition

文章汇总 存在的问题 由于提示文本和图像特征之间固有的模态差异&#xff0c;常规的提示方法的性能受到限制。 动机 让视觉信息自己给自己提示 解决办法 SPM涉及到图像编码器跨空间和通道维度产生的固有语义特征的系统选择&#xff0c;从而产生自提示信息。随后&#xff…

nginx反向代理使用(详细版)

1. 下载nginx&#xff0c;解压&#xff1b;&#xff08;随便放在哪里&#xff09; 2. 在nginx-1.26.0文件夹下创建web文件夹&#xff0c;继续在web文件夹下创建abcd.test.cn文件夹&#xff08;文件夹的名字就叫abcd.test.cn&#xff09;&#xff1b; 3. 配置前端代理&#xff…

人工智能应用正在改变我们的生活

在这个AI蓬勃发展的时代&#xff0c;你如何使用人工智能&#xff1f;如果您认为还没有&#xff0c;请再想一想。人工智能已经为我们的许多日常活动提供了动力&#xff0c;尽管您可能还没有有意将其用作工具&#xff0c;但这种情况可能会在不久的将来发生变化。随着顶尖科技公司…