网络基础(十二):ACL与NAT

news2024/9/24 21:19:40

目录

一、ACL

1、ACL的概述

2、ACL的分类

3、ACL的应用

4、ACL的组成和基本原理

​编辑

5、ACL的配置

5.1配置基本ACL

5.2配置高级ACL

二、NAT

1、NAT的概述

2、NAT的分类

3、NAT的工作原理

4、静态NAT的配置

5、动态NAT的配置

6、NAPT(端口映射)的配置

7、Easy IP的配置


一、ACL

1、ACL的概述

ACL(Access Control List)访问控制列表是一种网络安全机制,用于过滤和控制网络中的数据流量。它可以根据源IP地址、目的IP地址、端口号、协议类型等信息,来允许或拒绝数据包的传输。

  • ACL是由一系列permit或deny语句组成的、有序规则的列表。
  • ACL是一个匹配工具,能够对报文进行匹配和区分。

2、ACL的分类

  • 基本ACL:编号2000~2999,仅使用报文的源IP地址、分片信息和生效时间段信息来定义规则
  • 高级ACL:编号3000~3999,可使用IPv4报文的源IP地址、目的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、ACL的应用

①匹配IP流量

②在Traffic-filter中被调用

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

④在路由策略中被调用

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

⑥在QoS中被调用

⑦其他……

4、ACL的组成和基本原理

ACL由若干条permit或deny语句组成,是一组规则的集合。

①每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作:

  • permit(允许):数据包过滤,允许那些流量通过
  • deny (拒绝):数据包过滤,拒绝那些流量通过

②ACL应用在路由器的某个接口上,ACL有两个方向:

  • inbound入口方向--------当接口收到数据包时执行ACL
  • outbound出口方向-------当设备从特定接口向外发送数据时执行ACL

基本ACL的配置格式:

注:

①rule是规则关键字,数字1是规则编号,这个编号在配置的时根据需要添加,但是一条规则就是一个编号,编号不能重复。默认编号为5,从第一条规则开始,后面每增加一条规则,编号就会加5,即每增加一个编号,编号就会在上一条规则编号的基础上加5。

之所以留出编号的间隔,是为了能够适应各种应用场景,方便在规则之间,插入新的规则。ACL在进行匹配的时候,是根据编号的顺序,从小到大一条条往下进行的,一旦由匹配到的规则,则不会继续向下匹配,如果匹配到最后都没有,则命中默认规则,默认是deny所有

规则编号的默认步长可以修改,修改了步长以后,所有的规则根据新的步长重新自动排号,为新步长的整倍数,顺序不会改变

②利用ip地址+通配符来匹配流量(通配符:根据参考ip地址,通配符“1”对应位可变,“0”对应位不可变,0/1可以穿插)

如:

5、ACL的配置

5.1配置基本ACL

建立基本ACL表2000,server1拒绝来自Client1(192.168.11.10)的访问流量,允许来自Client2(192.168.11.11的访问流量

5.1.1新建拓扑图

5.1.2配置Client1和Client2同一网段的IP地址、网关和子网掩码,配置Server1和Server2不同网段的IP地址、网关和子网掩码

如:

5.1.3配置路由器的各个端口ip地址和子网掩码,然后用Client1和2去ping任意服务器,通则正确

5.1.4用Client1和Client2去ping任意Server,都能ping通,则说明上述步骤正确,都能互相通信

如:

5.1.5配置普通ACL,建立规则,并作用在路由器的g1端口

5.1.6此时,client1再访问server1就会失败,但client2访问server1仍然能成功。

5.2配置高级ACL

配置高级acl表3000,Client1(192.168.11.10)被拒绝访问Server1(192.168.12.12)的tcp/80,但被允许访问Server1(192.168.12.12)的ftp/21

5.2.1先删除基本ACL,再配置高级acl表3000,加入Client1(192.168.11.10)被拒绝访问Server1(192.168.12.12)的tcp80端口的命令

5.2.2验证

client1访问servser1的tcp/80失败,但client2访问servser1的tcp/80成功

client1访问servser1的ftp/21成功,client2访问servser1的ftp/21成功

二、NAT

1、NAT的概述

NAT(Network Address Translation)网络地址转换是一种将私有IP地址转换为公有IP地址的技术,以实现多个设备共享一个公网IP地址,并能够访问互联网。NAT通常用于企业、家庭等内部网络与外部网络之间的通信。

2、NAT的分类

静态NAT:

  • NAT表条目是通过手动配置的方式添加进去的
  • 私有IP地址和公有IP地址是一对一的关系,不节省公网IP地址

动态NAT:

  • NAT表中的条目是路由器发送数据包时自动形成的
  • 基于NAT地址池实现私有地址和公有地址之间的转换,比静态NAT更加节省公网IP

NAPT:

  • 网络地址端口转换NAPT允许多个内部地址映射到同一个公有地址的不同端口

Easy IP:

  • Easy IP允许将多个内部地址映射到网关出接口地址上的不同端口 

3、NAT的工作原理

NAT是网络地址转换技术:

  • 从私网——>外网,将源私网地址改成源公网地址
  • 从外网——>私网,将目的公网地址改目的私网地址

4、静态NAT的配置

4.1建立拓扑图

4.2配置PC1和PC2的ip地址、网关和子网掩码

4.3配置企业路由器两个端口的ip地址和子网掩码,并在出口g1开启nat服务并配置

4.4配置运营商端口的ip地址和子网掩码

4.5PC1的ip地址去ping运营商的ip地址

4.6抓包验证

5、动态NAT的配置

动态NAT基于地址池来实现私有地址和公有地址的转换

5.1建立地址池200.2.2.10~200.2.2.15,新建acl基础表2000,允许192.168.1.0网段IP通过

5.2启用acl表2000规则,按照地址池进行NAT地址转换,不携带端口号

5.3PC1访问运营商,再查看NAT(网络地址转换)会话表项 

6、NAPT(端口映射)的配置

6.1添加企业内网服务器和普通用户客户端,连接它们对应的接口,最后开启这些设备

6.2配置运营商接口g2的IP地址、子网掩码,配置普通用户和企业内网服务器的IP地址、网关和子网掩码

6.3企业出口g1配置默认路由

配置静态路由的通用格式:ip route-static 目的网段 子网掩码 下一跳地址

6.4通过访问当前接口指定IP地址的http服务对应内网:192.168.11.100

6.5测试普通用户端是否能访问企业公网tcp/80

注:路由器不会提供七层服务只能提供三层服务,用户访问公网IP200.2.2.1,实际访问的是内网服务器192.168.11.100

7、Easy IP的配置

使用一个公网地址使所有设备都能访问外网(每台设备通过端口号区分) 

7.1拓扑图如上

7.2建立acl表2000规则,并在企业出口端口g1上启用

7.3内网设备访问外网,再查看NAT(网络地址转换)会话表项 ,可查看到对应的端口号

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

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

相关文章

01AVue入门(持续学习中)

1.使用AVue开发简单的前端页面直接简单到起飞,他是Element PlusVueVite开发的,不需要向元素的前端代码一样一个组件要传很多参数,他可以使用Json文本来控制我们要传入的数据结构来决定显示什么 //我使用的比较新,我们也可以使用cdn直接使用script标签直接引入 2.开发中遇到的坑…

期货平仓日历(期货平仓日期汇总)

什么是期货平仓日历? 期货是一种高风险高收益的投资品种。而期货交易不同于股票等其他投资品种的交易,期货交易需要在一定时间内才能买卖。而期货平仓日历就是指期货交易中规定的所有合约的平仓日期汇总。 常见期货平仓日期和时间? 不同的…

KylinV10 安装 MySQL 教程(可防踩雷)

KylinV10 安装 MySQL 教程(可防踩雷) 1、直接用 apt 快捷安装 MySQL $ sudo apt-get update #更新软件源 $ sudo apt-get install mysql-server #安装mysql然后你会发现,KylinV10 安装畅通无阻,并没有设置密码的场景&#xff0c…

Vue: node-sass 无法为当前环境找到绑定, Windows64-bit, 重新安装node-sass失败

参照两位大神的文章总结: 参考1: 解决Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 14.x-CSDN博客 参考2: 前端开发环境搭建踩坑笔记——npm install node-sass安装失败的解决方案-CSDN博客 总结: 管理员运行 先卸载n…

测试自动化平台 | 测试开发工程师的进阶之路

一、测试工程师的现状 很多测试小伙伴在工作中有时会比较迷茫,不知该怎样突破瓶颈,更好的发展。 那么测试人员究竟该如何打破瓶颈继续向上提升呢?如果你苦于不知所措,又满怀斗志向上的话,不妨一起聊聊。测试职业发展…

Compose 组合项 - 滑动列表 LazyColumn、LazyRow

一、概念 可滚动,类似RecyclerView( Column、Row 用 Modifier 设置滚动是相当于ScrollView)。 从 Navigation 返回后丢失状态(跳到头部) :将 LazyListState 提升到 Screen 级别,不用放到 ViewMo…

【Axure RP9】实现登入效验及实现左侧菜单栏跳转各页面

目录 一 效验简介 1.1 校验好处 1.2 应用场景 二 登入校验 2.1 效果 2.2 实现流程 三 左边菜单栏左侧菜单栏跳转各页面 3.1 效果 3.2 实现图 一 效验简介 1.1 校验好处 提高安全性: 在传统的用户名和密码登录的基础上,引入了另一种或多种验证…

MyBatis-Plus是什么?能干嘛?

MyBatis-Plus是一个基于MyBatis的增强工具,旨在简化开发、提高效率。它提供了通用的mapper和service,可以在不编写任何SQL语句的情况下,快速实现对单表的CRUD、批量、逻辑删除、分页等操作。 MyBatis-Plus的主要特性包括: 无侵入…

【PostgreSQL内核学习(十八)—— 存储管理(存储管理的体系结构)】

存储管理 概述存储管理器的体系结构存储管理器的主要任务读写元组过程 声明:本文的部分内容参考了他人的文章。在编写过程中,我们尊重他人的知识产权和学术成果,力求遵循合理使用原则,并在适用的情况下注明引用来源。 本文主要参考…

最新鸿蒙HarmonyOS 使用Progress、Toggle开发一个接单界面

Progress 进度条组件,用于显示内容加载或操作处理等进度。 接口 Progress(options: {value: number, total?: number, type?: ProgressType}) Toggle组件提供勾选框样式、状态按钮样式及开关样式。 接口 Toggle(options: { type: ToggleType, isOn?: boolean …

SpringBoot actuator应用监控

文章目录 引入依赖端点(Endpoints)端点种类端点开启配置暴露端点手动暴露端点 端点保护引入spring security依赖配置security 端点响应缓存访问端点路径修改CORS跨域支持健康信息(/actuator/health)自定义healthInfo 应用信息(/actuator/info) 监控信息可视化引入依赖配置查看配…

【LeetCode刷题】--245.最短单词距离III

245.最短单词距离III class Solution {public int shortestWordDistance(String[] wordsDict, String word1, String word2) {int len wordsDict.length;int ans len;if(word1.equals(word2)){int prev -1;for(int i 0;i<len;i){String word wordsDict[i];if(word.equa…

Unity中Shader测试常用的UGUI功能简介

文章目录 前言一、锚点1、锚点快捷修改位置2、使用Anchor Presets快捷修改3、Anchor Presets界面按下 Shift 可以快捷修改锚点和中心点位置4、Anchor Presets界面按下 Alt 可以快捷修改锚点位置、UI对象位置 和 长宽大小 二、Canvas画布1、UGUI中 Transform 变成了 Rect Transf…

One Wire协议解析

引言 One Wire是一种串行扩展总线技术&#xff0c;由DALLAS公司推出。它采用一根信号线进行通信&#xff0c;既传输时钟信号又传输数据&#xff0c;而且能够进行双向通信。由于其节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点&#xff0c;One Wire在许多…

go语言指针变量定义及说明

go语言指针主要需要记住两个特殊符号&#xff0c; 一个是 & 用来获取变量对应的内存地址 另一个是 * 用来获取指针对应的变量值 下面是个最简单的go语言指针说明 package mainimport "fmt"//指针为内存地址func main() {var a string "指针对应的变量&…

2023数字化发展推动家庭教育走向科学评价

近年来,随着人工智能、大数据、区块链等新一代数字技术的教育应用,在实践探索中形成了无感式数据采集、智能化诊断分析、即时性精准反馈等新样态,为破解教育评价难题提供了新的可能。 过去,传统教育评价体系是学校以及家庭教育最核心的焦虑和压力来源之一。“唯分数论”以及“…

实验一传统的结构化的软件工程方法、实验二面向对象的软件工程、实验三软件测试

背景&#xff1a; 实验一 传统的结构化的软件工程方法 1实验目的 了解传统的软件工程方法的基本原理&#xff0c;掌握软件生命周期的全过程依次划分为需求分析、总体设计、详细设计、编码、测试、维护等几个重要阶段。每个阶段所要完成的任务以及提交的文档。 2实验内容 …

手把手教你在 windows 上安装 Docker

前言 大家好&#xff0c;我是潇潇雨声&#xff0c;今天为大家带来一篇关于在 Windows 环境下使用 Docker 的教程。对于 Docker&#xff0c;我们可以简单地将其看作一种方便的软件安装方式&#xff0c;而无需深入涉及其复杂的概念。选择使用 Docker 主要是为了省事&#xff0c;比…

爬虫请求指纹检测与绕过 TLS/JA3/Http2

说明&#xff1a;仅供学习使用&#xff0c;请勿用于非法用途&#xff0c;若有侵权&#xff0c;请联系博主删除 作者&#xff1a;zhu6201976 一、什么是请求指纹检测&#xff1f; TLS/JA3、HTTP/2 指纹检测是一种网络流量分析技术&#xff0c;用于识别和分析网络通信中使用的加密…

阿里云k8s集群搭建

文章目录 一、安装前准备1.环境2.k8s集群规划 二、k8s 安装1. centos基础设置2. docker 安装3. k8s安装3.1 添加阿里云 yum 源3.2 安装 kubeadm、kubelet、kubectl3.3 部署 Kubernetes Master3.4 加入 Kubernetes Node3.5 部署 CNI 网络插件3.6 测试 kubernetes 集群 一、安装前…