当前位置:首页 > 云原生安全 > 正文内容

记录一下弹性计算云服务的一些词汇概念

UzJu2年前 (2022-04-17)云原生安全1139

记录一下弹性计算云服务的一些词汇概念

1、VPC(Virtaul Private Cloud)

首先说一下自己的理解,VPC相当于一个局域网,相较于传统的网络,局域网下面有路由,子网等,在VPC中一样存在这些,所以我觉得这些交换机,路由,ACL就与传统网络类似

首先我们来看一下在亚马逊Aws上对VPC的解释

b3cf933a12609c2bf082244c900c094c.png

VPC的组成

e92a229eb7c4320b69ca2b5ebe2b02d5.png

我们再来看一下阿里云对于VPC的解释

9802bb12a33e393fe048b9659e296eea.png

2、Switch

首先看看常见的交换机都是用来做什么

d1b42370557660c8b3bcdf2b8b382714.png

在阿里云中交换机叫vSwitch,可能是virtaul的意思

eafb592bc80daf3fc2e251a2b735b9d0.png

可以通过创建交换机为专有网络划分一个或多个子网。同一专有网络内的不同交换机之间内网互通。云资源必须部署在交换机内,您可以将应用部署在不同可用区的交换机,提高应用的可用性。交换机不支持组播和广播。

3、NAT

我们常见在渗透中说的NAT,内网穿透 NAT网关可以提供公网地址转换功能,使您VPC内的ECS实例能够访问互联网和为互联网提供服务

01bb9e7256751c507f0cade46f09c343.png

在NAT中还有两个名次,一个是SNAT,还有一个是DNAT

3.1、SNAT

首先看一下阿里云官网的SNAT的架构图

b4f6a7dffaadd52e3941edfad52c8f61.png

您可以通过公网NAT网关的SNAT功能,配置SNAT条目,使得VPC内无公网IP的ECS实例可以通过公网NAT网关绑定的EIP访问互联网

3.2、DNAT

我们再来了解一下DNAT 官方解释:公网NAT网关支持DNAT功能,将公网NAT网关上的公网IP通过端口映射或IP映射两种方式映射给ECS实例使用,使ECS实例能够对外提供公网访问服务 在下面VPC创建中会演示关于DNAT的作用

4、ACL

*访问控制*网络ACL是专有网络VPC中的网络访问控制功能。您可以在专有网络VPC中创建网络ACL并添加入方向和出方向规则。创建网络ACL后,您可以将网络ACL与交换机绑定,实现对交换机中ECS实例流量的访问控制。

5、安全组

比较常见的一个功能,我们在配置ECS的时候,可以配置入站出站的规则

48925b3bced793294663a1e40a8e7275.png

出站方向默认都是全放的(很少会改出站)

b19dc8460aba3d5327ee762f48cfb436.png

入站方向,换个比较好理解的

1、我们部署好Web网站之后需要放通80,开启了SSL,需要放通443,不然访问不了我们的网站

2、NC开启监听之后,还要在安全组中放通该端口即可

0a9b4fb23739d6f28f93a9780eadc527.png

6、EIP

EIP全称(Elastic IP Address),中文:弹性公网IP

弹性公网IP(Elastic IP Address,简称EIP)是可以独立购买和持有的公网IP地址资源。目前,EIP支持绑定到专有网络类型的ECS实例、专有网络类型的私网SLB实例、专有网络类型的辅助弹性网卡、NAT网关和高可用虚拟IP上。

7、询问AWS客服

虽然在写下这一篇文章之前,我就已经把VPC叫成局域网了,但是既然需要写给别人看,我觉得就还是确认一下,不要误人子弟 首先我询问了客服:能否将VPC理解为局域网

8af8d3efcd1c902a5c5a19dbe707464d.png

07e55f31f1cf2c5edbfdc09645844295.png

不得不说,AWS的客服真的很专业

8、负载均衡(SLB)

负载均衡SLB(Server Load Balancer)是一种对流量进行按需分发的服务,通过将流量分发到不同的后端服务器来扩展应用系统的吞吐能力,并且可以消除系统中的单点故障,提升应用系统的可用性

072f94146bc4cde9348c23dea75fca4c.png

  • ALB:专门面向七层,提供超强的业务处理性能,例如HTTPS卸载能力。单实例每秒查询数QPS(Query Per Second)可达100万次。同时ALB提供基于内容的高级路由特性,例如基于HTTP报头、Cookie和查询字符串进行转发、重定向和重写等,是阿里云官方云原生Ingress网关。
  • CLB:支持TCP、UDP、HTTP和HTTPS协议,具备强大的四层处理能力,以及基础的七层处理能力

8.1、ALB

应用型负载均衡ALB(Application Load Balancer)是阿里云推出的专门面向HTTP、HTTPS和QUIC等应用层负载场景的负载均衡服务,具备超强弹性及大规模应用层流量处理能力。ALB具备处理复杂业务路由的能力,与云原生相关服务深度集成,是阿里云官方提供的云原生Ingress网关。

0e9f8abef92a5b3c19acf46a6cbce98e.png

8.2、CLB

传统型负载均衡CLB(Classic Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。CLB扩展了应用的服务能力,增强了应用的可用性。

d3bfebfe1bb5db142e688cc51b0ba675.png

这里的CLB就是传统的SLB负载均衡

8.3、ALB与CLB的区别

首先作用的层不一样 ALB作用于七层,·针对的协议都是HTTP,HTTPS CLB作用于四层,针对的协议主要是TCP,UDP这四层 算法上的区别 最直观的就是,HTTP/HTTPS中会有一些请求头,例如Cookie,Session这些请求标头来粘性会话,但是在TCP协议就不会有这些HTTP标头

8.4、常见负载均衡算法

8.4.1、Random 随机

这是最简单的一种,使用随机数来决定转发到哪台机器上。

优点:简单使用,不需要额外的配置和算法。 缺点:随机数的特点是在数据量大到一定量时才能保证均衡,所以如果请求量有限的话,可能会达不到均衡负载的要求。

8.4.2、Round Robin轮询

这个也很简单,请求到达后,依次转发,不偏不向。每个服务器的请求数量很平均。

缺点:当集群中服务器硬件配置不同、性能差别大时,无法区别对待。引出下面的算法。

8.4.3、随机轮询

所谓随机轮询,就是将随机法和轮询法结合起来,在轮询节点时,随机选择一个节点作为开始位置index,此后每次选择下一个节点来处理请求,即(index+1)%size。 这种方式只是在选择第一个节点用了随机方法,其他与轮询法无异,缺点跟轮询一样。

8.4.4、Weighted Round Robin 加权轮询

这种算法的出现就是为了解决简单轮询策略中的不足。在实际项目中,经常会遇到这样的情况。

比如有5台机器,两台新买入的性能等各方面都特别好,剩下三台老古董。这时候我们设置一个权重,让新机器接收更多的请求。物尽其用、能者多劳嘛!

这种情况下,“均衡“就比较相对了,也没必要做到百分百的平均。

Nginx的负载均衡默认算法是加权轮询算法。

8.4.5、Nginx负载均衡算法

有三个节点{a, b, c},他们的权重分别是{a=5, b=1, c=1}。发送7次请求,a会被分配5次,b会被分配1次,c会被分配1次。 一般的算法可能是

  • 1、轮训所有节点,找到一个最大权重节点;
  • 2、选中的节点权重-1;
  • 3、直到减到0,恢复该节点原始权重,继续轮询; 这样的算法看起来简单,最终效果是:{a, a, a, a, a, b, c},即前5次可能选中的都是a,这可能造成权重大的服务器造成过大压力的同时,小权重服务器还很闲。 Nginx的加权轮询算法将保持选择的平滑性,希望达到的效果可能是{a, b, a, a, c, a, a},即尽可能均匀的分摊节点,节点分配不再是连续的。

Nginx加权轮询算法1、概念解释,每个节点有三个权重变量,分别是:

  • (1) weight: 约定权重,即在配置文件或初始化时约定好的每个节点的权重。
  • (2) effectiveWeight: 有效权重,初始化为weight。 在通讯过程中发现节点异常,则-1; 之后再次选取本节点,调用成功一次则+1,直达恢复到weight; 此变量的作用主要是节点异常,降低其权重。
  • (3) currentWeight: 节点当前权重,初始化为0。

d7ea62a17a4777c9f4bd70ed539cac4b.png

观察到七次调用选中的节点顺序为{a, b, a, c, a, b, a},a节点选中4次,b节点选中2次,c节点选中1次,算法保持了currentWeight值从初始值{c=0,b=0,a=0}到7次调用后又回到{c=0,b=0,a=0}。

8.4.6、Weighted Random 加权随机

加权随机法跟加权轮询法类似,根据后台服务器不同的配置和负载情况,配置不同的权重,不同的是,它是按照权重来随机选取服务器的,而非顺序。

8.4.7、Least Connections 最少连接

这是最符合负载均衡算法的一个。需要记录每个应用服务器正在处理的连接数,然后将新来的请求转发到最少的那台上。

8.4.8、Latebcy-Aware

与方法6类似,该方法也是为了让性能强的机器处理更多的请求,只不过方法6使用的指标是连接数,而该方法用的请求服务器的往返延迟(RTT),动态地选择延迟最低的节点处理当前请求。该方法的计算延迟的具体实现可以用EWMA算法来实现,它使用滑动窗口来计算移动平均耗时。

Twitter的负载均衡算法基于这种思想,不过实现起来更加简单,即P2C算法。首先随机选取两个节点,在这两个节点中选择延迟低,或者连接数小的节点处理请求,这样兼顾了随机性,又兼顾了机器的性能,实现很简单。

8.4.9、Source Hashing 源地址散列

根据请求的来源ip进行hash计算,然后对应到一个服务器上。之后所有来自这个ip的请求都由同一台服务器处理。

二、VPC搭建与实践

登录阿里云控制台直接搜索VPC

7b1e3fa2c165792c69d049d4818b2379.png

创建一个VPC

016f7b03d933edbdb9aa7cda102b7670.png

随后创建一个Switch

5d61069519deb657da6d85a09d86a639.png

这里需要注意,在创建的时候要有ECS,不然无法创建NAT网关,此时我们去选择购买ECS 这里需要注意一下可用区,因为如果交换机跟ECS不在同一个可用区是无法分配的

f874aee56d40824fe9c00c40ab6424ee.png

此时我们需要去创建一个新的交换机,然后放在可用区K

119c720c53cdd340fcd2a279ca45678c.png

0e650062b9f71346cad294da526be90c.png

随后这里就可以正常选择了

95dc31d8dd79535f1a3701976177e69c.png

最后需要确认一下自己的配置是否存在错误 购买成功后,我们可以看到ECS当前是没有公网地址的

4b35f9ab173df13ad8d2c12b5dac899d.png

并且我们也无法用SSH连接该服务器,只能使用阿里云控制台登录

136f4111fc5cb4e24fcefccccb564c4d.png

登录之后我们也可以发现其实当前ECS是没有网络的 此时我们就需要去创建NAT网关

bc0e228fe49e69faa9691775433786f3.png

441335fd20544ef62ec0bd3c2dca2380.png

4a1f11ad123b7e90788183f3332851db.png

随后等待资源创建即可

3ff3ea13aef554b6c90054326b0d0824.png

a7a2bdb2cc505bd185e1b0dac57760c4.png

然后我们可以在SNAT条目中看到一条记录

d96331d6fe695e406ef97f4c658359b3.png

此时我们回到ECS,发现可以通外网了

de27cf906785363999beb17591ffb879.png

我们在一台服务器上启动NC监听,然后wget看一下服务器的出口地址,会发现就是我们配置的地址

不过此时就有一个疑问,那么我如果再给这台机器分配一个弹性公网IP,那出口地址应该是NAT的网关地址还是弹性公网IP呢

e82000e6f17c651a76d0126fd4e55535.png

我们给ECS绑定一个弹性公网IP

87d54cdc1fc6b6e04f84a5fee1e70412.png

34e0657b669f84e29df4ed4449815ade.png

80302e0ae4f15fd2e51c631c74023d4f.png

随后我们设置一个密码就可以登录服务器了

d81aad4b36654fa72d1dc9940efb706a.png

523e4cdd073d9761a4de172fc67b938c.png

然后我们可以看到当前的地址为绑定的弹性IP地址

12dd0d4a2bb854ab78d9a120039954e6.png

我们来看一下DNAT的作用

首先我们首先创建一个DNAT

d3c0c1163bc5ee983f5fb67338be7532.png

并且映射ECS的80对应NAT的80端口

9348fa26e8c0fb6ee186216f5c26a20e.png

然后我们登录阿里云的账户控制台直接连接服务器

d40b3f3f6b3397cd7375a929c2d471e8.png

开启一个python的简易HTTP服务,然后使用另外的服务器wget 阿里云的ECS

3bb29dcf7688fb59d65b6737b37abe16.png

我们会发现根本访问不到80,因为我们没有开安全组

525c386ce5c0731fb55d78fafbc17f4d.png

然后我们再telnet就会发现通了

0e5ca944d0aaa7f4bb334be248877ab1.png

然后ECS也受到了请求

8d501f1cc627eddcb968cd7fa1e450fe.png

三、总结

  • 1、SNAT
  • - 用来给服务器配置访问外网的权限
  • 2、DNAT
  • - 用来将服务器的某个端口映射给公网
  • 可以将VPC理解为一个相较于传统的局域网,但是传统的为物理的局域网设备,并且在本地,但是VPC在云上

扫描二维码推送至手机访问。

版权声明:本文由UzJu的安全屋发布,如需转载请注明出处。

SQL ERROR: ERROR 1105 (HY000): XPATH syntax error: '~root@localhost'

本文链接:https://uzzju.com/post/58.java

分享给朋友:

相关文章

UzJu云存储桶利用工具使用教程

UzJu云存储桶利用工具使用教程

0x00 前言关于原理上的,可以参考火线云安全社区上的文章 阿里云 https://zone.huoxian.cn/d/918-oss KEVIL 腾讯云 https://zone.huoxian.cn/d/949-cos ric...

Terraform快速入门到入土

Terraform快速入门到入土

Terraform快速入门到入土本文按照官方教程来进行学习,为了方便快速上手,不去看官方的机翻,所以对于文中的所有定义,都会进行解释,通俗易懂Terraform安装sudo apt-get update && sudo ap...

火线安全沙龙云安全专场-浅析云存储的攻击利用方式

火线安全沙龙云安全专场-浅析云存储的攻击利用方式

浅析云存储的攻击利用方式高鹏,火线云安全实验室成员,今天分享的主题是《浅析云存储的攻击利用方式》 本次的议题,关于云存储的一个攻击利用方式,在SRC漏洞挖掘,或在火线安全平台的众测项目中,我们也会收到很多关于对象存储的一个劫持和权...

六大云元数据地址速查

AWShttp://169.254.169.254/latest/meta-data/ Google Cloudhttp://metadata/computeMetadata/v1/ Azurehttp://169.254.169.25...

ServerLess Aws Lambda攻击与横向方法研究

ServerLess Aws Lambda攻击与横向方法研究

前言1、这篇文章讲了什么?文本围绕三个问题 1、lambda会遇到什么攻击场景 2、什么情况下,在lambda中读取到的env环境变量密钥可以让我们接管服务器甚至整个账号 3、什么情况下,可以通过lambda权限去横向到其他的EC2服...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。