当前位置: 首页 > news >正文

安全防御之防火墙篇(二)

目录

1.防火墙如何处理双通道协议?

2.防火墙如何处理NAT?

3.防火墙支持哪些NAT技术,主要应用的场景是什么?

4.当内网PC通过公网域名解析访问内网服务器的时候,会存在什么问题,如何解决?请详细说明

5.防火墙使用VRRP实现双机热备会遇到什么问题,如何解决?请详细说明

6.防火墙支持哪些接口模式,一般使用在哪些场景?

7.NAT实验

8.双机热备实验


1.防火墙如何处理双通道协议?

FTP协议原理图

FTP是一个典型的多通道协议,在主动模式客户端向服务端的TCP的21号端口发起三次握手,建立控制连接,客户端通过FTP PORT命令通知服务端自己的随机端口为P,由服务端向客户端的TCP PORT P 发起三次握手,建立传输连接其中服务端的源端口为20.

被动模式下,客户端向服务端的TCP 的21端口发起三次握手,建立控制连接,客户端向服务端发送PASV命令,服务端通过Enter PASV命令告知客户端自己的随机端口为M,由客户端向服务端的TCP PORT M发起三次握手,建立传输连接。

安全策略存在的问题:对于类似于FTP这种双通道协议,由于其中端口的随机性,导致无法书写安全策略的参数,假如对于端口参数选择any,会使得颗粒度较大,以至于让防火墙失去效果。

ASPF(Application Specific Packet Filter,针对应用层的包过滤)也叫基于状态的报文过滤,ASPF功能可以自动检测某些报文的应用层信息(可以理解为在双方建立传输通道之前协商端口的报文)并根据应用层信息放开相应的访问规则,开启ASPF功能后,FW通过检测协商报文的应用层携带的地址和端口信息,自动生成相应的Server-map表,用于放行后续建立数据通道的报文,相当于自动创建了一条精细的“安全策略”。

<USG6000V1>dis firewall server-map           //查看server-map表
2023-03-18 06:47:53.330
Current Total Server-map : 1
Type: ASPF, 10.1.1.3 -> 100.1.1.2:2054, Zone:---
Protocol: tcp(Appro: ftp-data), Left-Time:00:00:13
Vpn: public -> public
<USG6000V1>dis firewall session table         //查看会话表
2023-03-18 06:47:57.650
Current Total Sessions : 14
ftp VPN: public --> public 10.1.1.3:2059 +-> 100.1.1.2:21
ftp VPN: public --> public 10.1.1.3:2065 +-> 100.1.1.2:21
ftp VPN: public --> public 10.1.1.3:2049 --> 100.1.1.2:21
ftp VPN: public --> public 10.1.1.3:2063 +-> 100.1.1.2:21
ftp-data VPN: public --> public 10.1.1.3:2066 --> 100.1.1.2:2054

2.防火墙如何处理NAT?

路由器上NAT针对多通道协议也会像防火墙那样抓取控制进程协商传输进程网络参数的报文,进而生成传输进程返回的NAT映射(在NAT中的主要参数是IP)。

困境

某些协议会在应用层携带通信ip,这个ip用于下一阶段通信。但是NAT的地址转换并不是转应用层IP而是转三层IP,这就导致某些协议的通信阶段在NAT场景下失败。

这也是导致交换机一般没有nat的主要原因。(由于NAT需要抓取控制进程的特殊报文来进行分析,从而计算出后续传输进程所需要的网络参数,并且在发送端和接受端以及NAT后的数据需要进行校验计算,会消耗大量的计算资源,对于设备的内存和CPU是一个很大的考验。由于交换机是通过硬件芯片工作的,本身计算资源有限,无法完成NAT的强大计算量,这也就是一般交换机没有NAT的主要原因)

防火墙nat类型的server-map

<USG6000V1>dis firewall server-map
2023-03-18 08:07:54.050
Current Total Server-map : 1
Type: Nat Server, ANY -> 100.1.1.111:80[10.1.2.2:80], Zone: untrust , protoc
ol:tcp
Vpn: public -> public

3.防火墙支持哪些NAT技术,主要应用的场景是什么?

源NAT

场景:主要应用在内网用户没有外网服务的路由时,在内网用户想要访问外网的某台服务器时,发送的数据包的源IP为自己的私网IP,目的IP为服务器的公网IP,在通过边界路由器或者防火墙时,需要将自己的私网IP转换成公有IP去访问。服务端回包时的源IP为自己的公有IP,目的IP为私网用户的公有IP。

server-nat

场景:私网服务器需要对外网用户提供服务时;在网络中无法访问一个私网的用户,当服务器处于私网内部时,外部人员无法访问;此时,就需要将内网服务器的IP和服务通过server-nat映射到私网边界的路由器或者防火墙的公网IP。让外网人员通过访问边界设备的公有IP来达到访问内网服务器的目的。

域间双向转换

场景:假设内网服务器只允许内网用户访问,但是由于某种特殊要求,现在需要外网用户对内网服务器也发起访问,就需要在访问的时候将源目IP都进行NAT

域内双向转换

场景:假设内网有一台服务器,在内网用户想要去访问的时候,一般先去DNS服务器解析出服务器的IP地址,在服务映射的情况下,向外提供的是公网IP,所以在内网用户访问的时候也是使用公网IP访问,就需要在做域内双向转换。

双出口nat

场景:某个企业使用两条运营商的宽带;需要将属于某个运营商的网段进行nat然后与该运营商的下一跳进行关联,就不会出现nat转换错乱的问题。 

4.当内网PC通过公网域名解析访问内网服务器的时候,会存在什么问题,如何解决?请详细说明

场景:私网内部有一台服务器提供服务(192.168.56.63),现私网内部人员(192.168.1.15)通过DNS解析出来的地址去访问私网服务器,由于DNS解析出的地址为公有IP(14.2.23.5);

转换前数据包格式:

源IP:192.168.1.15         目IP:14.2.23.5

如果只是在简单的server-nat下,只会转换目的IP

转换后数据包格式:

源IP:192.168.1.15        目IP:192.168.56.63

在服务端回包时,会按照转换后的数据包进行回包,但接收方(客户端)收到的报文格式与本端发送时不一致,就回丢弃该报文,导致双方通信失败。

解决方法:域间双向nat

转换前数据包格式:

源IP:192.168.1.15                          目IP:14.2.23.5

转换后数据包格式:

源IP:14.2.23.6(公网池地址)       目IP:192.168.56.63

发包和收包报文格式一致,双方正常通讯。

5.防火墙使用VRRP实现双机热备会遇到什么问题,如何解决?请详细说明

出现的问题:假设上面的防火墙为PC1的主网关,下面为备网关。当PC的数据流来到上面的防火墙时,查询会话表,未果后查询策略表,若命中创建会话表,后续报文基于会话表转发。但是当主网关左侧线路断掉的话,因为VRRP的存在会将PC 的网关切换到下面的一台防火墙,但是由于下面一台防火墙没有会话表,又没有首包可以创建,故导致数据转发失败。由于数据包一般要求来回路径一致,回包此时发往上面的防火墙,也会导致数据转发失败。

解决办法:使用VGMP进行统一管理,防火墙两侧线路状态需要一致。 

VGMP-------统一组管理协议,将VRRP组进行统一管理,在开启抢占的时候统一由VGMP进行管理,看是否需要切换。

在主备防火墙之间使用线路连接,俗称“心跳线”,负责主备网关之间的配置同步(包括会话表,安全策略,路由情况等)

6.防火墙支持哪些接口模式,一般使用在哪些场景?

  • 路由模式 --- 以第三层对外连接(接口具有IP 地址)
  • 交换模式 --- 通过第二层对外连接(接口无IP 地址)
  • 旁路模式 --- 该接口一般用于接收镜像流量,向主机一样旁观在设备上。通过旁观设备的端口镜像技术收集流量给旁路接口,这个场景防火墙可以做IPS,审计,流量分析等任务。
  • 接口对模式 --- 加快接口的转发效率(不需要查看MAC地址表)

7.NAT实验

1.源nat

抓包分析:

使用trust区的10.1.1.2去访问untrust的100.1.1.2

2.server-nat

测试: 

通过访问公网100.1.1.11映射到内网服务器

3.域内双向nat  

映射内网服务器

抓包分析:

转换后的数据包

 4.域间双向nat

 抓包分析:

转化后数据包

8.双机热备实验

创建心跳接口----端口聚合

 配置主防火墙

 

查看当前状态

 

备防火墙

 

查看备防火墙的同步配置

与主防火墙配置一致

 

双机热备测试
关闭主防火墙的1/0/0口进行测试,在备防火墙的接口上抓包,观察有流量通过

相关文章:

安全防御之防火墙篇(二)

目录 1.防火墙如何处理双通道协议&#xff1f; 2.防火墙如何处理NAT&#xff1f; 3.防火墙支持哪些NAT技术&#xff0c;主要应用的场景是什么&#xff1f; 4.当内网PC通过公网域名解析访问内网服务器的时候&#xff0c;会存在什么问题&#xff0c;如何解决&#xff1f;请详细…...

设计必备,5个png免抠素材网站,建议收藏

做设计、PPT都需要用到大量的免抠素材&#xff0c;职场中熟练使用Photoshop的人毕竟是少数&#xff0c;也很少有人愿意花费时间去精细抠图。那这5个免抠素材网站一定要收藏好&#xff0c;可以有效帮你节省时间&#xff0c;提高工作效率。 1、菜鸟图库 https://www.sucai999.co…...

shell 脚本expect

expect 是什么 expect - programmed dialogue with interactive programs&#xff08;与互动程序进行程序对话&#xff09; 定义脚本执行的 shell #!/usr/bin/expect -f 定义的是执行 expect 可执行文件的链接路径&#xff08;或真实路径&#xff09;&#xff0c;功能类似于bas…...

第十九天 Maven总结

目录 Maven 1. 前言 2. 概述 2.1 介绍 2.2 安装 3. IDEA集成Maven 3.1 集成Maven环境 3.2 创建Maven项目 3.3 Maven坐标详解 3.4 导入maven项目 4. 依赖管理 4.1 依赖配置 4.2 依赖传递 4.3 依赖范围 4.4 生命周期 4.5 插件 Maven 1. 前言 1). 什么是Maven? …...

ESP8266-NodeMCU开发板-------开发板介绍(1)

目录 认识ESP8266-NodeMCU开发板​编辑 GPIO编号与NodeMCU开发板引脚名的区别&#xff1a; ESP8266 GPIO编号与NodeMCU开发板引脚名的对应关系 可用引脚 电压电流限制 特殊引脚情况说明 上拉电阻/下拉电阻 模拟输入 通讯 认识ESP8266-NodeMCU开发板 初识NodeMCU开发板 (第1章-第…...

【测试开发篇3】软件测试的常用概念

目录 一、软件测试的生命周期(5个步骤) ①需求分析(两个角度) 用户角度&#xff1a; 开发人员的角度&#xff1a; ②测试计划 ③测试设计、测试开发 ④执行测试 ⑤测试评估 二、软件测试贯穿项目的整个生命周期的体现 需求分析阶段 计划阶段 设计阶段 编码阶段 …...

javaEE初阶 — JavaScript WebAPI

文章目录什么是 DOMDOM 树获取元素1. querySelector2. querySelectorAll事件1. 事件三要素2. 代码案例获取 / 修改元素内容1. innerHTML获取 / 修改元素属性获取 / 修改表单元素属性获取 / 修改样式属性1. 修改内联样式&#xff08;修改 style 属性的值&#xff09;2. 修改元素…...

UE实现地面动态交互效果

文章目录 1.实现目标2.实现过程2.1 SphereMask2.2 材质实现2.3 位置更新3.参考资料1.实现目标 基于SphereMask材质节点实现人物在地面一定范围内的颜色高亮效果。 2.实现过程 实现原理是首先通过,SphereMask材质节点更具计算输出Mask值,其中在球体半径内的输入1,在外部的则…...

如何用自己的数据训练YOLOv5

如何训练YOLOv5 1. Clone the YOLOv5 repository and install dependencies: git clone https://github.com/ultralytics/yolov5.git cd yolov5 pip install -r requirements.txt2. 整理数据&#xff0c;使其适配YOLO训练 Step1&#xff1a;Organize your dataset in the fo…...

【基础算法】数组相关题目

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了秋招算法的&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于代码随想录进行的&#xff0c;每个算法代码参考leetcode高赞回答和…...

MatBox—基于PyQt快速入门matplotlib的教程库

MatBox—基于PyQt快速入门matplotlib的教程库 __ __ _ _ _ _ _ _ _______ _ _ _ | \/ | | | | | | | | |(_)| | |__ __| | | (_) | || \ / | __ _ |…...

go channel使用

go语言中有一句名言&#xff1a; 不要通过共享内存来通信&#xff0c;而应该通过通信来共享内存。 channel实现了协程间的互相通信。 目录 一、channel声明 二、向channel发送数据 三、从channel读取数据 1. i, ok : <-c 2. for i : range c&#xff08;常用&#xff09…...

5. QtDesignStudio中的3D场景

1. 说明&#xff1a; 三维渲染开发是Design Studio的重要功能&#xff0c;且操作方便&#xff0c;设计效率非常高&#xff0c;主要用到的控件是 View3D ,可以在3D窗口中用鼠标对模型直接进行旋转/移动/缩放等操作&#xff0c;也可以为模型设置各种动画&#xff0c;执行一系列的…...

人工智能的几个研究方向

人工智能主要研究内容是&#xff1a;分布式人工智能与多智能主体系统、人工思维模型、知识系统、知识发现与数据挖掘、遗传与演化计算、人工生命、人工智能应用等等。 其中热门研究有以下几种。 一、计算机视觉 就包括图像识别&#xff0c;视频识别&#xff0c;具体应用有人…...

软件测试 - 常见的开发模型和测试模型

1.瀑布模型优点强调开发的阶段性, 强调早期计划及需求调查, 强调产品测试;缺点1. 由于瀑布模型是一种线型结构的模型, 也就意味着前一个阶段结束, 后一个阶段才能开始, 这就导致了风险往往会迟至后期的测试阶段才显露, 因而失去了及早纠正的机会.2. 瀑布模型中测试被后置, 导致…...

从零开始的机械臂yolov5抓取gazebo仿真(四)

Moveit与Gazebo联合仿真 上一篇博客已经将moveit!配置完毕&#xff0c;然而想要让moveit!控制gazebo中的机械臂&#xff0c;还需要进行一些接口的配置。现在我们有的功能包为sunday_description、sunday_moveit_config这两个功能包。且已经配置好xacro文件&#xff0c;本篇内容…...

C++修炼之筑基期第一层——认识类与对象

文章目录&#x1f337;专栏导读&#x1f337;什么是面向对象&#xff1f;&#x1f337;类的引入&#x1f337;什么是类&#x1f337;类的定义方式&#x1f337;类的访问限定符与封装&#x1f33a;访问限定符&#x1f33a;封装&#x1f337;类的作用域&#x1f337;类的实例化&a…...

IT 运营监控工具

在技术复杂性日益增加、业务竞争激烈的挑战以及消费者对服务中断接受度降低的世界中&#xff0c;IT 运营效率已成为增长、利润和成功的关键。IT 宕机的影响在几十年前威胁较小&#xff0c;现在意味着价值数百万美元的损失&#xff0c;有时甚至会损失各种规模的组织的业务和声誉…...

java线程之Thread类的基本用法

Thread类的基本用法1. Thread类的构造方法2. Thread的几个常见属性常见属性线程中断等待一个线程小鱼在上一篇博客详细的讲解了如何创建线程,java使用Thread类来创建多线程,但是对于好多没有相关经验的人来说,比较不容易理解的地方在于操作系统调度的执行过程. 我们通过下面代码…...

【js】多分支语句练习(2)

个人名片&#xff1a; &#x1f60a;作者简介&#xff1a;一名大一在校生&#xff0c;web前端开发专业 &#x1f921; 个人主页&#xff1a;python学不会123 &#x1f43c;座右铭&#xff1a;懒惰受到的惩罚不仅仅是自己的失败&#xff0c;还有别人的成功。 &#x1f385;**学习…...

Redis与MySQL的双写一致性问题

Redis与MySQL的双写一致性问题更新缓存&#xff1f; 删除缓存&#xff1f;先更新缓存再更新数据库先更新数据库&#xff0c;再更新缓存先删除缓存再更新数据库先更新数据库&#xff0c;再删除缓存解决方案1. 重试2. 异步重试2.1 使用消息队列实现重试2.2 Binlog实现异步重试删除…...

Java基础:笔试题

文章目录Java 基础题目1. 如下代码输出什么&#xff1f;2. 当输入为2的时候返回值是多少?3. 如下代码输出值为多少?4. 给出一个排序好的数组&#xff1a;{1,2,2,3,4,5,6,7,8,9} 和一个数&#xff0c;求数组中连续元素的和等于所给数的子数组解析第一题第二题第三题第四题方案…...

spring三级缓存以及@Async产生循环引用

spring三级缓存以及Async产生循环引用spring三级缓存介绍三级缓存解除循环引用原理源码对应1、获取A&#xff0c;从三级缓存中获取&#xff0c;没有获取到2、构造A&#xff0c;将A置入三级缓存构造A(创建A实例)置入缓存3、注入属性&#xff0c;构造B扫描缓存实例的相关信息注入…...

【洛谷刷题】蓝桥杯专题突破-深度优先搜索-dfs(5)

目录 写在前面&#xff1a; 题目&#xff1a;P2036 [COCI2008-2009#2] PERKET - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述&#xff1a; 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; 解题思路&#xff1a; 代码…...

【Unity3D】Unity3D中在创建完项目后自动创建文件夹列表

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 随着项目开发的体量增大&#xff0c;要导入大量的素材、UI、模…...

如何设计一个锂电池充电电路(TP4056)

这个是个单节18650锂电池的充电模块&#xff0c;这个是个18650的锂电池&#xff0c;18指的是它的直径是18mm&#xff0c;65指的是它的高度为65mm。这个18650电池的标称电压是3.7V&#xff0c;电池充满时电压为4.2V&#xff0c;一般电池电压越高也就代表它所剩的电量越大。这种锂…...

Spark了解

目录 1 概述 2 发展 3 Spark和Hadoop 4 Spark核心模块 1 概述 Apache Spark是一个快速、通用、可扩展的分布式计算系统&#xff0c;最初由加州大学伯克利分校的AMPLab开发。 Spark可以处理大规模数据处理任务&#xff0c;包括批处理、迭代式算法、交互式查询和流处理等。Spa…...

c++STL急急急

文章目录cSTL急急急vector头文件扩容过程用法&#xff1a;size/emptyclear迭代器begin/endfront/backpush_back() 和 pop_back()queue头文件用法循环队列 queue用法优先队列 priority_queue用法stack头文件deque头文件deque中控器&#xff1a;用法set头文件用法迭代器begin/end…...

【C++学习】模板进阶——非类型模板参数 | 模板的特化 | 分离编译

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《C学习》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 模板我们之前一直都在使用&#xff0c;尤其是在模拟STL容器的时候&#xff0c;可以说&#xff0c;模板…...

【C++】C++11新特性——可变参数模板|function|bind

文章目录一、可变参数模板1.1 可变参数的函数模板1.2 递归函数方式展开参数包1.3 逗号表达式展开参数包1.4 empalce相关接口函数二、包装器function2.1 function用法2.2 例题&#xff1a;逆波兰表达式求值2.3 验证三、绑定函数bind3.1 调整参数顺序3.2 固定绑定参数一、可变参数…...