思科模拟器 | 访问控制列表ACL实现网段精准隔绝

2023-10-13 17:59

本文主要是介绍思科模拟器 | 访问控制列表ACL实现网段精准隔绝,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

在这里插入图片描述

文章目录

  • 一、ACL工作原理
  • 二、ACL分类初步介绍
  • 三、标准ACL
    • 1、标准ACL的决策过程
    • 2、标通配符掩码关键字
    • 3、标准ACL网络拓扑
    • 4、标准ACL演示
    • 5、实战讲解
  • 四、扩展ACL
    • 1、基础语法明细
    • 2、扩展ACL示例
    • 3、扩展ACL网络拓扑
    • 4、实战讲解
  • 五、总结与提炼

一、ACL工作原理

ACL(Access Control List)是一种网络安全技术,用于控制网络通信和访问权限。它使用规则列表以限制哪些计算机或网络服务可以与另一个计算机或网络服务进行通信,从而为网络提供了一个基本安全机制。

  • 下面是一组有关TCP的会话,很好地体现了ACL的面对外来请求访问的严谨性

在这里插入图片描述

包过滤

ACL还有一个很重要的特性就是包过滤,它可以在网络中可以用于包过滤,可以实现对进入和离开网络的IP数据包进行过滤和控制

ACL包过滤原理:

  1. 当一个网络接口收到一个IP数据包时,设备会检查它的源地址、目的地址、协议类型,以及端口等信息;
  2. 设备会将这些信息与已经配置好的ACL规则(由管理员事先定义)进行比较匹配;
  3. 如果数据包匹配上了ACL规则,则设备执行相应的操作,如允许包通过或者拒绝包进出设备;
  4. 如果数据包没有匹配到任何ACL规则,则根据默认策略(例如允许所有数据包通过或者拒绝所有数据包进出设备)决定是否允许包通过。

下面是一个有关ACL包过滤的实例,ACL面对不同网络的连接,会去查看其是否为80端口,依次来作出permit还是deny
在这里插入图片描述

二、ACL分类初步介绍

  • 标准 ACL

在这里插入图片描述

  • 扩展 ACL
    在这里插入图片描述
    当然,对于ACL来说是不可以乱放的,下面是ACL放置原则

在这里插入图片描述

三、标准ACL

了解了ACL的基本概念后,我们来学习一下标准ACL该如何配置

1、标准ACL的决策过程

在这里插入图片描述

2、标通配符掩码关键字

然后我们通过两个示例来看看ACL的通配符掩码

在这里插入图片描述
在这里插入图片描述

  • 下面这个ACL配置就只允许主机号为192.168.10.10通过

在这里插入图片描述

  • 下面这个ACL呢就允许所有网段通过

在这里插入图片描述

3、标准ACL网络拓扑

在这里插入图片描述

4、标准ACL演示


基本语法:

Router(config)# access-list access-list-number {deny|permit} source [source-wildcard ] 
  • 然后我在路由器R1的地方打了一个标准ACL
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#acc
Router(config)#access-list 10 permit 192.168.10.0 0.0.0.255
Router(config)#ex
Router#
%SYS-5-CONFIG_I: Configured from console by consol
  • 接着使用show access-lists就可以看到我们打ACL的情况
Router#show acc
Router#show access-lists 
Standard IP access list 1010 permit 192.168.10.0 0.0.0.255
Router#

当然,打了ACL后也是可以取消的,那就是使用no access-list

  • 看到我将这个ACL取消后,再去show的话就什么都没有了
Router(config)#no access-list 10
Router(config)#ex
Router#
%SYS-5-CONFIG_I: Configured from console by consoleRouter#show ac
Router#show access-lists 
Router#

看了上面的这些后可能还是比较懵,我再来举几个标准ACL的示例

  1. 访问控制列表2拒绝IP为192.168.10.10的主机进行访问
access-list 2 deny host 192.168.10.10
  1. 访问控制列表2允许192.168.10.0的网段进行访问
access-list 2 permit 192.168.10.0 0.0.0.255
  1. 访问控制列表2允拒绝192.168.0.0的网段进行访问
access-list 2 deny 192.168.0.0 0.0.255.255
  1. 访问控制列表2允许192.0.0.0的网段进行访问
access-list 2 permit 192.0.0.0 0.255.255.255

5、实战讲解

一、配置扩展ACL

  • 在配置模式下,使用命令access-list [编号] [permit/deny] [协议] [源IP地址] [通配符] [目的IP地址] [通配符] [操作符] [端口号]来创建扩展ACL。其中,编号范围为100-199和2000-2699,协议可以是ip、tcp、udp等
  • 若想禁止IP地址为192.168.1.1的主机访问网页,则可以使用以下命令
access-list 101 deny tcp 192.168.1.1 0.0.0.0 any eq 80

二、应用ACL

  • 接口配置模式下,使用命令ip access-group [ACL编号] [in/out]来应用ACL。其中
    • in表示对进入接口的数据包进行过滤
    • out表示 对从接口发出的数据包进行过滤
  • 若想在接口GigabitEthernet0/0/1上应用刚才创建的ACL,则可以使用以下命令进入接口配置模式
interface GigabitEthernet 0/0/1

三、验证配置ACL

  • 可以使用命令show access-lists来查看ACL的配置情况,使用命令show ip access-group来查看ACL在接口下的应用情况
  • 例如,若想查看刚才创建的ACL的配置情况,则可以使用命令show access-lists 101;若想查看接口GigabitEthernet0/0/1上应用的ACL情况,则可以使用命令
show ip access-group interface GigabitEthernet 0/0/1

四、配置结果查看

  • 首先我们来看看ACL的配置情况,它除了deny一条【192.168.1.0】的网段外,对其他的网段全部都是开放的

在这里插入图片描述

  • 通过下图就可以很直观地看出因为我在路由器R1上打了一条ACL,于是192.168.1.0这个网段中的所有主机都过不来了,但是192.168.2.0中的主机都是可以过来的

在这里插入图片描述

  • 想要查看结果的话很简单,我们通过ping一下172.16.1.0网段中的主机PC5即可。可以观察到有一条结果是这下面这样,这表示【不可达】
Destination host unreachable

在这里插入图片描述

  • PC1ping不通了,那我们换另一个网段中的PC3来试试。可以看到是可以ping通的,说明我们打的ACL访问控制起到了作用,限制了固定网段不可访问

在这里插入图片描述

四、扩展ACL

看完了标准 ACL后,我们再来看看的扩展ACL该如何实现

1、基础语法明细

首先来看看扩展ACL的基础语法

在这里插入图片描述

  • 相信上面的这么一大串语句你一定看懵了,没关系可以对照下面的这个表格来进行学习

在这里插入图片描述

2、扩展ACL示例

首先我们要了解一下扩展ACL的过滤条件
① 源地址
② 目的地址
③ 协议
④ 端口号

示例一

  • 我来解释一下第一条:访问列表114允许任何端口号为23的192.168.20.0这个网段中的任何主机通过TCP连接进行访问

在这里插入图片描述
示例二

  • 也是一样把第一条叙述一下:访问列表114允许192.168.20.0这个网段中的任何主机通过TCP连接,然后进行Telnet远程登录进行访问

在这里插入图片描述

3、扩展ACL网络拓扑

下面是扩展的ACL拓扑,和标准ACL拓扑是一样的

在这里插入图片描述

4、实战讲解

  • 对于扩展ACL来说,我是在路由器R2中进行设置的,因为它应该尽量靠近过滤源,这样创建的过滤器就不会反过来影响其他接口上的数据流

在这里插入图片描述
然后我一一来解析一下这三句话的含义

10 deny icmp host 192.168.1.1 any echo
  • 首先第一句是禁止任何来源的 ICMP 回显请求(ping)到达 IP 地址为 192.168.1.1 的主机
    • deny】:拒绝访问的策略。也可以是 permit,表示允许访问
    • icmp】:指定规则针对 ICMP 协议
    • host 192.168.1.1】:指定规则作用于 IP 地址为 192.168.1.1 的主机
    • any echo】:指定规则拒绝所有来源的 ICMP Echo 请求(类型值为 8)
    • (10 match(es))】:指定匹配此规则的次数限制为10次
20 permit ip any any (10 match(es))
  • 接下去第二句的意思是:允许所有来源和目标的 IP 通信通过,匹配此规则的次数为10次
    • permit】:允许访问的策略。也可以是 deny,表示禁止访问。
    • ip】:指定规则针对 IP 协议
    • any any】:指定规则作用于所有来源和目标地址,即不限制数据包的源地址、目的地址和端口等信息
30 permit tcp host 192.168.1.1 any eq telnet
  • 接下去第三句的意思是:允许来自 IP 地址为192.168.1.1的主机发起的 TCP 协议 Telnet 连接到本防火墙或本防火墙向外连接到其他任何 IP 主机的 Telnet 服务
    • permit】:表示允许访问
    • tcp】:指定规则针对 TCP 协议
    • host 192.168.1.1】:指定源地址为192.168.1.1的主机
    • any eq telnet】:指定目标端口为 Telnet 端口(23),any代表目标地址可以是任何一个IP地址 或 网络,eq表示匹配TCP报文段的目标端口号与telnet精确相等

配置结果查看

  • 可以看到,PC1去ping路由器R2的话是会unreachable的,就是因为最前面的deny icmp host 192.168.1.1这句话

在这里插入图片描述

  • 但PC4去ping的话就可以ping通了,原因就是第二句话permit ip any any,除了192.168.1.1的主机外其他主机都是可以过来的

在这里插入图片描述

  • 不过呢,因为我们在上面由给路由器R2打了一条Telnet远程终端服务permit tcp host 192.168.1.1 any eq telnet,此时我们可以在PC1处通过Telnet远程终端服务来进行一个访问,通过下图可以看出虽然PC1【ping】的时候确实是不可达,但上帝👑为其关了一扇门,也会为其开一扇窗
  • 通过我们先前的一些设置,此时只需要输入用户访问密码就可以成功连通了!

在这里插入图片描述

五、总结与提炼

最后来总结一下本文所学习的内容📖

  • 首先我们介绍了ACL是什么,以及它工作的基本原理,初步知道了该如何去打造一个ACL
  • 然后我们认识了标准ACL,它可以实现阻绝一个网段的接入,而允许其他网段连入
  • 进一步加强,扩展ACL可以实现更强大的功能,不仅是可以是可以实现单个网络的隔绝,还可以控制单台主机的接入,各种字段的各种使得我们对网络的互通达到了精准的控制

以上就是本文要介绍的所有内容,感谢您的阅读🌹

在这里插入图片描述

这篇关于思科模拟器 | 访问控制列表ACL实现网段精准隔绝的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java实现检查多个时间段是否有重合

《Java实现检查多个时间段是否有重合》这篇文章主要为大家详细介绍了如何使用Java实现检查多个时间段是否有重合,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录流程概述步骤详解China编程步骤1:定义时间段类步骤2:添加时间段步骤3:检查时间段是否有重合步骤4:输出结果示例代码结语作

使用C++实现链表元素的反转

《使用C++实现链表元素的反转》反转链表是链表操作中一个经典的问题,也是面试中常见的考题,本文将从思路到实现一步步地讲解如何实现链表的反转,帮助初学者理解这一操作,我们将使用C++代码演示具体实现,同... 目录问题定义思路分析代码实现带头节点的链表代码讲解其他实现方式时间和空间复杂度分析总结问题定义给定

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

如何使用Java实现请求deepseek

《如何使用Java实现请求deepseek》这篇文章主要为大家详细介绍了如何使用Java实现请求deepseek功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.deepseek的api创建2.Java实现请求deepseek2.1 pom文件2.2 json转化文件2.2

python使用fastapi实现多语言国际化的操作指南

《python使用fastapi实现多语言国际化的操作指南》本文介绍了使用Python和FastAPI实现多语言国际化的操作指南,包括多语言架构技术栈、翻译管理、前端本地化、语言切换机制以及常见陷阱和... 目录多语言国际化实现指南项目多语言架构技术栈目录结构翻译工作流1. 翻译数据存储2. 翻译生成脚本

如何通过Python实现一个消息队列

《如何通过Python实现一个消息队列》这篇文章主要为大家详细介绍了如何通过Python实现一个简单的消息队列,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录如何通过 python 实现消息队列如何把 http 请求放在队列中执行1. 使用 queue.Queue 和 reque

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

使用Python快速实现链接转word文档

《使用Python快速实现链接转word文档》这篇文章主要为大家详细介绍了如何使用Python快速实现链接转word文档功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 演示代码展示from newspaper import Articlefrom docx import

前端原生js实现拖拽排课效果实例

《前端原生js实现拖拽排课效果实例》:本文主要介绍如何实现一个简单的课程表拖拽功能,通过HTML、CSS和JavaScript的配合,我们实现了课程项的拖拽、放置和显示功能,文中通过实例代码介绍的... 目录1. 效果展示2. 效果分析2.1 关键点2.2 实现方法3. 代码实现3.1 html部分3.2