一、什么是云主机安全组

云主机安全组是一种云厂商为其用户提供的虚拟防火墙。用于设置单台或多台云主机的网络访问控制,这个分组是由同一个地域(或VPC网络)内具有相同安全保护需求并相互信任的云主机组成。它是重要的网络安全隔离手段,您可以在云端划分安全域。在安全组配置正确的情况下,可以确保云主机能够有效的降低网络攻击风险。

二、行云管家中如何管理安全组

目前,行云管家已经支持阿里云和腾讯云的安全组管理,点击“基础运维”的“网络管理”菜单,在行云管家中,公有云主机网络是以区域或者专有网络(VPC)来划分;如果是局域网主机,网络则是以云账户为划分(局域网并不提供安全组管理功能)。请选择相应的云账户网络进入;

进入网络管理界面,点击“安全组”标签页,打开安全组管理;

在安全组管理界面中,您可以在这里创建新的安全组、增删改安全组规则、将主机添加到安全组中等常规安全组操作;

三、安全组最佳实践

3.1、关闭不需要的入网规则

我们在配置入网规则时,为了方便考虑经常会设置类似以下的规则:

  • 方向:网络入

  • 行为:允许

  • 授权对象:IP地址

  • IP地址:0.0.0.0/0(即全部IP地址)

  • 协议:TCP

  • 端口范围:ALL(即全部端口)

如果您的安全组配置中有以上的规则,那么您需要重新审视自己应用的目客户来源以及需要对外暴露的端口和服务,至少您可能具有以下的风险:

(1)任何IP都可以访问到您的云主机;

(2)云主机全部端口被暴露;

建议:正确的做法是,先拒绝所有的端口对外开放。安全组应该是白名单访问。例如,如果您需要暴露 Web 服务,请先创建一条优先级低的全部拒绝策略,再创建优先级较高的端口开放策略,开放 80和 443之类的常用TCP端口。

3.2、只允许行云管家访问您的主机的远程端口

在上一个最佳实践中我们已经知道,尽量关闭不需要的入网规则。鉴于安全考虑,如果用户云主机的日常远程访问只通过行云管家来进行,建议您设置一定的访问权限,仅允许行云管家服务器访问您的主机的远程端口。行云管家服务器IP列表如下:

会话中转地址 IP地址 域名
深圳 120.79.177.136 sztrans-6.cloudbility.com
北京 39.106.168.240 bjtrans-7.cloudbility.com
杭州 47.99.75.202 hztrans-10.cloudbility.com
成都 47.108.133.238 cdtrans-13.cloudbility.com
香港 47.75.121.140 hktrans-9.cloudbility.com
海外(美西) 47.88.93.102 uswest-trans.cloudbility.com

温馨提示:以上IP指的是行云管家SaaS环境下的服务器IP列表,如果您使用的是行云管家私有部署,那么IP就是您部署行云管家的服务器IP;

3.2.1、公网IP访问

如果您的云主机采用公网IP直连的方式访问,那么只需要允许行云管家服务器访问主机远程端口即可,请参照以下指引配置安全组:

(1)创建一个新的安全组,命名为“行云管家安全组”,并备注描述信息:为行云管家服务器配置安全组策略;

(2)将需要公网访问的主机,加入到该刚刚创建的安全组中;

(3)创建一个公网入安全组规则,禁止所有的公网入访问;

(4)允许行云管家服务器访问到安全组内主机的22和3389端口,为每一个行云管家服务器IP创建以下规则;

(5)最终,公网IP访问的安全组规则如下图(省略部分IP,具体IP列表请参考前表):

3.2.2、内网IP访问

如果您的云主机采用内网IP访问,我们先来看看云主机内网访问的示意图:

通过上图我们可以看到,内网访问方式中云主机并不会直接与行云管家进行通信,而是以Proxy为跳板进行代理转发。因此,我们需要分两部分来制定安全组策略,第一部分是为行云管家Proxy宿主机设置安全组:

(1)和公网访问一样,创建一个新的安全组,命名为“行云管家Proxy安全组”,并备注描述信息:为行云管家Proxy配置安全组策略;

(2)将Proxy宿主机,加入到该刚刚创建的安全组中;

(3)允许Proxy的宿主机访问所有的行云管家服务器的80(Web服务)和443(Https服务)端口,为每一个行云管家服务器IP创建以下规则(阿里云经典网络为公网出、阿里云VPC或腾讯云为网络出);

(4)最终,Proxy安全组规则如下图(省略部分IP,具体IP列表请参考前表):

第二部分是为被访问的目标主机设置安全组,只允许Proxy访问目标主机的远程端口:

(1)创建一个新的安全组,命名为“行云管家主机内网访问安全组”,并备注描述信息:为行云管家被管理主机配置安全组策略;

(2)将被管理的目标主机,全部加入到该安全组中;

(3)允许Proxy的宿主机通过内网访问被管理主机的远程访问端口,创建以下规则(阿里云经典网络为内网入、阿里云VPC或腾讯云为网络入),将授权对象设置为“本账号安全组”,安全组选择刚才创建的“行云管家Proxy安全组”;

(4)最终,行云管家主机内网访问安全组规则如下图:

(5)最后,由于行云管家Agent安装时,目标主机需要访问到Proxy宿主机的8326端口,因此,我们为之前创建的“行云管家Proxy安全组”,再添加一条内网入规则,将授权对象设置为“本账号安全组”,安全组选择刚才创建的“行云管家主机内网访问安全组”,目的是让所有的被管理主机能够访问助手的8326端口:

通过以上两个安全组,我们成功的实现了:允许Proxy可以反向访问行云管家,但不允许公网主动去访问Proxy。同时,Proxy可以访问目标主机,避免了将目标主机暴露在公网上。

云主机的内网访问原理,和局域网主机的Proxy代理转发机制是完全相同的。因此,我们在为局域网主机设置防火墙规则时,也可以参考云主机内网访问方式下的安全组设置规则。

3.2.3、开放云主机的RDP远程桌面(3389)/SSH终端(22)端口

如果您的云主机由于安全组的原因导致无法访问RDP远程桌面/SSH终端,您可以尝试按照以下规则将远程端口3389或22开放:

  • 方向:阿里云经典网络为公网入、阿里云VPC或腾讯云为网络入

  • 行为:允许

  • 授权对象:IP地址

  • IP地址:如果是完全开放请填写“0.0.0.0/0(即全部IP地址)”,如果是部分 开放请填写具体的IP地址

  • 协议:TCP

  • 端口范围:22、3389

3.2.4、开放Proxy的8326端口

在安装行云管家Agent时,需要确保区域/网络内的主机能够访问Proxy的内网8326端口,我们建议创建以下安全组规则:

  • 方向:阿里云经典网络为内网入、阿里云VPC或腾讯云为网络入

  • 行为:允许

  • 授权对象:IP地址

  • IP地址:此处请根据实际情况填写您的主机内网IP(或IP段)

  • 协议:TCP

  • 端口范围:8326