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

网络安全知识和华为防火墙

网络安全

网络空间安全 ---Cyberspace

2003年美国提出的网络空间概念  ---一个由信息基础设施组成的互相依赖的网络。

我国官方文件定义:网络空间为继海、陆、空、天以外的第五大人类互动领域。

通信保密阶段 --- 计算机安全阶段 --- 信息系统安全 --- 网络空间安全

APT攻击 --- 高级持续性威胁

链路层-- MAC洪泛攻击

填满整个MAC表,此时交换机只能进行数据广播,黑客拿到数据,并且交换机负载过大、网络缓慢和丢包甚至瘫痪。

防御:

 1.端口上最大可以通过的MAC地址数量

 2.端口上学习或通过哪些MAC地址

 

链路层--ARP欺骗

攻击者抢先合法主机B应答主机A发起的ARP请求

 

网络层--ICMP攻击

ICMP重定向攻击是攻击机主动向受害人主机发送ICMP重定向数据包,使受害人主机数据包发送到不正确的网关

 

传输层--TCP SYN Flood攻击

SYN报文是TCP连接的第一个报文,攻击者通过大量发送SYN报文,造成大量未完全建立的TCP连接,占用被攻击者的资源。

防御:1.代理防火墙(秘书,先和防火墙建立连接)

每目标IP代理阈值,每目标IP丢包阈值

(少流量,直接到服务器)(多流量,防火墙直接丢了)

2.首包丢包

3.SYN cookie

分布式拒绝服务攻击(DDoS

用木马控制肉鸡发流量

防御:1.异常流量清洗

 2.CDN分流

 3.分布式集群

应用层--DNS欺骗攻击

黑客劫持了DNS服务器,你想去某个网站,黑客会让DNS给你发钓鱼网站的IP,然后窃取信息

拖库、洗库、撞库

  • 拖库(偷数据):是指黑客入侵有价值的网络站点,把注册用户的资料数据库全部盗走的行为。

  • 洗库(卖数据):在取得大量的用户数据之后,黑客会通过一系列的技术手段和黑色产业链将有价值的用户数据变现,这通常也被称作洗库。

  • 撞库(用一个网站密码,尝试登录其他网站):最后黑客将得到的数据在其它网站上进行尝试登陆,叫做撞库,因为很多用户喜欢使用统一的用户名密码。

恶意程序 --- 一般会具备多个特性

1.非法性

2.隐蔽性

3.潜伏性

4.可触发性

5.表现性

6.破坏性

7.传染性 -- 蠕虫病毒的特点

8.针对性

9.变异性

10.不可预见性

普通病毒 --- 以破坏为目的的病毒

木马病毒 --- 以控制为目的的病毒

蠕虫病毒 --- 具有传播性的病毒

防火墙:

主要职责:控制和防护 --- 安全策略(本质ACL)--- 防火墙可以根据安全策略抓取流量之后做出对应动作。

防火墙分类:

百兆级和千兆级 --- 吞吐量 --- 防火墙同一时间处理的数据量

防火墙发展历史

缺点:

1.很多安全风险集中在应用层,所以,仅关注三四层数据无法做到完全隔离风险

2.逐包进行包过滤检测,将导致防火墙的转发效率过低,成为瓶颈

在ACL列表中,华为体系下,末尾没有隐含规则,匹配不到ACL,则认为列表不存在,之前可以通过,则还可以通过;但是防火墙安全策略里面,末尾隐含一个拒绝所有没在列表的流量

缺点:

1.因为要防火墙先进行识别,再转发给服务器,效率降低

2.可伸缩性差:每一种应用程序要代理的话,都要开发对应的代理功能,没开发就无法代理

‘’会话表技术‘’--- 首包检测 --- 第一个数据包检测然后用五元组出一个值,后面的如果五元组一样就放过

IDS ---一种侧重于风险管理的安全机制 --- 滞后性

把前面的集成一下,就是UTM

因为太多的安全设备会导致维护成本提高,所有设备都要对流量检测,效率低

UTM里面,各模块是串联工作,效率没提升,但是维护成本低了

改进点核心:相较于之前UTM中各模块的串联部署,变为了并联部署,仅要一次检测,所有的核心都可以对应的处理,大大提高效率

防火墙的其他功能:

防火墙的控制:

带内管理 --- 通过网络对设备进行控制 --- telnet,ssh,web --- 登录设备和被登录设备网络要连通

带外管理 --- console线,mini usb线

华为防火墙的MGMT接口(G0/0/0)出厂时默认配置有IP地址:192.168.0.1/24 ,默认开启了DHCP、web登录的功能,方便进行web管理

防火墙的管理员:

新建管理员:

本地认证:用户信息存在防火墙上,登录时利用用户名和密码登录

服务器认证:和第三方的认证服务器对接,登录时防火墙用第三方服务器进行认证

(一般用于企业本身就用服务器存用户信息)

服务器/本地认证:优先使用服务器认证,如果服务器认证失败,也不进行本地认证,只在服务器连不上的时候才用本地认证

信任主机:添加一个网段或IP地址,允许这个网段登录这个管理员

防火墙的组网:

物理接口:

二层口:不能配IP

普通二层口

接口对:“透明网线”--- 可以将两个接口绑定成接口对,流量从一个接口进,一定从另一个出去,不看MAC表。(一个接口也可以做,这里进,这里出)

旁路检测接口:用于防火墙的旁路检测,接收镜像口的流量

三层口:可以配IP

虚拟接口:

换回接口

子接口

链路聚合

。。。。

Bypass --- 四个千兆口(就是两个bypass口):设备故障,两个bypass接口直接连通,不影响整条链路

虚拟系统---VRF技术,逻辑上将一台设备分为多台设备,互不影响,通过接口区分虚拟接口的范围

管理口和其他接口默认不在一个虚拟系统里面

接口对默认为trunk口

Virtual-if0:不同虚拟空间之间通信使用的虚拟接口,只需要配IP地址

trust:一般企业内网是trust区域

Untrust:一般公网区域在untrust区域

我们将一个接口规划到一个区域,代表接口连接的所有网络都被归到此区域

local:指设备本身(凡是由设备构造并主动发出的报文都可以认为是local区域发出的,凡是要设备进行响应的报文由local区域接收,接口本身在local区域

Dmz:非军事化管理区域 --- 这个区域主要是为内网服务器所设定的区域,服务器本身在内网,但是要对外服务,他们相当于内网和外网之间的区域,所以Dmz区域代表这种管理松散的区域

优先级 --- 1-100 越大越优 --- 流量从优先级高的区域到优先级低的区域  ---出方向

                                                   --- 量从优先级低的区域到优先级高的区域  ---入方向

路由模式:

1.接口,区域配置,安全策略

2.内网配置回包路由

3.是否要配置服务器映射

4.配置nat

5.针对内外网的安全策略

透明模式

旁路模式

传统的包过滤防火墙 --- 其本质为ACL列表,根据数据包中的特征(五元组)进行过滤,之后对比规制,执行动作

五元组 --- 源目IP,源目端口,协议

安全策略 --- 相较于ACL的改进之处在于,首先,可以在更细的颗粒度下匹配流量,另一方面是可以完成内容安全的检测

安全策略 --- 1.访问控制(允许和拒绝)

  2.内容检测 --- 如果允许通过,就进行内容检测

以上部分均为流量匹配条件每一项之间的关系为“与”关系,如果不进行选择,则默认为any;多选的里面,每一项之间的关系为“或”

   基于流的流量检测 --- 即设备仅对流量的第一个数据包进行过滤,并将结果作为这一条数据流的特征记录(“会话表”)下来,之后,该数据流后面的报文都基于这个特征来转发,不再匹配安全策略。提高了转发效率。

当web服务器给pc回包时,来到防火墙上,防火墙会将报文中的信息和会话表的信息进行比对,如果信息相匹配,并且符合协议规范对后续报文的定义,则认为数据包属于pc,可以通过。

1.会话表(display firewall session table/display firewall session table verbose) --- 会话表本身也是基于五元组来区分流量,会话表在首包比对(只要来的包都可以是第一个包)时,会通过hash值来比对五元组。提高转发效率。(会话表有老化时间,一定时间没用就删除,没有了就再首包匹配安全策略,创建会话表,创建不了就丢弃

老化时间过长:1.系统资源浪费,同时无法建立新的会话表

老化时间过短:1.导致一些长时间首发一次的报文连接被中断,影响转发

不同协议的老化时间不同

2.状态检测技术(firewall session link-state tcp check

主要检测协议逻辑上(按报文的顺序)的后续报文,以及仅允许逻辑上的第一个报文(必须是那个协议的第一个数据包)通过后创建会话表

状态检测可以开关,只有会话表就提高转发效率,加个状态检测就会首包匹配创建会话表保证安全

FTP——文件传输协议,典型的C/S的协议,tcp(有认证,还有其他命令集控制文件

TFTP——简单(不用认证就能登录,只能上传和下载)文件传输协议,udp

FTP工作过程中存在两个进程,一个是控制进程,一个是数据传输进程,所以有两个端口号2021,还有

两种工作模式:

主动模式:建立控制连接的tcp后,客户端开放一个随机端口用PORT命令告诉服务器,

让服务器主动找客户端建立数据传输的tcp连接

被动模式:建立控制连接的tcp后,服务器开放一个随机端口用PASV命令告诉客户端,

让客户端主动找服务器建立数据传输的tcp连接

FTP这种使用多端口的协议叫做多通道协议(双通道协议)

ASPF ---  针对应用层的包过滤 --- 用来抓取多通道协议协商端口的关键数据包,将结果记录在server-map表里面,相当于于开辟了一条别的通道

防火墙的用户认证:

防火墙管理员登录认证 --- 检验身份的合法性,划分身份权限

                             用户认证 --- 上网行为管理的一部分(用户,行为,流量

用户认证的分类:

上网用户认证 --- 三层认证,所有跨网段的通信都是上网行为(将行为和人进行绑定

入网用户认证 --- 二层认证,设备接入网络,包括局域网内的通信,插入交换机或者接入wifi后上网认证

接入用户认证 --- 远程接入 --- VPN --- 校验身份的合法性

认证方式:

  本地认证  --- 信息在防火墙上,认证过程在防火墙上执行

服务器认证 --- 信息在服务器上,防火墙只是传递信息,服务器返回结果,防火墙执行对应动作

   单点登录 ---  应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录

认证域  --- 可以决定一个域里面的认证的方式和组织结构

登录名 ---作为登录凭证使用,一个认证域下不能重复

显示名(昵称) ---显示名不能用来登录,只用来区分和标识不同的用户。

账号过期时间 --- 可以设定一个时间点到期,但是,如果到期前账号已登录,到期后,防火墙不会强制下线该用户。

允许多人同时使用该账号登录:

私有用户 --- 仅允许一个人使用,第二个人使用时,将顶替到原先的登录

公有用户 ---允许多个人同时使用一个账户

IP/MAC绑定---用户和设备进行绑定(IP地址/MAC地址)

单向绑定(只是这个用户绑定了这个IP/MAC,其他人无影响

---该用户只能在这个IP或者这个MAC或者这个  IP/MAC下登录,但是,其他用户可以在该设备下登录

双向绑定(这个用户绑定了这个IP/MAC,这个IP/MAC也绑定了用户,其他人用这个IP登录不了)

--- 该用户只能在绑定设备下登录,并且该绑定设备也仅允许该用户登录。

安全组和用户组的区别 --- 都可以被策略调用,但是,用户组在调用策略后,所有用户组成员以及子用户组都会生效,而安全组仅当前组成员生效,子安全组不生效。

认证策略:

Portal  --- 这是一种常见的认证方式,网页认证就是portal认证,需要流量触发对应的服务时,弹出窗口,

输入用户名和密码进行认证(校园网登录就是)

免认证 --- 需要在IP/MAC双向绑定的情况下使用,对应用户在对应设备上登录时,就可以选择免认证,不做认证。

匿名认证 --- 登录时它自己会把IP或者主机名和行为进行绑定,不会有登录界面

防火墙的NAT

静态NAT --- 一对3一

动态NAT ---多对多

   NAPT ---一对多的NAPT --- easy ip(也会加入端口号,但是没有地址池,只有一个出接口的公网IP作为转化后的IP)

             ---多对多的NAPT(在NAT里面加入端口号,这样一个IP就可以有多个端口可以用)

服务器映射 --- 把一个只有私网IP的服务器映射到出接口的一个公网IP上,公网用户访问服务器时,

直接找那个出接口的公网IP就行

源NAT    -----基于源IP地址进行转换,我们之前接触过的静态NAT,动态NATNAPT都是

目标NAT ---- 基于目标IP地址进行转换,服务器映射就属于目标NAT

双向NAT ----同时转换源IP和目标IP地址

NAT是在安全策略之后才会有NAT转换

目标NAT是在安全策略之前才会有NAT转换

配置黑洞路由 ---黑洞路由即空接口路由,在NAT地址池中的地址,建议配置到达这个地址指向空接口的路由,不然,在特定环境下会出现环路。(主要针对地址池中的地址和出接口地址不再同一个网段中的场景。)

高级选项

NAT类型 --- 五元组 --- 针对五元组识别出的数据流进行端口转换

三元组 --- 针对源IP,源端口,协议三个参数识别出的数据流进行端口转换

动态NAT创建完后,触发访问流量后会同时生成两条server-map的记录,其中一条是反向记录。相当于是一条静态NAT记录,外网的任意地址,在安全策略放通的情况 下,是可以访问到内网的设备。 基于端口的NAT转换,是不会生成server-map表的。

三元组

P2P --- peer to peer

因为P2P在端口转换的情况下,识别五元组,将导致P2P客户端之间无法直接访问,不符合五元组的筛选条件,所以,这种场景下可以使用三元组NAT(只看源IP,源端口,协议),放宽筛选条件,保证P2P客户端之间可以正常通信

创建NAT策略

  (源NAT

服务器映射(目标NAT

安全区域 --- 是需要访问服务器的设备所在的区域。

双向NAT

多出口NAT

源NAT

第一种:根据出接口,创建多个不同的安全区域,再根据安全区域来做NAT

第二种:出去还是一个区域,选择出接口来进行转换

目标NAT

第一种:也可以分两个不同的区域做服务器映射

第二种:可以只设置一个区域,但是要注意,需要写两条策略分别正对两个接口的地址池,并且,不能同时勾选允许服务器上网,否则会造成地址冲突。

防火墙的智能选路

就近选路——希望在访问不同的运营商的服务器时,通过对应运营商的链路,这样可以提高通信效率,避免绕路

策略路由——PBR——传统的路由仅基于数据包的目标IP地址查找路由表,仅关心目标,所以特殊情况灵活性低。

策略路由本身也是一种策略,策略先匹配流量,再执行动作,策略路由可以从多维度匹配流量,之后,执行动作就是定义其转发的出接口下一跳,策略路由末尾隐含一条不匹配策略的规则,没有匹配上的由传统路由表转发

DSCP优先级 ---相当于在数据包中设定其转发的优先级(利用的是IP头部中tos字段)之后下游设备会根据优先级来差异化保证流量的通过。

监控 --- 当策略是单出口时,如果这里写的下一跳或出接口不可达,报文将直接被FW丢弃。为了提高可靠性,我们可以配置针对下一跳的监控,如果下一跳不可达,继续查找本地路由表转发,而不是直接丢弃。

智能选路——全局路由

基于链路带宽的负载分担

基于链路带宽的负载分担会按照多条链路的带宽比例来分配流量。并且,如果配置的过载保护阈值,则那一条链路达到过载保护阈值之后,除了已经创建会话表的流量依然可以从该接口通过外,该接口将不再参与智能选路,需要新建会话表的流量将其余链路中按照比例转发。

会话保持 --- 开启该功能后,流量首次通过智能选路的接口后,会创建会话表,后续命中会话表的流量都将通过同一个接口来进行转发,选择源IP和目的IP的效果时,所有相同源IP或者目标IP的流量将通过同一个接口转发。---应对于不希望链路频繁切换的场景。

基于链路质量进行负载分担

丢包率 --- FW会发送若干个探测报文(默认5个)将统计丢包的个数。丢包率是最重要的评判依据。

时延 --- 应答报文接受时间减去探测报文发送时间。取平均时延作为结果评判

延时抖动 --- 两次探测报文时延差值的绝对值。

首次探测后会将结果记录在链路质量探测表中,之后,将按照表中的接口来进行选路。 表中的老化时间结束后,将重新探测

基于链路权重进行负载分担——权重是由网络管理员针对每一条链路手工分配的,分配之后,将按照权重比例分配流量。

基于链路优先级的主备备份

优先级也是由网络管理员针对每一条链路手工分配的。

执行逻辑:

1,接口没有配置过载保护:

优先使用优先级最高的链路转发流量,其他链路不工作。直到优先级最高的链路故障,则优先级次高的链路开始转发流量。其余链路依旧不工作

2,接口配置了过载保护:

优先使用优先级最高的链路转发流量,其他链路不工作;如果最高的链路达到或超过保护阈值,则优先级次高的链路开始工作,已经创建会话表的流量依然可以从该接口通过。

DNS透明代理

前提是开启就近选路

防火墙的可靠性

防火墙和路由器在进行可靠性备份时,路由器备份可能仅需要同步路由表中的信息就可以了,但是,防火墙是基于状态检测的,所以,还需要同步记录状态的会话表等。所以,防火墙需要使用到双机热备技术

热备 --- 两台设备同时运行,在一台故障的情况下,另一台就立即代替

VRRP技术

虚拟路由器冗余协议 ---“实的不行来虚的”

Initialize ---在VRRP中,如果一个接口出现故障之后,则这个接口将进入到该过渡状态

VRRP备份组之间是相互独立的,当一台设备上出现多个VRRP组时,他们之间的状态无法同步。

VGMP ----VRRP Group Management Protocol ————华为私有协议

这个协议就是将一台设备上的多个VRRP组看成一个组,之后统一进行管理,统一切换的协议。以此来保证VRRP组状态的一致性。

VGMP用来双击热备的数据能够传输,HRP用来传会话表和配置信息

接口故障切换场景

 

防火墙的双机热备中,我们不论是VRRP组还是VGMP组,主备的叫法发生了变化,主叫active备叫standby

1.假设主设备的下联口发生故障,则这个接口的VRRP状态由原来的active变为initialize状态。(这种情况下,按照VRRP自己的机制,主设备将无法发送周期保活报文,则备设备在超过超时时间后将切换为主的状态。但是,因为这里启用VGMP在,则VRRP切换状态将由VGMP接管VRRP的机制名存实亡。)

2,VGMP组发现VRRP组出现变化,将降低自身的优先级。(说明,在VGMP组中,也 存在优先级的概念。一开始,每台设备中都会存在两个VGMP组,一个叫做Active组, 另一个叫做Standby组。Active组初始的默认优先级为65001,Standby组初始的默认 优先级为65000(不同版本的防火墙,这个优先级的定义不同)。一开始,我们FW1将 两个VRRP组都拉入VGMP_ACTIVE组中,因为ACTIVE组的状态时active,所以,里面 两个vrrp组的状态也是active(VGMP组的状态决定了VRRP组的状态),FW2同理。当 一个VRRP组的状态变为initialize,则VGMP则的优先级-2。)之后,原主设备会发送一 个VGMP请求报文给对端,里面包含了自己当前变化后的优先级。

3,当原备设备接收到请求报文后,看到里面的优先级时64999,而低于自身的65000,则会将自己的VGMP_STANDBY组的状态由原来的standby切换为active。同时,发送 一个同意请求报文给原主设备。

4,原主设备接收到对方的应答报文之后,将会把自身VGMP_ACTIVE组的状态由原来的 ACTIVE切换为STANDBY。

5,在原备设备发送应答报文的同时,因为其VGMP组的状态切换,所以,其内部的 VRRP组状态也将由原来的standby转换为avtive。原主设备在接受到对方的应答报文之 后,因为将其VGMP组状态切换,所以,同时将其内部的VRRP组状态由原来的active状 态切换为standby状态(注意,故障接口依旧保持init的状态。)

6,原备设备会通过接口向上下联链路发送免费ARP报文,切换交换机的MAC地址表。 流量将被切换到原被设备上。

HRP --- Huawei Redundancy Protocol ---华为冗余协议这是一款华为的私有协议 --- 备份配置信息和状态信息。

HRP备份有一个前提,就是两台设备之间必须专门连一根用于备份的线路,这跟线路我们称为心跳线(广义上,任何两台设备之间的链路都可以叫做心跳线)心跳线的接口必须是一个三层接口,需要配置对应的IP地址。这条备份数据的链路不受路由策略限制(直连场景。非直连场景依然需要配置安全策略。)

HRP协议本身算是VGMP协议的一部分HRP的心跳线也会传递心跳报文,用于检测对端是否处于工作状态。这个周期时间默认1s,逻辑和vrrp一样,只有主设备会周期发送,备设备仅监听即可,如果在三个周期内,都没有收到HRP的心跳报文,则将认定原主设备故障,则将进行失效判断,认定自身为主。VGMP的报文也是通过这条心跳线发送的。

配置信息 --- 策略,对象,网络里面的一些配置都属于配置信息。(接口IP地址,路由之类的不同步,因为这些是需要在双机组建之前配置的)

状态信息 ---会话表,server-map,黑名单,白名单

各场景过程分析

1,主备形成场景

2,主备模式下,接口故障切换场景

3,主备场景,主设备故障切换 --- 主故障之后,将无法周期发送HRP心跳报文,则备设备监听超时,进行设备状态的切换。

4,主备场景,主设备接口故障恢复切换没有开启抢占 ---没有抢占则原主设备保持备份状态。

开启抢占:

5,负载分担

6,负载分担接口故障场景

相关文章:

  • 手机壳也能散热了?
  • 使用 create-react-app 创建 react 应用
  • 关机恶搞小程序
  • input框不能输入
  • 代码随想录算法训练营第35天 | 860.柠檬水找零 + 406.根据身高重建队列 + 452.用最少数量的箭引爆气球
  • [GN] 设计模式——面向对象设计原则概述
  • 【游戏服务器部署】幻兽帕鲁服务器一键部署保姆级教程,游戏私服还是自己搭建的香
  • 全球工控大佬
  • 基于 NXP S32K311 评估板的方案
  • 网站打不开怎么办?高防IP弹性防护更省心
  • redis主从复制薪火相传
  • Mysql 删除数据
  • Java枚举enum:让你的编程效率翻倍的神级工具!
  • 基于GPT3.5逆向 和 本地Bert-Vits2-2.3 的语音智能助手
  • 微信小程序canvs画布修改元素线条粗细、颜色、填充状态
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【译】理解JavaScript:new 关键字
  • 08.Android之View事件问题
  • Angular 2 DI - IoC DI - 1
  • Docker下部署自己的LNMP工作环境
  • flask接收请求并推入栈
  • JavaScript创建对象的四种方式
  • spring boot下thymeleaf全局静态变量配置
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • 前嗅ForeSpider中数据浏览界面介绍
  • 使用API自动生成工具优化前端工作流
  • 最简单的无缝轮播
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (定时器/计数器)中断系统(详解与使用)
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (图)IntelliTrace Tools 跟踪云端程序
  • (已解决)什么是vue导航守卫
  • (转)Linq学习笔记
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .Net Remoting(分离服务程序实现) - Part.3
  • .net(C#)中String.Format如何使用
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .net连接oracle数据库
  • .net下的富文本编辑器FCKeditor的配置方法
  • .NET运行机制
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • /proc/vmstat 详解
  • [20171101]rman to destination.txt
  • [30期] 我的学习方法
  • [AIGC codze] Kafka 的 rebalance 机制
  • [BZOJ] 2427: [HAOI2010]软件安装
  • [BZOJ3211]:花神游历各国(小清新线段树)
  • [bzoj4240] 有趣的家庭菜园