一、防火墙-安全区域

学习防火墙之前,对路由交换应要有一定的认识

  • 1、什么是防火墙
  • 2、防火墙的发展史
  • 3、安全区域
    • 3.1.接口、网络和安全区域的关系
    • 3.2.报文在安全区域之间流动方向
    • 3.3.安全区域的配置
      • 安全区域小实验
    • 3.4.状态检测和会话机制
      • 3.4.1.状态检测
      • 3.4.2.会话
    • 3.5.状态检测和会话机制补遗
      • 3.5.1.再谈会话
      • 3.5.2.状态检测和会话创建
      • 来回路径不一致解析
    • 3.6.注意事项

——————————————————————————————————————————————————

1、什么是防火墙

2013年9月,华为在企业网络大会发布了下一代防火墙USG6600,标志着华为进入新的历史发展阶段。

防火墙主要用于保护一个网络免受来自另一个网络的攻击和入侵行为,因其隔离、防守的属性,防火墙灵活用于网络边界、子网隔离等位置。路由器用来连接不同的网络,通过路由协议来保证互联互通,确保将报文转发到目的地。交换机通常用于组建局域网,作为局域网的重要枢纽,通过二三层交换机快速转发报文。防火墙主要部署在网络边界,对进出网络的访问行为进行控制,安全防护是其核心特性。

路由器和交换机本质是转发,防火墙本质是控制。

在这里插入图片描述

——————————————————————————————————————————————————

2、防火墙的发展史

第一代:1989年产生包过滤防火墙,实现简单的访问控制。

第二代:出现了代理防火墙,在应用层代理内部网络和外部网络之间的通信。安全性高,处理速度慢,对于每一种应用都要开发一个对应的应用代理服务,因此只能提供少量的代理支持。

第三代:1994年,Check Point公司发布了第一台基于状态检测技术的防火墙,通过动态分析报文状态决定对报文采取的动作。状态检测防火墙称为第三代防火墙。

在这个阶段,状态检测防火墙1995年-2004年,增加了一些如VPN等功能,同时专用设备出现了皱型,如WEB防火墙等设备。

2004年提出了UTM统一威胁管理概念,将防火墙、入侵检测、防病毒、URL过滤、应用程序控制、邮件过滤等功能融合在一台防火墙上,实现安全防护。

2004年UTM快速发展,但面临新问题,针对应用层的检测程度受到限制。如允许男人通过,拒绝女人通过,那么外星人如何通过?就需要更高级的检测手段,DPI深度报文检测技术得到了广泛应用。多个安全功能同时运行,性能严重下降。

2008年,Palo Alto Network发布下一代防火墙解决了同时运行性能下降问题,同时还基于用户、应用和内容来管控。

2009年后,Gartner对下一代防火墙进行了明确的定义,明确应具备的功能特性。
————————————————————

总结:

1、从最初的简单控制到基于会话控制,再到基于用户、应用和内容来控制,实现更精确的管控。

2、从早期的隔离,逐渐增加入侵检测、防病毒、URL过滤、应用程序控制、邮件过滤等,防护手段越来越多,范围越来越广。

3、处理性能越来越高。

——————————————————————————————————————————————————

3、安全区域

前面介绍了概念和发展史, 接下来说下最基本的防火墙安全区域。

——————————————————————————————————————————————————

3.1.接口、网络和安全区域的关系

前面提到过,防火墙部署在网络边界起到隔离作用,如何在防火墙区分不同网络?

为此在防火墙上引入了重要的概念:安全区域(Security Zone)。安全区域是一个或多个接口的集合。

防火墙通过安全区域来划分网络、标识报文流动的路线,一般来说,当报文在不同的安全区域之间流动时才会受到控制。

默认情况下,华为防火墙报文在不同的安全区域之间流动时受到控制,在同一安全区域内流动不受控制。同时也支持同一安全区域内流动的报文控制。

我们都知道,防火墙通过接口来连接网络,将接口划分到安全区域后,通过接口就能把安全区域和网络关联起来。通常说某个安全区域,也可以表示该安全区域中接口所连接的网络。

下图:接口、网络和安全区域的关系
在这里插入图片描述

在华为防火墙上,一个接口只能加入到一个安全区域中。

通过接口划分到不同的安全区域中,就可以在防火墙划分不同网络。下图中,G1/0/0、G1/0/1和G1/0/2接口划分为不同的安全区域,划分出3个安全区域,对应3个网络。
在这里插入图片描述

华为防火墙默认提供3个安全区域:Trust、Untrust、DMZ。

Trust区域: 网络的受信任程度高,通常用来定义内部用户所在的网络。

Untrust区域: 不受信任的网络。通常用来定义Internet等不安全的网络。

DMZ区域: 网络的受信任程度中,通常用来定义内部服务器所在的网络。

在网络数量少,简单环境中,默认提供的区域就可以满足网络划分。下图例如:内部网络用户访问Internet时,报文在防火墙的路线从Trust区域到Untrust区域;当Internet用户访问内部服务器时,报文在防火墙的路线为Untrust到DMZ区域。

在这里插入图片描述

除了在不同网络之间流动的报文之外,还存在从某个网络到达防火墙本身的报文,例如登录防火墙进行配置,以及防火墙本身发出的报文。如何标识这类报文的路线??

华为防火墙提供Local区域。代表防火墙本身,凡是由防火墙主动发出的报文均可认为是从Local区域发出。凡是需要防火墙进行响应并处理(而不是转发)的报文均可认为是从Local区域接收。

关于Local区域,该区域不能添加任何接口,但防火墙所有接口本身都隐含属于Local区域,也就是说,报文通过接口去往某个网络时,目的安全区域是该接口所在的安全区域;报文通过接口到达防火墙本身时,目的区域是Local区域。

——————————————————————————————————————————————————

3.2.报文在安全区域之间流动方向

用安全区域来表示网络后,怎么判断一个安全区域的受信程度?

在华为防火墙上,每个安全区域都必须有1个安全级别,唯一ID,用1-100数字表示,数字越大,越可信。默认的安全区域,安全级别是固定的。

Local安全级别100,Trust区域安全级别:85,DMZ:50,Untrust:5。

级别确定后,报文就被分成三六九等,高低有别。

华为防火墙规定:报文从低级别的安全区域向高级别的安全区域流动时为入方向(Inbound),报文从高级别区域向低级别区域流动时为出方向(Outbound)。

设置了安全级别,各个安全区域之间有了等级明确的域间关系,不同的安全区域代表不同的网络。为此基础防火墙就有了对各个网络之间流动的报文实施管控。

防火墙如何判断哪两个安全区域之间流动呢??

确定源安全区域很容易,防火墙从哪个接口接收报文,该接口所属的安全区域就是源安全区域。

路由模式下,防火墙通过查找路由表确定报文从哪个接口转发,该接口所属区域就是目的安全区域。

交换模式下,防火墙通过查找MAC地址表转发确定报文从哪个接口发出,该接口所属区域就是目的安全区域。

VPN场景中,防火墙收到封装报文,解封装后得到原始报文,通过查找路由表确定报文从哪个接口转发,该接口所属区域就是目的安全区域。

确定报文源和目的安全区域是精确配置安全策略的前提条件。

——————————————————————————————————————————————————

3.3.安全区域的配置

安全区域的配置主要包括:创建安全区域及接口加入到安全区域。

创建一个安全区域Ser01,将接口G1/0/0加入该安全区域。可以工作在路由模式也可以工作在交换模式。

命令很简单,注意新创建的安全区域没有安全级别,必须为其设置安全级别,然后才能加入端口。

[USG6000]firewall zone name Ser01                               创建安全区域Ser01
[USG6000-zone-Ser01]set priority 10                             将安全级别设置为10
[USG6000-zone-Ser01]add interface GigabitEthernet 1/0/0         将接口G1/0/0加入安全区域

华为防火墙支持物理接口加入安全区域,还支持逻辑接口,如:子接口、VLANIF接口等。

——————————————————————————————————————————————————

安全区域小实验

如图:PCA和PCB属于不同的子网,交换机通过创建两个VLAN将PCA和PCB所属子网隔离,交换机连接到防火墙G1/0/0接口。这种组网是典型的单臂环境。
在这里插入图片描述

这种情况,防火墙的一个接口连接两个子网,前面提到防火墙一个接口只能加入到一个安全区域。所以不能简单的把G1/0/0接口加入到某个区域,此时通过子接口或VLANIF接口来实现这个需求。

子接口实现:

在接口G1/0/0创建两个子接口G1/0/0.1和G1/0/0.2,分别对应VLAN10和VLAN20,然后将两个子接口划分到不同安全区域。

在这里插入图片描述

[USG6000]interface GigabitEthernet 1/0/0.1
[USG6000-GigabitEthernet1/0/0.1]vlan-type dot1q 10
[USG6000-GigabitEthernet1/0/0.1]ip address 192.168.10.254 24

[USG6000]interface GigabitEthernet 1/0/0.2
[USG6000-GigabitEthernet1/0/0.1]vlan-type dot1q 20
[USG6000-GigabitEthernet1/0/0.1]ip address 192.168.20.254 24

[USG6000]firewall zone name trust1
[USG6000-zone-trust1]set priority 10
[USG6000-zone-trust1]add interface GigabitEthernet 1/0/0.1

[USG6000]firewall zone name trust2
[USG6000-zone-trust1]set priority 20
[USG6000-zone-trust1]add interface GigabitEthernet 1/0/0.2

完成上述配置,PCA被划分到trust1区域,PCB划分到2区域,此时就可以对PCA和PCB报文进行控制。

VLANIF实现:

防火墙创建两个VLAN,配置VLANIF接口IP,配置G1/0/0接口工作在交换模式下(透明模式)。允许10和20VLAN报文通过。将VLAN10和VLAN20划分到不同的安全区域。

这里就不举例了,配置完,直接加入区域即可。。

——————————————————————————————————————————————————

3.4.状态检测和会话机制

前面提到的第三代防火墙,状态检测防火墙所使用的状态检测和会话机制,目前已经成为防火墙的基本功能,也是实现安全防护的基础技术。

——————————————————————————————————————————————————

3.4.1.状态检测

先从状态检测防火墙产生的背景说起。

看一个简单的环境。PC和Web位于不同的网络,分别与防火墙相连。PC和WEB通信受防火墙控制。
在这里插入图片描述

当PC需要访问Web服务器浏览网页,在防火墙上必须配置一条规则,允许PC访问Web服务器的报文通过,这里说的规则,指的是防火墙的安全策略。这条规则中,源端口any表示任意端口,这是操作系统决定了所使用端口,Windows来说的话,值可能是1024-65535范围任何一个端口。值不确定,所以设定为任意端口。配置了这条规则后,PC发出的报文可以顺利通过防火墙,到达Web服务器。
在这里插入图片描述

然后呢,Web服务器将会向PC发送回应报文,这个报文也要穿过防火墙到达PC。在状态检测防火墙出现之前,包过滤防火墙上还必须配置一条反方向的编号为2的规则,允许反方向通过。规则2中,目的端口设定为ANY端口,因为无法确定PC访问WEB所用的端口。
在这里插入图片描述

如果PC位于受保护的网络,这样处理会带来很大风险,去往PC的目的端口全开放,外部恶意攻击者伪装成WEB服务器,就可以畅通无阻的穿过防火墙,PC将会面临严重安全风险。

在状态检测防火墙中,还是需要设置规则1,当报文到达防火墙后,防火墙允许通过,同时针对PC访问Web服务器行为建立会话Session,会话中包含发出报文信息如地址和端口等。当Web服务器回应给PC到达防火墙后,防火墙会把报文中信息与会话信息对比。如果匹配,并且符合HTTP协议规范的规定,认为这个报文属于PC访问Web行为的后续报文,直接允许通过。

恶意攻击者,即使伪装成Web服务器向PC发起访问,由于这类报文不属于PC访问WEB服务器的行为的后续回应报文,防火墙不允许这些报文通过。这样既保证PC可以正常访问WEB,也避免大面积端口开放的带来的风险。

总结:

包过滤防火墙:报文都是孤立的个体,不关注报文的前因后果,根据设定的静态规则判断是否允许。这就要求必须针对每一个方向报文配置规则。转发效率低且安全风险大。

状态检测防火墙:基于连接状态检测机制,通信双方交互属于同一连接的所有报文都作为整体的数据流来对待。

——————————————————————————————————————————————————

3.4.2.会话

会话是通信双方建立的连接在防火墙的具体体现,代表两者的连接状态,一条会话表示通信双方的一个连接。多条会话的集合就叫会话表。

在这里插入图片描述

ICMP:表示协议
192.168.1.1:表示源地址,43377等等:表示源端口
192.168.1.254:表示目的地址,2048:表示目的端口

源地址、源端口、目的地址、目的端口和协议这5个元素组成会话的重要信息,称为:五元组。只要这5个元素相同的报文即可认为同一条流。

有一些协议,报文中没有端口信息,防火墙处理这些协议报文时,如何生成会话表?如上图,ICMP报文中不带端口信息的。防火墙会把ICMP报文头ID字段值作为ICMP会话源端口,以固定2048作为ICMP的会话目的端口。还有IPSec中的AH和ESP协议也不带端口信息。防火墙会直接把这两个协议会话中的源端口和目的端口都记录为0。

——————————————————————————————————————————————————

3.5.状态检测和会话机制补遗

上面说了状态检测工作原理,看过之后,防火墙的会话只包含五元组信息?会为哪些协议建立会话?状态检测功能在所有的网络环境都适用吗?

——————————————————————————————————————————————————

3.5.1.再谈会话

还是如图:PC、Web服务器与防火墙直连,接口加入区域,并且配置了PC允许WEB规则。
在这里插入图片描述

PC访问Web业务,这里用的ICMP。在防火墙dis firewall session table verbose命令可以看到会话建立正常,使用了Verbose参数,可以看到更多会话信息。

在这里插入图片描述

除了五元组信息以外,还有一些没见过的信息。

Zone:表示报文在安全区域之间流动的方向。显示Trust--->Trust
TTL:表示该会话的老化时间,到期后,会话被清除
Left:表示会话剩余的生存时间
Interface:表示报文出接口
NextHop:去往下一跳IP地址
MAC:吓一跳MAC地址
<--packets:1 bytes:84 :反方向的报文统计信息,个数和字节数,WEB-PC方向
-->packets:1 bytes:84 :正方向的报文统计信息,个数和字节数,PC-WEB方向

上述信息会话时间TTL,是动态生成的,长时间没有匹配报文,会话自动清除。该时间成为会话的老化时间。

老化时间取值非常重要,某些业务的会话老化时间过长,就会一直占用资源,有可能导致其他业务不能正常建立会话。会话时间过短,可能导致该业务连接被防火墙强行中断,影响业务运行。华为防火墙为不同的协议设置了相应的会话默认老化时间。ICMP老化时间20S,DNS老化时间30S等。

如果需要调整:

firewall session aging-time service-set dns 10

还有一种类型的业务,一条连接上的两个连续报文可能间隔时间很长。最具代表的SQL数据库业务,用户查询SQL数据库服务器上的数据时,查询操作的时间间隔可能远大于SQL数据库业务的会话老化时间,防火墙上该业务的会话老化之后,会出现用户访问SQL数据库变慢或无法继续查询等问题。如果只靠延长老化时间延长这些业务的所属协议,会导致一些同样属于该协议的业务出现问题。

华为为此提供了长连接功能,通过ACL报文识别。匹配ACL规则的特定报文的会话老化时间被延长。默认情况,应用长连接功能的报文会话老化时间是168H。

对于长连接功能在安全区域的配置。针对PC访问SQL数据库报文匹配长连接示例:

[USG6000-acl]acl number 3000
[USG6000-acl-adv-3000]rule permit tcp source 192.168.1.100 0 destination 172.16.1.100 0 destination-port eq sqlnet
[USG6000-interzone-trust-untrust]long-link 3000 outbound

报文统计信息非常重要,可以帮助定位网络故障。通常情况,如果查看会话只有–>方向的报文有统计信息,<–方向统计信息为0,说明PC发往Web服务器的报文顺利通过了防火墙,而没有回应。有可能是防火墙丢弃了WEB服务器回应给PC的报文,或者是防火墙与WEB服务器之间网络故障,或者Web服务器本身故障。通过查看会话信息,可以缩小故障范围。

凡是都有例外,特殊网络环境中,其中一个方向统计信息为0,也有可能是正常的。后续会介绍。

——————————————————————————————————————————————————

3.5.2.状态检测和会话创建

防火墙上状态检测功能将属于同一个连接的报文视为一个整体数据流,用会话表示这条连接,具体如何实现?这就要求防火墙能够分析每个协议的交互模式。以TCP为例,建立需要三次握手。

判断一个TCP连接主要标志就是SYN报文,SYN报文称为TCP的首包,对于TCP协议,防火墙只有收到SYN报文并且配置允许SYN报文通过才会建立会话,后续的TCP报文匹配会话直接转发。如果只收到SYN+ACK等后续报文,是不会创建会话的,并且丢弃。

在这里插入图片描述

正常情况这样处理是没有问题的。但是在如图:

内部网络访问外部的请求报文直接通过路由器到达外部,而外部回应报文先经过路由器转发到防火墙,由防火墙处理后再转发到路由器,最后又路由器转发回内部网络。也就是防火墙无法收到SYN报文,只收到SYN+ACK报文,这种通信双方交互的报文不同时经过防火墙的情况,叫报文来回路径不一致。

在这里插入图片描述

由于防火墙收到SYN+ACK报文后,没有相应的会话,就会丢弃报文。导致通信中断。防火墙早已考虑到这个问题,可以关闭状态检测功能。关闭后,不会在对连接的状态进行分析。相当于回到了包过滤防火墙的时代,后续报文只要匹配规则允许通过,就可以转发并建立会话。

关闭状态检测功能将彻底改变防火墙工作模式,默认开启,除非有特殊需求。

——————————————————————————————————————————————————

来回路径不一致解析

使用模拟器来模拟报文来回路径不一致的网络,PC访问WEB通过路由器直接到达WEB服务器,让WEB服务器回应给PC的报文先转发到防火墙,然后在发送到PC。 NET模拟用户PC终端。
在这里插入图片描述

为了构造来回不一致路径,需要在路由器上配置策略路由,将WEB服务器回应给PC的报文重定向到防火墙。

配置省略。策略路由可以看之前的文档。

去往172.16.0.1服务器的路由是经过路由器直接到WEB服务器的。

在这里插入图片描述
用户终端访问WEB服务器是通的。
在这里插入图片描述
回程的话,配置了策略路由后,直接跟踪后走防火墙了。
在这里插入图片描述
配置策略后,PC访问WEB服务器无法访问。
在这里插入图片描述

在防火墙上也无法看到会话信息
在这里插入图片描述

在防火墙上使用dis firewall statistics system discard查看丢包信息

在这里插入图片描述
表示防火墙因为无法收到会话而将报文丢弃,因为防火墙只收到了服务器回应的SYN+ACK报文,没有收到SYN报文,也就没有相应的会话。所以SYN+ACK报文被丢弃。

在路由器G0/0/2抓包,看看TCP的SYN报文。

在这里插入图片描述

192.168.10.2用户PC,发送SYN。一直收不到SYN,ACK的会话。一直发送重传。

172.16.0.1发送的SYN,ACK会话被标记为重传。已经发出给防火墙了,但是一直建立不了会话,然后重传。

最后TCP报出RST中断会话。

————————————————————
在看看防火墙接口
在这里插入图片描述

172.16.0.1收到192.168.10.2的TCP请求后,发送SYS,ACK回应包,送给防火墙,防火墙收到SYS,ACK,但是没有192.168.10.2的SYN请求。过来的SYS,ACK直接丢弃。。。。。172.16.0.1回应的SYN,ACK,一直得不到192.168.10.2的确认。开启TCP的重传机制,重传无响应后,中断会话。

此时已经验证了上面所说的来回路径不一致导致的问题。

接下来在防火墙上关闭状态检测功能。

在这里插入图片描述

再次访问WEB服务器,发现可以正常访问。

在这里插入图片描述

在防火墙可以看到会话信息

在这里插入图片描述

在会话信息中,<-----方向统计信息为0,只有---->方向存在统计信息。这说明只有服务器回应的SYN+ACK报文经过了防火墙,由此可以得出结论,关闭状态检测功能后,防火墙收到SYN+ACK报文后也会建立会话,PC和WEB服务器之间通信不会中断。

这就是上面说的特殊网络环境。实际中具体情况还要具体分析。

总结:

包过滤防火墙:报文都是孤立的个体,不关注报文的前因后果,根据设定的静态规则判断是否允许。这就要求必须针对每一个方向报文配置规则。转发效率低且安全风险大。

状态检测防火墙:基于连接状态检测机制,通信双方交互属于同一连接的所有报文都作为整体的数据流来对待。

说说UDP:

UDP协议不同TCP,没有连接状态的协议,防火墙收到UDP报文后,无论状态检测功能处于开启还是关闭,只要防火墙配置的规则允许UDP报文通过,防火墙就会建立会话。

说说ICMP:

执行Ping命令的操作一方会发送Ping回显请求报文(Echo request),收到该请求后,响应一方会发送Ping回显应答报文(Echo reply)。

在开启状态检测功能后,防火墙只有收到PING的回显请求报文,并且防火墙上配置的规则允许ICMP回显请求报文通过,才会建立会话。如果防火墙没有收到PING回显请求报文,只收到回显应答报文,是不会创建会话。

——————————————————————————————————————————————————

3.6.注意事项

1、创建新的安全区域后,必须为该区域配置安全级别,否则无法将接口加入区域中。

在这里插入图片描述

2、安全区域配置安全级别,不能和已存在的级别相同。

在这里插入图片描述

3、配置安全区域后,最容易忘记端口加入区域,导致防火墙转发报文无法判断报文的路线,导致业务不通。dis zone查看区域接口情况。

在这里插入图片描述

4、业务不通还可以通过dis fir stat sys dis来查看丢包统计信息。

无效的区域报文报错,无法确定域间关系。。接口没有加入安全区域。
在这里插入图片描述
无法找到ARP表项丢包,可能是防火墙无法从上下行设备获得ARP表项。
在这里插入图片描述<font 无法找到路由而丢包,可能是防火墙配置的路由出现问题。

在这里插入图片描述

无法找到会话而丢包。可能是防火墙只收到了后续报文,没有收到首包。
在这里插入图片描述

如出现Session Create fail packets discarded: XX数字 ,创建会话失败而丢包。可能是会话数量已经达到了限制,无法创建新的会话。应该查询会话列表。是否存在大量无用的会话。可用缩短老化时间来加速老化。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

opencv-图像梯度

目标 • 图像梯度&#xff0c;图像边界等 • 使用到的函数有&#xff1a;cv2.Sobel()&#xff0c;cv2.Schar()&#xff0c;cv2.Laplacian() 等 原理 梯度简单来说就是求导。 OpenCV 提供了三种不同的梯度滤波器&#xff0c;或者说高通滤波器&#xff1a;Sobel&#xff0c;Schar…

在Linux服务器中查找mysql的配置文件并修改其内容并保存,清空mysql8.0以上默认开启SSL的配置,防止odbc无法连接的问题

------每个命令输完记得按【enter】回车键------- 1、查找mysql的配置文件命令-mysql的配置文件默认名是my.cnf&#xff1a; find / -name my.cnf 2、查看显示的配置文件内容&#xff1a; cat /etc/my.cnf 3、修改配置文件的内容&#xff1a; 使用vi 或vim 命令 vi /etc…

分享一些简单的英语问候语

昨天和一个朋友聊天&#xff0c;他问我最近有没有某个国家的客户&#xff1f;我说只有一两个&#xff0c;都已经好久没有联系了&#xff0c;上一次问候还是在九月份。他说从十月底开始就收到很多来自当地的询盘&#xff0c;你不妨问下客户最近是否有新的需求&#xff1f; 于是…

探索无限自然之美——Terragen Professional 4渲染软件

Terragen Professional 4是一款强大的自然环境渲染软件&#xff0c;为设计师、艺术家和电影制作人们带来了无限的创作可能性。无论是为游戏、电影、动画还是虚拟现实体验创建逼真的自然场景&#xff0c;Terragen Professional 4都能为您提供令人难以置信的结果。 Terragen Pro…

【C++ 设计模式】面向对象设计原则 Template Method 模式 Strategy 策略模式

一、面向对象设计原则 重新认识面向对象 理解隔离变化 • 从宏观层面来看&#xff0c;面向对象的构建方式更能适应软件的变化&#xff0c; 能将变化所带来的影响减为最小 各司其职 • 从微观层面来看&#xff0c;面向对象的方式更强调各个类的“责任” • 由于需求变化导…

【Web】NodeJs相关例题wp

目录 ①[GKCTF 2020]ez三剑客-easynode ②[MoeCTF 2021]fake game ③[安洵杯 2020]Validator ④ [HZNUCTF 2023 final]eznode ⑤[CNSS] &#x1f3ed; EzPollution_pre ⑥[CNSS]✴️ EzPollution ①[GKCTF 2020]ez三剑客-easynode const express require(express); co…

4.3、Linux进程(2)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 通过系统调用创建进程--fork函数 结果是什么呢&#xff1f; 为什么会出来三个打印呢? 就是因为父进程调用了fork函数创建出了子进程的task_struct,但是一个进程不止task_struct&#xff0c;还有代码和数据&#xff0c;他们…

【2021集创赛】Diligent杯一等奖:基于Cortex-M3软核的智能识别称量平台

本作品参与极术社区组织的有奖征集|秀出你的集创赛作品风采,免费电子产品等你拿~活动。 杯赛题目&#xff1a;Diligent杯&#xff1a;基于FPGA开源软核的硬件加速智能平台 参赛组别&#xff1a;A组 设计任务&#xff1a; 利用业界主流软核处理器(仅限于Cortex-M系列及 RISC-V系…

Unity 头顶图文字性能优化

如图&#xff1a;常规的排版&#xff0c;会有很多Batches。这是优化后的Batches只有3。 常用解决方案&#xff1a; 1、创建两个Canvas&#xff0c;一个放所有文本Text&#xff0c;一个放所有Image。但这里有会有两个问题&#xff1a;一旦文字夹在两个Image中间&#xff0c;还有…

循环神经网络(RNN)实现股票预测

文章目录 一、前言二、前期工作1. 设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;2. 导入数据 四、数据预处理1.归一化2.设置测试集训练集 五、构建模型六、激活模型七、训练模型八、结果可视化1.绘制loss图2.预测3.评估 一、前言 我的环境&#xff1a; 语言环…

为什么录屏没声音?实用技巧大放送!

录屏已成为我们在数字时代记录和分享内容的重要方式之一。但有时&#xff0c;您可能会遇到录制视频却没有声音的问题。这个问题可能出现在不同的录屏软件中&#xff0c;导致许多人感到疑惑。在本文中&#xff0c;我们将探讨为什么录屏没声音&#xff0c;并提供两种解决方案&…

防雷接地+防雷工程施工综合方案

一、地凯科技防雷工程接地概述 防雷接地工程是指在建筑物或其他设施上安装防雷装置&#xff0c;以防止雷电对人员、设备和建筑物造成危害的工程。防雷装置主要包括避雷针&#xff08;网&#xff09;、引下线、接地体&#xff08;网&#xff09;等部分&#xff0c;其中接地体&a…

代码随想录刷题】Day17 二叉树04

文章目录 1.【110】平衡二叉树&#xff08;优先掌握递归&#xff09;1.1 题目描述1.2 解题思路1.3 java代码实现 2.【257】二叉树的所有路径&#xff08;优先掌握递归&#xff09;2.1 题目描述2.2 解题思路2.3 java代码实现 3.【404】左叶子之和&#xff08;优先掌握递归&#…

CSS特效015:7个小球转圈圈加载效果

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧&#xff0c;主要包含CSS布局&#xff0c;CSS特效&#xff0c;CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点&#xff0c;CSS特效主要是一些动画示例&#xff0c;CSS花边是描述了一些CSS…

渲染器——快速Diff算法

讨论第三种用于比较新旧两组子节点的方式&#xff1a;快速Diff 算法。正如其名&#xff0c;该算法的实测速度非常快。该算法最早应用于 ivi 和 inferno 这两个框架&#xff0c;Vue.js 3 借鉴并扩展了它。 下图比较了 ivi、inferno 以及 Vue.js 2 的性能&#xff1a; 上图来自…

Docker Swarm总结

1、swarm 理论基础 1.1 简介 Docker Swarm 是由 Docker 公司推出的 Docker 的原生集群管理系统&#xff0c;它将一个 Docker 主机池变成了一个单独的虚拟主机&#xff0c;用户只需通过简单的 API 即可实现与 Docker 集群的通 信。Docker Swarm 使用 GO 语言开发。从 Docker 1.…

SpringBoot : ch04 整合数据源

前言 Spring Boot 是当今最流行的 Java 开发框架之一&#xff0c;它以简洁、高效的特点帮助开发者快速构建稳健的应用程序。在实际项目中&#xff0c;涉及到数据库操作的需求时&#xff0c;我们需要对数据源进行整合。本文将重点介绍如何在 Spring Boot 中整合数据源&#xff…

这是一棵适合搜索二叉树

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;强烈推荐优质专栏: &#x1f354;&#x1f35f;&#x1f32f;C的世界(持续更新中) &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;…

Tesco EDI需求分析

Tesco&#xff0c;成立于1919年&#xff0c;是一家全球领先的综合性零售企业&#xff0c;总部位于英国。公司致力于提供高质量、多样化的商品和服务&#xff0c;以满足客户的需求。Tesco的使命是通过创新和卓越的客户服务&#xff0c;为客户创造更美好的生活。多年来&#xff0…

【带你读懂数据手册】CN3702 一款锂电池充电芯片

大家在学习智能车或者飞行器的时候&#xff0c;是不是外接一个电池&#xff1f;最近刚好学习了一款充电芯片&#xff0c;来和大家分享一下&#xff0c;也算是我的一点点笔记。 一款7.4V锂电池&#xff0c;基本上也满足了单片机的外设&#xff0c;如果需要12V或者24V的电压&…