安全组是一种虚拟防火墙,具备状态检测和数据包过滤能力,用于在云端划分安全域。通过配置安全组规则,您可以控制安全组内全球云服务器实例的入流量和出流量,实现对网络和云服务器的公网私网的通断流量控制。每一个VDC(虚拟数据中心)的一个端口,相当于一个“虚拟机交换机”,安全组就是设置在与云服务器相连的“虚拟交换机”上。
安全组是一个逻辑上的分组,具有相同安全保护需求并相互信任的实例组成。
• 一台全球云服务器实例只能加入一个安全组。
• 一个安全组可以管理不同可用区内的多台云服务器实例。
网络安全组绑定在VDC的网络上,只对该网络下加入安全组的云服务器起作用。暂时只在内部的公网和私网端口起作用,同时也对GPN、云互联起作用。
在设置安全规则中,流量方向仅针对于云服务器,包括入方向、出方向、双向(包括入方向和出方向)。
源IP10.11.11.1-流出→虚拟交换机→流入-目的IP10.11.11.2(图中黄色箭头)
如果更换源和目的IP则正好相反,
源IP10.11.11.2-流出→虚拟交换机→流入-目的IP10.11.11.1(图中紫色箭头)
安全组的规则对连接到这个“虚拟交换机”上的所有云服务器同时生效。建立数据通信前,安全组逐条匹配安全组规则查询是否放行访问请求。一条安全组规则由规则方向、授权策略、协议类型、端口范围、授权对象等属性确定,具体详见下表。
属性 | 说明 |
---|---|
规则方向 | 支持入向,出向,双向 |
授权策略 | 支持禁止和允许两种访问策略 |
协议类型 | TCP,ICMP(IPv4),UDP |
端口范围 | 应用或协议开启的端口。详情可参见常用端口。 |
优先级 |
1-1000,优先级高的先执行,数值越小,代表优先级越高。 加入多个安全组,如果规则优先级相同,创建时间靠前的安全组对应的规则先生效。优先级数字不允许重复。 |
授权对象 | 支持设置IP地址段 |
说明:首云在您创建安全组时将为您默认设置6条安全组规则,如下图所示。前4条将为您开启部分常用端口,5条和6条将为您提前禁止全网段(除去10000~65535端口外)入方向端口的访问。无必要情况请勿轻易删除此6条安全规则!
使用安全组时
• 仅允许少量请求访问全球云服务器实例时,可以将安全组作为白名单使用。即先设置安全组为禁止全部访问,然后逐一添加允许通信的访问请求策略。
• 不建议使用一个安全组管理所有应用,不同的分层一定有不同的隔离需求。
• 不建议为每台实例单独设置一个安全组,您只需将具有相同安全保护需求的实例加入同一安全组。
添加安全组规则时
• 建议您设置简洁的安全组规则。如果您给一台云服务器实例分配了多个安全组,该实例很可能会同时遵循数百条安全组规则,任何规则变更都可能引起网络不通的故障。
• 如果您需要修改生产环境的安全组规则,建议您提前在克隆的安全组上进行调试,避免影响线上应用。详情请参见克隆安全组。
• 为应用添加安全组规则时遵循最小授权原则。例如,您可以:选择开放具体的端口,如80/80。不要设置为端口范围,如1/80。
• 添加安全组规则时,谨慎授权0.0.0.0/0(全网段)访问源。
• 首云GIC平台创建的云服务器出入方向默认开通所有端口,如果想要禁止所有IP访问请参照案例一进行设置。
• 云服务器实例主要通过配置安全组规则,允许或禁止安全组内的云服务器实例对公网或私网的访问。
• 为应用添加安全组规则时遵循最小授权原则。例如,您可以:选择开放具体的端口,如80/80。不要设置为端口范围,如1/80。
• 创建安全组和添加安全组规则的详细操作,请参见创建安全组和添加安全组规则。以下列举了常见的安全组规则配置案例供您参考:
Linux/Windows
规则方向 | 授权策略 | 协议类型 | 端口范围 | 授权对象 | 优先级 |
---|---|---|---|---|---|
入方向 | 允许 | 自定义TCP | 10000-65535 | 0.0.0.0/0 | 998 |
入方向 | 禁止 | 自定义TCP | 0 (代表所有端口) | 0.0.0.0/0 | 999 |
首云安全组使用的是ACL防护策略,并非FW(防火墙),没有基于会话的概念。上网时云服务器会开放临时端口,FW会通过会话机制放行这些临时端口, 而ACL防护策略则不会放行,所以安全组中就需要设置一条硬策略允许临时上网端口(优先级998)。上网临时端口的范围用户可以自定义设置,您可以删除默认第五条"临时上网端口"规则,重新创建一条新的优先级为998的“临时上网端口”规则,例如端口范围可调整至30000-65535。
场景举例:如果您的实例被黑客远程控制,您可以修改远程登录端口号,并设置只允许特定的IP地址远程登录到您的实例。
Linux
规则方向 | 授权策略 | 协议类型 | 端口范围 | 授权对象 | 优先级 |
---|---|---|---|---|---|
入方向 | 允许 | 自定义TCP | SSH(22) | 允许远程连接的CIDR,例如10.1.1.1/32或0.0.0.0/0。 | 1 |
Windows
规则方向 | 授权策略 | 协议类型 | 端口范围 | 授权对象 | 优先级 |
---|---|---|---|---|---|
入方向 | 允许 | 自定义TCP | RDP (3389) | 允许远程连接的CIDR,例如10.1.1.1/32或0.0.0.0/0。 | 1 |
如果您只想让实例访问特定的IP地址,参考以下示例的步骤在实例所在安全组中添加安全组规则:
• 步骤一:禁止实例以任何协议访问特定公网IP地址,优先级应低于允许访问的规则(如本例中设置优先级为2)。安全组规则如下表所示。
规则方向 | 授权策略 | 协议类型 | 端口范围 | 授权对象 | 优先级 |
---|---|---|---|---|---|
出方向 | 禁止 | TCP/UDP/ICMP | 0 | 0.0.0.0/0。 | 2 |
• 步骤二:允许实例访问特定公网IP地址,优先级应高于禁止访问的安全组规则的优先级(如本例中设置为1)。
规则方向 | 授权策略 | 协议类型 | 端口范围 | 授权对象 | 优先级 |
---|---|---|---|---|---|
出方向 | 允许 | TCP/UDP/ICMP | 0 | 允许远程连接的CIDR,例如10.1.1.1/32或172.128.1.1/24。 | 1 |
如果您在实例上架设了一个网站,希望您的用户能通过HTTP或HTTPS服务访问到您的网站,您需要在实例所在安全组中添加以下安全组规则。
• 允许公网上所有IP地址访问您的网站
规则方向 | 授权策略 | 协议类型 | 端口范围 | 授权对象 | 优先级 |
---|---|---|---|---|---|
入方向 | 允许 | 自定义TCP |
HTTP(80) HTTPS(443) 自定义,如8080 |
0.0.0.0/0 | 1 |
• 允许公网上特定IP地址访问您的网站
规则方向 | 授权策略 | 协议类型 | 端口范围 | 授权对象 | 优先级 |
---|---|---|---|---|---|
入方向 | 允许 | 自定义TCP |
HTTP(80) HTTPS(443) 自定义,如8080 |
允许访问您网站的云服务器的公网IP地址,可以为一个或多个公网IP地址,例如10.1.1.1/32或172.128.1.1/24。 | 1 |
应用通过服务器的端口对外提供服务,通过了解典型应用的默认端口,您可以更准确地添加或修改安全组规则。下文介绍了云服务器实例的常用端口及其应用场景。
添加安全组规则时,您必须指定通信端口或端口范围,然后安全组根据允许或拒绝策略决定是否转发数据到云服务器实例。例如,远程连接云服务器实例时,当安全组检测到从公网或内网有SSH请求,会同时检查入方向上发送请求的设备的IP地址是否在允许放行的安全组规则中22端口是否开启,只有匹配到的安全组规则允许放行该请求时,方才建立数据通信。
典型应用的默认端口如下表所示。
端口 | 服务 | 说明 |
---|---|---|
22 | SSH | SSH端口,用于通过命令行模式或远程连接软件(例如PuTTY、Xshell、SecureCRT等)连接Linux实例。 |
23 | Telnet | Telnet端口,用于Telnet远程登录ECS实例。 |
80 | HTTP | 用于HTTP服务提供访问功能,例如,IIS、Apache、Nginx等服务。 |
443 | HTTPS | 用于HTTPS服务提供访问功能。HTTPS是一种能提供加密和通过安全端口传输的一种协议。 |
1433 | SQL Server | SQL Server的TCP端口,用于供SQL Server对外提供服务。 |
1521 | Oracle | Oracle通信端口,ECS实例上部署了Oracle SQL需要放行的端口。 |
3306 | MySQL | MySQL数据库对外提供服务的端口。 |
3389 |
Windows Server Remote Desktop Services |
Windows Server Remote Desktop Services(远程桌面服务)端口,可以通过这个端口使用软件连接Windows实例。 |
5432 | PostgreSQL | PostgreSQL数据库的对外提供服务的端口 |
6379 | Redis | Redis数据库的对外提供服务的端口 |
本文介绍如何在GIC控制台上创建一个安全组。
如果您要创建安全组,请确保您已有可用的VDC。
1.登录GIC控制台。
2.在左侧导航栏,单击安全服务>安全组。
3.点击右上角“创建新的安全组”按钮。
4.在创建安全组页面,配置安全组属性。
5.填写安全组名称和描述,简短地描述安全组,方便后期管理。
6.选择网络类型。(公网/私网)
7.确认信息,点击“确认创建”。
说明:需要注意的是,网络类型分为公网和私网,创建一个公网类型的安全组,这个安全组只能绑定到VDC的公网网络上,同理,私网的安全组只能绑定到VDC的私网网络上。
创建成功后,安全组列表中新增了一个安全组。
• 您可以通过添加安全组规则,允许或禁止安全组内的实例对公网或私网的访问。具体操作,请参见添加安全组规则。
• 您可以根据业务需要,将云服务器实例加入一个或多个安全组。具体操作,请参见实例加入安全组。
您可以通过添加安全组规则,允许或禁止安全组内的实例对公网或私网的访问。
添加安全组规则之前,请确认以下信息:
• 您已经创建了一个安全组。具体操作,请参见创建安全组。
• 您已经知道云服务器实例需要允许或禁止哪些公网或内网的访问。更多有关安全组规则设置的应用案例,请参见安全组应用案例。
本文内容适用于以下场景:
• 当您在运营应用的过程中发现部分请求来源有恶意攻击行为,您可以添加拒绝访问的安全组规则实行隔离策略。
添加安全组规则之前,请了解以下内容:
首云在您创建安全组时将为您默认设置6条安全组规则,如下图所示。前4条将为您开启部分常用端口,5条和6条将为您提前禁止全网段(除去10000~65535端口外)入方向端口的访问。无必要情况请勿轻易删除此6条安全规则!
1.登录GIC控制台。
2.在左侧导航栏,单击安全服务>安全组。
3.在列表中找到您需要添加安全组规则的安全组,点击操作列中的“配置规则”图标。
4.点击右上角“创建新的安全规则”按钮。
5.在创建新的安全规则界面,填写信息。
6.填写安全规则描述,方便后期管理。
7.设置操作“允许/禁止”。
8.设置流量方向“入方向/出方向/双向”。
说明:在选择“双向”的情况下,一条安全规则输入多个IP地址、端口和本机端口最多生成1000个组合,只占用1个优先级和一个规则数额,若超过1000请再手动进行创建。例如输入2个IP地址,3个端口,4个本机端口则生成2*3*4=24个组合。
9.勾选您需要的常用TCP端口。适用于无需设置ICMP协议规则,并通过勾选多个端口便能完成操作的场景。快速添加提供了SSH 22、telnet 23、HTTP 80、HTTPS 443、MS SQL 1433、Oracle 1521、MySQL 3306、RDP 3389、PostgreSQL 5432和Redis 6379的应用端口设置。您可以同时勾选一个或多个端口。协议类型和端口范围的关系参见下表1。
说明:上网临时端口(10000-65535)此端口为默认安全规则第5所设置的内容。若您删除了默认规则中的第5条(临时上网端口),请在此勾选“上网临时端口”复选框!若您没有删除默认规则中的第5条(临时上网端口),请不要勾选“上网临时端口”复选框!
10.选择协议(TCP/UDP/ICMP),自定义输入云服务器端口。多个端口以英文逗号隔开。例如此处填写80且绑定为A云服务器,则本条规则只针对A云服务器的80端口生效。
说明:若您在常用端口中已选择某个端口,在自定义端口请勿重复填写!
11.请输入IP地址段,多个IP段以英文 ; 隔开,例如:10.10.10.1/32;10.11.11.1/28,其中0.0.0.0/0代表所有IP所有端口。
12.请输入优先级。输入1-1000之间的数字,优先级高的先执行,数值越小,代表优先级越高。优先级数字不允许重复。
13.确认信息,点击“确认创建”。
表1:协议类型和端口范围关系表
协议类型 | 端口显示范围 | 应用场景 |
---|---|---|
全部 | 0,表示不限制端口。不能设置。 | 可用于完全互相信任的应用场景。 |
全部ICMP | 0,表示不限制端口。不能设置。 | 使用ping程序检测实例之间的通信状况。 |
自定义TCP 自定义UDP |
自定义端口范围,有效的端口值是1 ~ 65535。 | 可用于允许或拒绝一个或几个连续的端口。 |
SSH | 22/22 | 用于SSH远程连接到Linux实例。 |
TELNET | 23/23 | 用于Telnet远程登录云服务器实例。 |
HTTP | 80/80 | 云服务器实例作为网站或Web应用服务器。 |
HTTPS | 443/443 | 云服务器实例作为支持HTTPS协议的网站或Web应用服务器。 |
MS SQL | 1433/1433 | 云服务器实例作为MS SQL服务器。 |
Oracle | 1521/1521 | 云服务器实例作为Oracle SQL服务器。 |
MySQL | 3306/3306 | 云服务器实例作为MySQL服务器。 |
RDP | 3389/3389 | 用于通过远程桌面协议连接到Windows实例。 |
PostgreSQL | 5432/5432 | 云服务器实例作为PostgreSQL服务器。 |
Redis | 6379/6379 | 云服务器实例作为Redis服务器。 |
添加完成后,在安全组规则列表中查看已添加的安全组规则。安全组规则的变更会自动应用到安全组内的云服务器实例上,建议您立即测试是否生效。
添加安全组规则之前,请确认以下信息:
• 您必须已经成功创建云服务器实例。
• 需要先创建VDC网络后才能进行绑定。
• 实例加入安全组时,目标安全组的网络类型与实例的网络类型必须一致。
1.登录GIC控制台。
2.在左侧导航栏,单击安全服务>安全组。
3.在列表中找到您需要绑定实例的安全组,点击操作列中的“云服务器网络管理”图标。
4.点击右上角“绑定新的云服务器网络”按钮。
5.在新的绑定对话框中,选择信息。
6.选择节点。
7.选择VDC。
8.选择网络。
9.选择当前选择节点和网络的云服务器。
10.确认信息。
11.点击“确认绑定”。
说明:加入安全组后,安全组规则对云服务器实例自动生效。
若您需要更换实例的安全组,您需要先移出当前的安全组,并加入新的安全组。具体操作请参考移出安全组和实例加入安全组。请确保实例加入安全组时,目标安全组的网络类型与实例的网络类型一致。
说明:安全组会影响实例的网络连通,您在替换安全组前请确认已经调试好目标安全组,以免影响业务使用。
如果您想查看您在一个地域下创建的所有安全组,您可以查询安全组列表。
1.登录GIC控制台。
2.在左侧导航栏,单击安全服务>安全组。
3.请通过以下任一方式查询您所需要的安全组。
A.选择安全组类型,筛选出您所需要的安全组。
B.填写安全组名称,可查询到该名称对应的安全组。
C.在列表中查找您所需要的安全组。
如果您想修改安全组的名称和描述信息,您可以修改安全组属性。
您已经创建了安全组。
1.登录GIC控制台。
2.在左侧导航栏,单击安全服务>安全组。
3.点击安全组列表右侧操作列的图标 下的“修改”按钮。
4.在弹出的对话框中,修改安全组名称和描述。
5.确认信息,点击“确定修改”。
如果您想快速创建安全组,您可以克隆安全组。克隆网络安全组操作将复制安全组内选定规则并产生一个新的安全组,绑定的云服务器网卡不会被克隆,您需要写入新的安全组名称和描述。
您已经创建了安全组。
如下场景,您可能需要克隆安全组:
• 假设您已经创建了一个安全组A,此时您需要对其他安全组使用与A完全相同的规则或A中已有的规则,您可以直接将A克隆到安全组B,而不需要从零开始创建安全组B。
• 如果您需要对一个线上业务执行新的安全组规则,您可以克隆原来的安全组作为备份。
1.登录GIC控制台。
2.在左侧导航栏,单击安全服务>安全组。
3.点击安全组列表右侧操作列的图标 下的“克隆”按钮。
4.在弹出的对话框中,填写新的安全组名称和描述。
5.选择需要克隆的安全规则。
6.确认信息,点击“确定克隆”。
说明:克隆时,安全组内的规则进行克隆 但是绑定的VDC网络不进行克隆。且克隆的时候安全组类型不会被改变,例如之前是私网类型的安全组克隆过后新生成的还是私网类型的安全组。
1.登录GIC控制台。
2.在左侧导航栏,单击安全服务>安全组。
3.点击安全组列表右侧操作列的“配置规则”图标。
4.找到您需要克隆的安全规则,点击右侧操作列中间的“克隆”图标。
5.您可以修改您需要的信息,无需重新输入描述、IP地址、选择操作和方向。
6.设置新的优先级。
7.确认信息,点击“确认创建”。
创建成功后,对话框会自动关闭。您可以在安全组列表里看到克隆出来的新安全组或在安全规则列表里看到克隆出来的新安全规则。
您可以根据业务需要,将云服务器实例移出安全组,执行解绑操作。解绑后云服务器网络将不再受安全组的网络限制,建议您在操作前充分测试,确保移出实例后业务可以正常运行。
1.登录GIC控制台。
2.在左侧导航栏,单击安全服务>安全组。
3.在列表中找到您需要绑定实例的安全组,点击操作列中的“云服务器网络管理”图标。
4.在列表中找到您需要解绑的云服务器,在右侧操作列点击“解绑”按钮。
5.若您想批量解绑云服务器,请勾选相应的云服务器并点击右上方的“批量解绑”。
6.确认信息,点击确认。
如果您的业务已经不再需要一个或多个安全组,您可以删除安全组。安全组删除后,组内所有安全组规则同时被删除。但是当安全组绑定有云服务器实例时不允许删除,需要将所有实例解绑后才能删除。
若您需要立即删除,请点击强制删除。强制删除点击确认后将直接解绑该安全组内所有云服务器实例,直接删除安全组及安全组内规则,该操作可能对您的业务产生影响,请谨慎进行点击。
1.登录GIC控制台。
2.在左侧导航栏,单击安全服务>安全组。
3.点击安全组列表右侧操作列的图标 下的“删除”或“强制删除”。
4.确认信息,点击“确定”。
删除成功后,对话框会自动关闭。安全组里被删除的安全组将会消失。
添加安全组规则后,您可以在控制台上查询安全组规则的详细信息。
请确认您已创建了安全组,并且已在安全组中添加了安全组规则。
1.登录GIC控制台。
2.在左侧导航栏,单击安全服务>安全组。
3.在列表中找到您需要找到需要查询规则的安全组,点击操作列中的“配置规则”图标。
4.在页面上方可进行安全规则的筛选,通过操作,流量方向,协议,端口或IP地址。
安全组规则设置不当会造成严重的安全隐患。您可以修改安全组中不合理的安全组规则优先级,保证云服务器实例的网络安全。您同样可以修改安全组规则的描述,方便管理和查找。
请确认您已创建了安全组,并且已在安全组中添加了安全组规则。
1.登录GIC控制台。
2.在左侧导航栏,单击安全服务>安全组。
3.在列表中找到您需要找到需要修改规则优先级的安全组,点击操作列中的“配置规则”图标。
4.查找并勾选1条以上需要更改规则优先级的安全组。
5.点击右上方的“批量修改优先级”按钮。
6.在弹出的对话框中修改优先级,注意优先级不能有重复。
7.确认信息,点击确定。
1.登录GIC控制台。
2.在左侧导航栏,单击安全服务>安全组。
3.在列表中找到您需要找到需要修改规则描述的安全组,点击操作列中的“配置规则”图标。
4.查找需要更改规则描述的安全组规则。
5.点击右侧操作列的“修改”按钮。
6.在弹出的对话框中修改描述。
7.确认信息,点击确定。
如果您想给同样的IP地址开通安全规则,您可以克隆安全组规则。克隆安全组规则将复制安全组描述、IP地址、操作和流量方向,您需要选择或输入端口并设置新的优先级。
您已经创建了安全组和安全组规则。
1.登录GIC控制台。
2.在左侧导航栏,单击安全服务>安全组。
3.点击安全组列表右侧操作列的“配置规则”图标。
4.找到您需要克隆的安全规则,点击右侧操作列中间的“克隆”图标。
5.您可以修改您需要的信息,无需重新输入描述、IP地址、选择操作和方向。
6.设置新的优先级。
7.确认信息,点击“确认创建”。
创建成功后,对话框会自动关闭。您可以在安全规则列表里看到克隆出来的新安全规则。
如果您不再需要某个安全组规则,可以删除安全组规则。
• 请确认您已创建了安全组,并且已在安全组中添加了安全组规则。
• 请确认您的云服务器实例不需要允许或禁止哪些公网访问或内网访问。
1.登录GIC控制台。
2.在左侧导航栏,单击安全服务>安全组。
3.在列表中找到您需要找到需要删除规则的安全组,点击操作列中的“配置规则”图标。
4.查找并勾选需要删除规则的安全组。
5.点击右上方的“批量删除”/右侧操作列的“删除”图标按钮。
6.在弹出的对话框中确认信息,点击确认。