云服务器ECS安全组实践(三)Tips篇

本文涉及的产品
轻量应用服务器 4vCPU 16GiB,适用于搭建游戏自建服
轻量应用服务器 2vCPU 4GiB,适用于网站搭建
轻量应用服务器 2vCPU 4GiB,适用于搭建Web应用/小程序
简介: 在使用安全组的过程中,一个常见的错误是将所有的云服务器放置在一个安全组之中,这样虽然减少了初期配置的工作量,但是长期来看将会使得您的业务系统网络交互变得复杂和不可控,在执行安全组变更的时候没办法明确的知道添加和删除规则的影响范围。

在使用安全组的过程中,一个常见的错误是将所有的云服务器放置在一个安全组之中,这样虽然减少了初期配置的工作量,但是长期来看将会使得您的业务系统网络交互变得复杂和不可控,在执行安全组变更的时候没办法明确的知道添加和删除规则的影响范围。

合理的规划和区分不同安全组将使得您的系统更加便于调整,同时可以梳理应用的提供的服务和不同的应用进行分层。所以我们推荐您对不同的业务规划不同的安全组,设置不同的安全组规则。

例如对于是否提供公网访问和内网的应用使用不同的安全组,避免不小心疏忽暴露了不需要的服务到公网。同时要对测试环境和生产环境使用不同的安全组,这样讲使得发布和变更更加安全,避免测试环境的业务影响线上的稳定性。本文将着重介绍一些在应用中创建和使用安全组的一些规则。

区分不同的的安全组

提供公网服务的云服务器和内网服务器尽量属于不同的安全组

是否对外提供公网服务,包括主动暴漏某些端口对外访问,例如80、443等,被动的提供例如云服务器具有公网IP、EIP、NAT端口转发规则等都会导致自己的应用可能被公网访问到。

这两种场景的云服务器所属的安全组规则要采用最严格的规则,我们建议是拒绝优先,默认情况下应当关闭所有的端口和协议,仅仅暴露对外提供需要服务的端口,例如80、443。同时由于仅仅属于对外公网访问的服务器编组,我们调整安全组的规则的时候也比较容易控制。

对于对外提供的服务器编组的职责应该比较明晰和简单,避免在同样的服务器上对外提供其它的服务例如MySQL、Redis之类的,建议将这些服务安装在没有公网访问权限的云服务器上,然后通过安全组的组组授权来访问。

如果当前有公网云服务器已经和其它的应用在同一个安全组SG_CURRENT。您可以通过下面的方法来进行变更。

  • 首先梳理当前提供的公网服务暴漏的端口和协议,例如80、443。
  • 新创建一个安全组例如SG_WEB, 然后添加相应的端口和规则。授权策略:允许,协议类型:ALL, 端口: 80/80, 授权对象: 0.0.0.0/0, 授权策略:允许,协议类型:ALL, 端口: 443/443 授权对象: 0.0.0.0/0。
  • 选择安全组SG_CURRENT, 然后添加一条安全组规则,组组授权,允许SG_WEB中的资源访问SG_CURRENT。授权策略:允许,协议类型:ALL, 端口: -1/-1, 授权对象:SG_WEB, 优先级: 按照实际情况自定义[1-100],
  • 将一台需要切换安全组的实例 ECS_WEB_1 添加到新的安全组中,【ECS控制台】-【安全组管理】- 选择SG_WEB -【管理实例】-【添加实例】,选择实例 ECS_WEB_1 加入新的安全组SG_WEB,确认ECS_WEB_1实例的流量和网络工作正常。
  • 将ECS_WEB_1从原来的安全组中移出,【ECS控制台】-【安全组管理】- 选择SG_CURRENT -【管理实例】-【移出实例】,选择ECS_WEB_1 ,从SG_CURRENT移除,测试网络连通性,确认流量和网络工作正常。如果不正常将ECS_WEB_1仍然加回到安全组SG_CURRENT中,检查设置的SG_WEB暴漏的端口是否符合预期。然后继续变更。
  • 执行其它的服务器安全组变更。

不同的应用使用不同的安全组

在我们的生产环境中,不同的操作系统大部分情况下不会属于同一个应用分组来提供负载均衡服务,提供不同的服务意味着需要暴露的端口和拒绝的端口是不同的,建议不同的操作系统尽量归属于不同的安全组。

例如对于我们常见的Windows和Linux,对于Linux操作系统,我们可能需要暴露TCP(22)端口来实现SSH,对于Windows可能需要开通TCP(3389)远程桌面连接。

其实不只是不同的操作系统属于不同的安全组,即便同一个镜像类型,提供不同的服务,如果之间不需要通过内网进行访问的话,最好也划归不同的安全组,这样方便解耦和未来的安全组规则变更,做到职责单一。

在规划和新增应用的时候,除了考虑划分不同的虚拟交换机配置子网,也应该同时合理的规划安全组。使用网段+安全组约束自己的作为服务提供者和消费者的边界。

具体的变更流程参见上面的操作步骤。

生产环境和测试环境使用不同的安全组

为了更好的做系统的隔离,在实际开发过程中,我们可能会构建多套的测试环境和一套线上环境。为了更合理的做网络隔离,我们需要对不同的环境配置使用不通的安全策略,避免因为测试环境的变更刷新到了线上影响线上的稳定性。

通过创建不同的安全组,限制应用的访问域,避免生产环境和测试环境联通。同时也可以对不同的测试环境分配不同的安全组,避免多套测试环境之间互相干扰,提升开发效率。

仅对需要公网访问子网或者云服务器分配公网IP

不论是经典网络还是专有网络(VPC)中,合理的分配公网IP可以让系统更加方便的做公网管理,同时减少系统受攻击的风险。在专有网络的场景下,创建虚拟交换机的时候,我们也建议您尽量将需要公网访问的服务区的IP区间放在固定的几个交换机(子网CIDR)之中,这样方便审计和区分,避免不小心暴漏公网访问。

在分布式应用中,大多数应用都有不同的分层和分组,对于不提供公网访问的云服务器尽量不提供公网IP,如果是有多台服务器提供公网公网访问,建议您配置公网流量分发的负载均衡服务(SLB)来公网服务,提升系统的可用性,避免单点。

对于不需要公网访问的云服务器尽量不要分配公网IP。专有网络中当您的云服务器需要访问公网的时候,优先建议您使用NAT网关,用于为VPC内无公网IP的ECS实例提供访问互联网的代理服务,您只需要配置相应的SNAT规则即可为具体的CIDR网段或者子网提供公网访问能力,[具体配置SNAT参见]。避免因为只需要访问公网的能力而在分配了公网IP(EIP)之后也向公网暴露了服务。

最小原则

安全组应该是白名单的性质的,所以需要尽量开放和暴露最少的端口同时尽量少的分配公网IP。如果想要访问线上机器进行任务日志或错误排查的时候直接分配公网IP或者挂载EIP虽然简便,但是毕竟会将整个机器暴露在公网之上,更安全的策略是建议通过跳板机来管理。

使用跳板机

跳板机由于其自身的权限巨大,除了通过工具做好审计记录。在专有网络中,建议将跳板机分配在专有的虚拟交换机之中,对其提供相应的EIP或者NAT端口转发表。

首先创建专有的安全组SG_BRIDGE,例如开放相应的端口例如 Linux TCP(22) 或者 Windows RDP(3389)。为了限制安全组的入网规则,可以限制可以登录的授权对象为企业的公网出口范围,减少被登陆和扫描的概率。

然后将作为跳板机的云服务器加入到这个安全组之中。为了能让这个机器能访问相应的云服务器,可以配置相应的组组授权,例如在SG_CURRENT 添加一条规则允许SG_BRIDGE 访问某些端口和协议。

使用跳板机SSH的时候,建议您优先使用SSH 密钥对而不是密码登陆。

总结

合理的安全组规划会使得您在扩容应用的时候更加的游刃有余,同时让您的系统更加的安全。回顾下上文中总结到的实践主要为:

  • 提供公网服务的云服务器和内网云服务器尽量属于不同的安全组
  • 不用的应用使用不同的安全组,尤其是不同的操作系统
  • 生产环境和测试环境使用不同的安全组隔离
  • 仅对需要从公网进行访问的实例分配公网IP
  • 使用跳板机约束和审计可访问生产环境的权限

本篇是安全组实践的第三篇,您可以通过查看下面的文章了解更多的安全组的细节。您可以留言提出关于安全组的问题,谢谢!

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4天前
|
存储 弹性计算 安全
阿里云服务器付费类型、地域、镜像、存储、带宽和安全组设置与选择注意事项参考
在我们通过自定义购买的方式购买阿里云服务器器ECS时,会有多个选项,有的新手用户可能并不是很清楚这些选项是什么,选择或设置时需要注意什么,本文将从付费类型、地域与可用区、镜像、存储、带宽和安全组等多个方面,为您详细解析云服务器购买过程中各个参数与配置的选择注意事项,以供参考。
104 66
|
5天前
|
人工智能 安全 Linux
安全体检 | 服务器的终极卫士
阿里云的安全体检是为用户提供的一项免费安全检测工具,旨在通过调用云安全中心和配置审计中的安全检测能力,汇总检测结果,涵盖病毒攻击、风险配置和服务器漏洞三方面。该服务帮助用户及时发现并解决潜在的安全问题,提升云上安全水平。与云服务诊断不同,安全体检更侧重于深层次的安全检测,确保服务器的安全稳定运行。
安全体检 | 服务器的终极卫士
|
2天前
|
云安全 弹性计算 安全
阿里云服务器安全攻略参考:基础防护与云安全产品简介
在使用云服务器的过程中,云服务器的安全问题是很多用户非常关心的问题,阿里云服务器除了提供基础的防护之外,我们也可以选择其他的云安全类产品来确保我们云服务器的安全。本文为您介绍阿里云服务器的基础安全防护机制,以及阿里云提供的各类云安全产品,帮助用户全面了解并选择合适的防护手段,为云上业务保驾护航。
|
1天前
|
存储 弹性计算 安全
ECS与VPS技术角力:从算力成本到免备案雷区,企业服务器选型合规指南
在数字化浪潮中,服务器选择至关重要。ECS(云服务器)和VPS(虚拟专用服务器)是热门选项。ECS基于云计算,提供高可用性和弹性伸缩,适合大型项目;VPS通过分割物理服务器实现资源独立,成本较低,适合小型应用。两者在网络、存储及计算性能上各有优劣,需根据需求选择。国内并不存在合法的免备案服务器,建议严格遵守法规,确保网站合法运营。
15 2
|
8天前
|
弹性计算 运维 Cloud Native
阿里云虚拟主机、轻量应用服务器、云服务器、云·速成美站、云·原生建站区别及选择参考
在选择阿里云产品完整自己网站搭建的时候,面对云虚拟主机、轻量应用服务器、云服务器ECS、云·速成美站和云·原生建站等多种选择,很多用户不是很清楚他们之间的区别。每种产品都有其独特的优势和适用场景,如何根据自己的需求和技术背景选择最适合的建站产品,成为了用户关注的焦点。本文将详细比较阿里云这五种建站产品的优势和劣势,以及它们的适用人群,以供选择参考。
|
8天前
|
弹性计算 运维 Ubuntu
在阿里云ECS云服务器上安装、配置及高效使用Docker与Docker Compose
本文介绍了在阿里云ECS上使用Ubuntu系统安装和配置Docker及Docker Compose的详细步骤。通过这些工具,可以快速部署、弹性扩展和高效管理容器化应用,满足开发和运维需求。内容涵盖Docker的安装、镜像源配置、创建Web程序镜像以及使用Docker Compose部署WordPress等实际操作,并分享了使用体验,展示了阿里云实例的高性能和稳定性。
152 4
|
6天前
|
弹性计算 监控 安全
阿里云 ECS 服务器面板如何选择?
阿里云ECS服务器面板是管理云服务器的工具,如同手机的控制中心。它简化了复杂操作,提供一键建站、监控状态、安全管理等功能。常用面板有宝塔(适合个人和小团队)、Websoft9(阿里云官方合作,开机即用)和cPanel(适合企业级需求)。新手使用面板可避免技术坑、节省时间和成本。选择时,根据需求和使用习惯决定:深度用户选Websoft9,极客选宝塔,企业选cPanel。
70 1
|
10天前
|
存储 弹性计算 固态存储
阿里云服务器租用价格参考:云服务器各收费项目收费标准与活动价格
阿里云服务器收费项目有实例价格、预留实例券、专有宿主机、块存储价格、存储容量单位包、带宽价格和快照服务价格,收费模式有包年包月和按量付费模式。本文为大家汇总了2025年阿里云服务器各个收费项目的最新收费标准与云服务器的最新活动价格,以供参考和了解。
|
10天前
|
存储 安全 搜索推荐
云服务器和一般服务器有什么区别?
云服务器结合了独立服务器的性能与灵活性,具备更低的成本和高度定制化的特点。它提供独立的操作系统、磁盘空间及资源,支持快速扩展和降级配置,确保安全性和隐私性。相比共享主机(适合轻量级应用)和独立服务器(适合高性能需求),云服务器更适合个人用户、中小型企业和开发人员,兼具成本效益与灵活性。
33 3
|
1月前
|
存储 SQL 关系型数据库
服务器数据恢复—云服务器上mysql数据库数据恢复案例
某ECS网站服务器,linux操作系统+mysql数据库。mysql数据库采用innodb作为默认存储引擎。 在执行数据库版本更新测试时,操作人员误误将在本来应该在测试库执行的sql脚本在生产库上执行,导致生产库上部分表被truncate,还有部分表中少量数据被delete。
68 25

相关产品

  • 云服务器 ECS