带你读《从基础到应用云上安全航行指南》——来上课!一文掌握守住ECS网络安全的最佳方法(2)

本文涉及的产品
无影云电脑个人版,1个月黄金款+200核时
无影云电脑企业版,4核8GB 120小时 1个月
资源编排,不限时长
简介: 带你读《从基础到应用云上安全航行指南》——来上课!一文掌握守住ECS网络安全的最佳方法(2)

带你读《从基础到应用云上安全航行指南》——来上课!一文掌握守住ECS网络安全的最佳方法(1):https://developer.aliyun.com/article/1441583


三、控制网络流量

首先,学习一下什么是网络ACL,设想一个典型的场景,交换机AECS部署着重要的服务,不希望被其他交换机下的ECS访问到,这就引入了阿里云专有网络的产品能力,网络ACL,只需要给交换机A绑定一个网络ACL,同时设置网络ACL的规则,阻断其他交换机的访问,即可满足自己的需求。

 

image.png

 

再来介绍一下网络ACL的概念,网络ACL是专有网络中的网络放置、网络访问控制功能,网络ACL的作用范围是专有网络下的虚拟交换机上,您可以自定义设置网络ACL规则,并将网络ACL与交换机进行绑定,实现对交换机中云服务器ECS实例流量的访问控制。

 

网络ACL的几点特性:

 

∙        第一是无状态,设置入方向规则的允许请求后,必须要同时设置出方向的规则,否则就可能导致请求出去了回不来,或者是能进来回不去。

∙        第二点是网络ACL内没有任何规则时,会拒绝所有出入方向的访问,默认是拒绝所有访问的。

∙        第三点也是需要注意的,从交换机下的ECS流量不受网络ACL的限制,左图中大概描述了网络ACL的作用原理,需要说明的是,本节只讲解网络ACL,没有考虑安全组的影响。整个图片分为两部分,左侧表示所有交换机没有绑定网络ACL的场景,在这种场景下,整个专有网络的ECS都不受网络ACL的限制,是可以互相访问的。图片的右侧,表示两个交换机都绑定了网络ACL,左侧交换机内的ECS可以彼此互相访问,不受网络AC的控制,右右侧交换机访问左侧交换机需要受到网络ACL规则的限制。

 

本节讲解了网络ACL的基本概念,下面深入学习一下网络ACL的规则。

 

image.png

 

ACL规则由以下要素构成,生效顺序、策略、协议类型、源地址、目的地址、目的端口范围等。生效顺序表示生效的优先级,值越小,规则的优先级越高。

系统从生效顺序为一的规则开始判断,只要有一条规则与流量匹配及应用该规则,并忽略其他规则。例如,交换机B中的IP172.16.0.1ECS。通过TCP协议访问交换机C中的ECS,再经过如表所示的ACL规则配置后,172.16.0.1的匹配生效顺序2和生效顺序3中规则的源地址。

 

由于生效顺序2的优先级高于生效顺序3,所以会根据生效顺序2的规则拒绝该请求。策略,针对特定流量选择允许或拒绝。协议类型,指定数据流的协议类型,阿里云的ACL协议支持ALLICMPGRETCPUDP五种。第一种是ALL,即所有协议,当选择所有协议类型时,端口的范围是没办法设置的,必须为-1/-1,表示不限制端口,ICMP协议,网络控制报文协议,当选择该协议类型时。

 

端口范围无法设置,为-1/-1,表示无限制端口,GRE通用路由封装协议,当选择该封装协议时,端口范围无法设置,为-1/-1,表示不限制端口,TCP传输控制协议,当选择该协议类时,端口范围为1~65535,设置格式可以为1/20080/80,并且不能设置为-1/-1UDP是用户数据报协议,当选择该协议类型时,端口范围为1~65535,设置格式为1/20080/80,且不能设置为-1/-1

 

源地址,是用于限制入方向的规则,数据流的源地址,目的地址,是用于限制出方向的规则,表示数据流的目的地址,目的端口的范围,是用于限制入方向规则作用的端口范围,这个就是ACL构成要素的一些详解。

 

image.png

 

通过网络ACL限制流量,主要分为三步:

 

∙        第一步是创建网络ACL

∙        第二步是将创建的网络ACL关联到交换机;

∙        第三是设置网络ACL的规则。

 

设置后所有的规则会自动对交换机下的ECS的生效,创建网络ACL是首先在的控制台专有网络ACL的页面点击创建网络ACL,也可以通过OpenAPI CreateNetworkAcl 创建ACL,第二步是关联交换机,可以在VPC的控制台、专有网络、网络ACL、网络ACL详情的页面点击关联交换机,也可以通过 OpenAPI AssociateNetworkAcl 绑定ACL到交换机。

 

第三是设置规则,在VPC的控制台,选择专有网络、网络ACL、网络ACL详情及出入方向的规则进行设置,也可以通过 OpenAPI UpdateNetworkAclEntries 更新网络ACL规则,注意第二步中的OpenAPI 是一个义务的操作,可以通过OpenAPI DescribeNetworkAclAttributes 查询网络ACL的规则的更新状态,更新结果,这就是要讲解的网络ACL详情,下面我们会重点讲解一下,阿里云ECS安全组。

 

image.png

 

什么是安全组,设想几个常见的安全场景:

 

∙        有一个Mysql集群,并且只想对内网放开3306端口的访问

∙        有一个web集群,只想放80/443端口的外部访问

∙        有一个AB两个服务集群,彼此之间不希望他们进行通信

∙        同交换机下的两台ECS不允许彼此访问

 

前三条都可以通过网络ACL实现,但是最后一个场景不行,只能用安全组实现,因为前文提到过,同交换机下的 ECS是不受网络ACL 的限制的。

 

安全组的概念:安全组是一种网卡粒度的虚拟防火墙,能够控制ECS实例的出入站流量。安全组的入方向规则控制ECS实力的入站流量,出方向规则控制ECS实力的出站流量。通俗的讲,就像是一个小区的门卫,只放行允许的访问,对于不允许访问会拒绝掉。

 

上个章节讲解了网络ACL,安全组和它有什么不同?

 

首先是作用范围,网络ACL的作用范围是交换机下的所有ECS,而安全组的生效范围是安全组中的所有ECS

 

安全组是有状态的,网络ACL没有状态,举个例子,源端的ECS出方向的安全组规则允许访问目的端的ECS,即使源端入方向的不允许目地端的ECS放外,出方向的返回请求也不会被拦截。简单概括是安全组能出去就一定能回来,能进去也一定能回来。

需要注意的是,由目的端主动发起的对源端的访问会被拦截掉。而网络ACL则是无状态的,出入方向必须同时配置允许方向的规则才可以放行允许访问。

第三点是同交换机下的ECS受安全组规则的限制,但是不受网络ACL的限制。

第四点是同安组的ECS可以允许互相访问,也可以关闭互相访问的功能。第五是安全组支持组组授权,并且也支持跨账号的数据授权,这一点在功能上是非常强大的,下一节会重点介绍安全组的作用原理。

 

image.png

本节主要介绍安全组的作用原理,要想安全组生效,需要进行如下操作:

 

∙        创建安全组;

∙        根据自己的需求设置安全组的规则;

∙        ECS或者弹性网卡加入安全组。当一台ECS加入安全组后,该安全组的所有规则会自动对该ECS生效,流入或者流出ECS所有流量都要受到这些规则的限制。

 

例如,图中下方的ECS,加入一个安全组,该安全组配置了一条规则,允许来源IP192.168.1.100的访问,访问22端口,对于来自于192.168.0.100的流量,就是不允许访问的,来自192.168.1.100的流量,对于22个端口的访问会被放行,这就是安全组的作用原理。下一节会重点讲解一下安全组ACL的一个规则。

 

image.png

首先是单条自定义的安全组规则由以下的组成元素,第一是协议类型,第二是端口范围,第三是授权对象,第四是授权策略,第五是优先级,第六是规则方向,第七是规则ID

 

详细的介绍一下各个元素,首先是协议类型,匹配流量的协议类型,支持TCPUDPICMP(IPv4)ICMP(IPv6)GRE,端口的范围,匹配流量的目的端口,对于TCPUDP协议,可以指定一个斜线(/)分隔的端口范围,比如8000/9000,或22/22。对其他协议,该字段取值-1/-1表示所有端口。

 

授权对象:入方向规则中匹配流量的源地址,出方向规则中匹配流量的目的地址。支持CIDR地址块(或IP地址)、安全组、前缀列表三种类型。

 

具体如下,举个例子,IPv4地址:例如192.168.0.100IPv4 CIDR地址块:例如192.168.0.0/24,掩码是24位的地段,IPV6地址和IPV6地址段就不再去详细的介绍,还有一个是安全组的ID。支持当前账号下的安全组,或者是跨账号的安全组,还有前缀列表的ID,前缀列表是一些网络前缀。比如CIDR地址块的一些集合,授权对象为前缀列表时,注意该条规则会占用安全组规则的配额数,该条规则占用安全组规则的配额数量,为前缀列表最大条目数,与前缀列表中已有条目数量无关。这一点是需要注意的,下一个是授权策略,可以是允许或者是拒绝,优先级后面会重点去介绍。

 

下一个是规则的方向,就是出方向或者是入方向,还有规则的ID是表示是唯一组件,安全组规则基于协议类型、端口范围、授权对象来匹配流量,并基于授权策略来允许或拒绝放通流量。对于一般的入方向规则,授权对象匹配流量的来源地址、端口范围、匹配流量的目的地址,对于一般的出方向规则,授权对象匹配流量的目的是端口范围,匹配流量的目的端口,这一点是需要好好的去理解一下。本节重点讲解了安全组ACL的一个构成。下一节会讲解规则的排序策略。

 

image.png

 

安全组规则的排序依据,可以归纳成两点,第一点是考虑规则的优先级,优先级数值越小的规则,优先级越高,而高优先级的规则总是排在低优先级规则的前面;第二是考虑授权的策略,遵循拒绝规则优先的原则,在两条规则优先级行同时,授权策略的不拒绝的规则是排在授权策略允许的规则之前。

 

来举一个例子,直观理解一下,上面的图中,是有一个ECS加入了安全组A和安全组B,安全组AB分别有两条入方向的规则,安全组A和安全B的规则都对该ECS生效,所以访问ECS流量都会受到这些规则的约束,AB的两个安全组的规则排序后的结果。

 

首先,是按照优先级进行排序,所以是优先级为1的规则,sgr-4排在最前面,优先级为100的规则,sgr-2排在最后面,由于sgr-2sgr-3的优先级都是二,所以是按照策略进行排序,即拒绝优先,策略为拒绝的排在策略为允许的前面,由于sgr-3是拒绝,所以sgr-3它排在了sgr-2前面,100.0.0.0/8100.0.1.0/24的顶端不允许访问该ECS22端口,该断定的其他地址段可以访问该ECS22端口,也就是右侧图中蓝色线条中这个橙色的部分不允许访问,不允许访问该ECS,其他的部分都是允许的,本节讲解了安全组规则的排序策略,下一节讲解安全组规则的授权对象前缀列表。

 

image.png

 

有一种特殊的需求场景,比如,您在线下的 IDC 有大量的物理机通过公网IP访问服务,左图,最左边框里代表一个线下 IDC 的服务集群,这里面可能有 100 多个公网 IP,他们通过官网访问云上的两个集群,这两个集群分别位于安全组 A 和安全组 B,安全组和 A B 都需要放行这 100 多个公网 IP

 

现在有两种方案,第一种方案,不使用前缀列表的方案,要做的操作是为安全组 A B,分别添加允许线下 100 多个公共 ID 访问的入方向规则,这种方案的缺点是,第一运维成本高,需要做IP数乘以安全组数的次操作,也就是100 乘以 2200多次操作。第二个是每新增一个IP,需要维护每个安全组的规则,每新增一个IP需要有两次操作。

 

第二种方案,是使用前缀列表,使用前缀列表需要做如下操作:

∙        创建前缀列表。

∙        将线下IDC100IP加入到前缀列表中

∙        为安全组AB分别添加一条入方向允许访问的规则,规则的授权对象是在1中创建的集用列表

 

第二个方案极大的降低了运维成本,运维操作数就等于IP的数量,只需要去操作100次。并且攻击事件发生时,可以快速封禁恶意 IP。举个例子,假设线下IDC的这些公网IP是一些恶意的IP,对它进行封禁,发现一个恶意IP,只需要维护一下前缀列表就可以,它就会对所有的IP组都会生效,可以达到快速平定的目的。这就是使用安全组使用前缀列表的场景和介绍。

 

在云上的实践中,逐渐总结出来一套设置安全组规则的最佳实践,接下来会进行一下分享。

 

image.png

 

第一点规划,您可以为安全组设置名称描述,也可以设置安全组的标签资源组,便于进行分类运维,建议您合理设置这些信息,方便快速识别安全组用途,在管理较多安全组时,更加清晰。

 

第二点是以白名单的方式访问安全组,即默认拒绝所有访问,添加允许规则来放通指定的端口范围或者是授权对象。

 

第三是最小授权的原则,避免设置0.0.0.0的全通对象,第二是仅开放允许放开的IP段端口协议,开放 Linux 实例的 22 端口用于远程登录时,建议仅允许特定的 IP (如跳板机 IP)访问,而非所有IP0.0.0.0/0),减少被非法侵入风险。按照用途将规则维护在多个安全组中,并将实例关联到这些安全组。单个安全组的规则数量越多,会增加管理的复杂度,

 

第四点做好隔离,不同类型应用的实例,加入到不同的安全组,分别维护安全组的规则,例如将允许公网访问的实例关联到同一个安全组,仅放通对外提供服务端口,例如80/443,默认拒绝其他的所有访问,避免在允许公网访问的实例上提供一些微信的服务。内部比如 MySQLRedis 等,建议将这些内部的服务部署在不允许公网访问的实例上,并关联其他的安全组。

 

image.png

 

第五点避免直接修改线上环境使用的安全组,可以先克隆一个安全组在测试环境调试,能确保修改后流量是正常的,在对安全组的线上规则去进行变更。

 

第六点是利用组内互通,同一个安全组的ECS默认是可以互相访问的,可以将需要互相通信的ECS实例加入到同一个安全组,避免复杂的 ACL 维护。

 

第七点是利用组组授权,以安全组为授权对象添加规则,安全组规则中五元组中的来源和目的,都可以使用安全组,用户可以把部署相同服务的ECS统一放入到同一个安全组A中,将安全组A作为另外一个安全组规则B的来源并设置放行,安全组A中的ECS都可以访问B中的ECS,这样可以非常便捷的做好服务的隔离。

 

第八是使用前缀列表,正如上一节提到的,安全组规则,元素来源和目的都可以使用前缀列表,这样能够极大的降低运维成本,当攻击来临时,运维的越快,风险和损失就越小,讲解完原理和建议,接下来是一个实践环节。

 

image.png

 

 

可以通过控制台管理安全组的规则和成员:

 

第一是管理安全组规则,在ECS控制台安全组列表页选择具体的安全组,点击安全组详情,设置安全组的规则;

 

第二是管理安全组内的ECS或者弹性网卡。在ECS控制台,安全组列表页,选择具体的安全组,在实际列表页或者是网卡列表tab页面上管理安全组页的成员;

 

第三是更换ECS安全组,可以在ECS控制台实例列表页面选择具体的实例,有一个安全组的tab,点击修改安全组就可以更换ECS安全组,也可以使用OpenAPI管理安全组的规则和成员,下一节会讲解。

 

image.png

 

阿里云提供了管理安全组规则合成的六个核心API,他们可以添加安全组入方规则,添加安全组出方向规则,删除安全组入方规则,删除安全组出发规则,ECS或弹性网卡加入到安全组中,ECS或弹性网卡点击开安全组,右侧是一个请求的实例,可以通过common request或者是阿里云提供的SDK,对这些API进行调用,这就是流量控制的完整内容。


带你读《从基础到应用云上安全航行指南》——来上课!一文掌握守住ECS网络安全的最佳方法(3):

https://developer.aliyun.com/article/1441580

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
安全 网络安全 区块链
网络安全与信息安全:构建数字世界的防线在当今数字化时代,网络安全已成为维护个人隐私、企业机密和国家安全的重要屏障。随着网络攻击手段的不断升级,从社交工程到先进的持续性威胁(APT),我们必须采取更加严密的防护措施。本文将深入探讨网络安全漏洞的形成原因、加密技术的应用以及提高公众安全意识的重要性,旨在为读者提供一个全面的网络安全知识框架。
在这个数字信息日益膨胀的时代,网络安全问题成为了每一个网民不可忽视的重大议题。从个人信息泄露到企业数据被盗,再到国家安全受到威胁,网络安全漏洞如同隐藏在暗处的“黑洞”,时刻准备吞噬掉我们的信息安全。而加密技术作为守护网络安全的重要工具之一,其重要性不言而喻。同时,提高公众的安全意识,也是防范网络风险的关键所在。本文将从网络安全漏洞的定义及成因出发,解析当前主流的加密技术,并强调提升安全意识的必要性,为读者提供一份详尽的网络安全指南。
|
6天前
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
14 2
|
20天前
|
弹性计算 异构计算
2024年阿里云GPU服务器多少钱1小时?亲测价格查询方法
2024年阿里云GPU服务器每小时收费因实例规格不同而异。可通过阿里云GPU服务器页面选择“按量付费”查看具体价格。例如,NVIDIA A100的gn7e实例为34.742元/小时,NVIDIA A10的gn7i实例为12.710156元/小时。更多详情请访问阿里云官网。
66 2
|
22天前
|
人工智能 弹性计算 关系型数据库
学生免费领取阿里云服务器一年的方法,以及各种活动
学生可以免费领取阿里云服务器一年,新人可获2核4G,非新人2核2G。访问链接注册并完成学生认证,领取300元无门槛优惠券,购买轻量应用服务器。此外,还有多项活动可赢取实物奖品。
109 2
|
1天前
|
机器学习/深度学习 人工智能 安全
探索人工智能在网络安全中的创新应用
探索人工智能在网络安全中的创新应用
|
15天前
|
机器学习/深度学习 人工智能 安全
人工智能与机器学习在网络安全中的应用
人工智能与机器学习在网络安全中的应用
39 0
|
1月前
|
存储 安全 算法
网络安全与信息安全:构建数字世界的防线在数字化浪潮席卷全球的今天,网络安全与信息安全已成为维系现代社会正常运转的关键支柱。本文旨在深入探讨网络安全漏洞的成因与影响,剖析加密技术的原理与应用,并强调提升公众安全意识的重要性。通过这些综合性的知识分享,我们期望为读者提供一个全面而深刻的网络安全视角,助力个人与企业在数字时代中稳健前行。
本文聚焦网络安全与信息安全领域,详细阐述了网络安全漏洞的潜在威胁、加密技术的强大防护作用以及安全意识培养的紧迫性。通过对真实案例的分析,文章揭示了网络攻击的多样性和复杂性,强调了构建全方位、多层次防御体系的必要性。同时,结合当前技术发展趋势,展望了未来网络安全领域的新挑战与新机遇,呼吁社会各界共同努力,共筑数字世界的安全防线。
|
1月前
|
SQL 安全 网络安全
守护数字资产:服务器迁移期间的安全挑战与对策
【10月更文挑战第4天】在数字化转型的浪潮中,服务器迁移成为企业不可避免的任务。然而,迁移过程中的安全挑战不容忽视。本文从安全考量的角度,探讨了服务器迁移期间可能遇到的安全问题,并提供了相应的对策和代码示例。
63 3
|
1月前
|
机器学习/深度学习 计算机视觉
TPAMI 2024:计算机视觉中基于图神经网络和图Transformers的方法和最新进展
【10月更文挑战第3天】近年来,图神经网络(GNNs)和图Transformers在计算机视觉领域取得显著进展,广泛应用于图像识别、目标检测和场景理解等任务。TPAMI 2024上的一篇综述文章全面回顾了它们在2D自然图像、视频、3D数据、视觉与语言结合及医学图像中的应用,并深入分析了其基本原理、优势与挑战。GNNs通过消息传递捕捉非欧式结构,图Transformers则结合Transformer模型提升表达能力。尽管存在图结构构建复杂和计算成本高等挑战,但这些技术仍展现出巨大潜力。论文详细内容见:https://arxiv.org/abs/2209.13232。
61 3
|
1月前
|
弹性计算 安全 Linux
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法
阿里云国际版使用ping命令测试ECS云服务器不通的排查方法

相关产品

  • 云服务器 ECS
  • 下一篇
    无影云桌面