本文汇总了云服务器ECS安全方面的常见问题,涵盖了安全组配置、安全组规则设定、主机处罚与解禁流程、资源限额管理等问题。
安全组问题
安全组规则问题
主机处罚与解禁问题
限额问题
什么是安全组?
安全组是一种虚拟防火墙。用于设置单台或多台云服务器的网络访问控制,它是重要的网络安全隔离手段,您可以在云端划分安全域。
每台ECS实例至少属于一个安全组,在创建实例时必须指定安全组。安全组类型分为普通安全组和企业安全组,更多信息,请参见安全组概述。
为什么要在创建ECS实例时选择安全组?
在创建ECS实例之前,必须选择安全组来划分应用环境的安全域,授权安全组规则进行合理的网络安全隔离。
如果您在创建ECS实例时不选择安全组,创建的ECS实例会分配到一个固定的安全组(即默认安全组),建议您将实例移出默认安全组并加入新的安全组,以实现网络安全隔离。
创建ECS实例前,未创建安全组怎么办?
如果您在创建ECS实例之前未创建安全组,您可以选择默认安全组。默认的安全组放行了常用端口,如TCP 22端口、3389端口等。
为什么ECS实例加入安全组时提示规则数量超限?
作用于一台ECS实例(主网卡)的安全组规则数量上限 = 该实例允许加入的安全组数量 * 每个安全组的最大规则数量。
如果提示加入安全组失败,作用在该实例上的安全组规则数量已达上限,表示当前ECS实例上的规则总数已经超过数量上限。建议您重新选择其他安全组。
专有网络VPC类型ECS实例的安全组数量上限调整后,只对调整日期后新增的安全组生效吗?
不是。该上限调整对调整日期之前和之后创建的所有专有网络VPC类型的ECS实例的安全组都生效。
安全组在什么情况下会使用默认安全组规则?
在以下情况中会使用默认安全组规则:
通过ECS管理控制台在一个地域首次创建ECS实例时,如果您尚未创建安全组,可以选择系统自动创建的默认安全组,类型为普通安全组。默认安全组采用默认安全规则。入方向放行ICMP协议、SSH 22端口、RDP 3389端口,授权对象为全网段(0.0.0.0/0),优先级为100,您还可以勾选放行HTTP 80端口和HTTPS 443端口。出方向允许所有访问。
您在ECS管理控制台上创建安全组时默认的安全组规则,入方向放行ICMP协议、SSH 22端口、RDP 3389端口、HTTP 80端口和HTTPS 443端口,授权对象为全网段(0.0.0.0/0)。
不同安全组的ECS实例如何实现内网互通?
同一账号或者不同账号下两个安全组之间的实例默认内网都是隔离的。不同安全组之间实现内网互通的应用案例,请参见实现不同安全组的实例内网互通和不同安全组的经典网络实例内网互通。
同一安全组的ECS实例如何实现内网隔离?
加入同一个普通安全组内的实例之间默认允许所有协议、端口互相访问,您可以修改普通安全组内的网络连通策略,实现组内隔离。具体操作,请参见普通安全组内网络隔离。
同一个ECS实例中的两块弹性网卡如何进行流量隔离?
ECS实例绑定了两块弹性网卡,如果您尝试使用安全组将这两块网卡进行流量隔离,会发现无法使用安全组实现同一个ECS实例中两块网卡的流量隔离。原因是,安全组作用于ECS实例操作系统之外的虚拟网络设备上,默认情况下,同一ECS实例两块网卡的流量会在操作系统内部进行路由和转发,两块弹性网卡间的网络流量不会经过安全组,因此无法使用安全组进行流量隔离。
您可以使用操作系统的命名空间(namespace)机制,将ECS实例的两块网卡加入到不同的namespace,使得两块网卡之间的网络流量发往操作系统之外,这样网络流量才会经过安全组,才能够使用安全组进行流量隔离。
为什么我配置安全组后还是无法访问服务?
控制台安全组放行某个端口,只能说明安全组没有限制这个端口的访问,不能说明这个端口已经开启。如需外网访问ECS服务器的端口,需要满足以下三个必要条件:
安全组规则放行该端口。
对应端口的程序软件是启动运行状态,并且监听地址为0.0.0.0(您可通过执行netstat -ano |findstr 端口号命令来检测端口是否处于监听状态)。
已关闭ECS实例内部防火墙,或者防火墙已放行该端口。
弹性网卡如何加入到安全组?
您可以通过变更ECS实例所在的安全组来更新弹性网卡主网卡的安全组,也可以修改辅助弹性网卡的属性来修改弹性网卡所属的安全组。具体操作,请参见修改弹性网卡属性。
普通安全组和企业级安全组是否支持相互转换?
不支持,普通安全组和企业级安全组无法相互转换。如需更换安全组类型,您可通过新建安全组并克隆安全组规则以更改安全组类型。具体操作,请参见创建安全组、导出和导入安全组规则、安全组与ECS实例关联的管理和安全组与弹性网卡关联的管理。
什么场景下我需要添加安全组规则?
在以下场景中,您需要添加安全组规则,以确保ECS实例能够被正常访问:
ECS实例所在的安全组没有添加过安全组规则,也没有默认安全组规则。当ECS实例需要访问公网,或访问当前地域下其他安全组中的ECS实例时,您需要添加安全组规则。
搭建的应用没有使用默认端口,而是自定义了一个端口或端口范围。此时,您必须在测试应用连通前放行自定义的端口或端口范围。例如,您在ECS实例上搭建Nginx服务时,通信端口选择监听在TCP 8000,但您的安全组只放行了80端口,则您需要添加安全规则,保证Nginx服务能被访问。
其他场景,请参见安全组应用案例。
安全组规则中协议和端口之间是什么关系?
添加安全组规则时,您必须指定通信端口或端口范围,然后安全组根据允许或拒绝策略决定是否转发数据到ECS实例。
安全组规则中协议和端口信息如下表所示。更多端口信息,请参见常用端口。
协议类型 | 端口显示范围 | 应用场景 |
全部 | -1/-1,表示不限制端口。不支持设置。 | 可用于完全互相信任的应用场景。 |
全部 ICMP(IPv4) | -1/-1,表示不限制端口。不支持设置。 | 使用 |
全部 GRE | -1/-1,表示不限制端口。不支持设置。 | 用于VPN服务。 |
自定义 TCP | 自定义端口范围,有效的端口值是1 ~ 65535。 必须采用<开始端口>/<结束端口>的格式。例如80/80表示端口80,1/22表示1到22端口。 | 可用于允许或拒绝一个或几个连续的端口。 |
自定义 UDP | 自定义端口范围,有效的端口值是1 ~ 65535。 必须采用<开始端口>/<结束端口>的格式。例如80/80表示端口80,1/22表示1到22端口。 | 可用于允许或拒绝一个或几个连续的端口。 |
其中,TCP协议类型端口的常用应用场景如下表所示。
应用场景 | 协议类型 | 端口显示范围 | 说明 |
连接服务器 | SSH | 22/22 | 用于SSH远程连接到Linux实例。连接ECS实例后您可以修改端口号,具体操作,请参见修改服务器默认远程端口。 |
TELNET | 23/23 | 用于Telnet远程登录ECS实例。 | |
RDP | 3389/3389 | 用于通过远程桌面协议连接到Windows实例。连接ECS实例后您可以修改端口号,具体操作,请参见修改服务器默认远程端口。 | |
网站服务 | HTTP | 80/80 | ECS实例作为网站或Web应用服务器。 |
HTTPS | 443/443 | ECS实例作为支持HTTPS协议的网站或Web应用服务器。 | |
数据库 | MS SQL | 1433/1433 | ECS实例作为MS SQL服务器。 |
Oracle | 1521/1521 | ECS实例作为Oracle SQL服务器。 | |
MySQL | 3306/3306 | ECS实例作为MySQL服务器。 | |
PostgreSQL | 5432/5432 | ECS实例作为PostgreSQL服务器。 | |
Redis | 6379/6379 | ECS实例作为Redis服务器。 |
安全组规则授权对象中的IP地址和CIDR地址块是什么关系?
IP地址是单一的IP地址,例如192.168.0.100、2408:4321:180:1701:94c7:bc38:3bfa:。CIDR地址块是IP地址段,例如192.168.0.0/24、2408:4321:180:1701:94c7:bc38:3bfa:***/128。
CIDR(Classless Inter-Domain Routing)是互联网中一种新的寻址方式,与传统的A类、B类和C类寻址模式相比,CIDR在IP地址分配方面更为高效。CIDR采用斜线记法,表示为:IP地址/网络ID的位数。
示例一:CIDR格式换算为IP地址网段
例如10.0.0.0/8,换算为32位二进制地址:00001010.00000000.00000000.00000000。其中/8表示8位网络ID,即32位二进制地址中前8位是固定不变的,对应网段为:00001010.00000000.00000000.00000000~00001010.11111111.11111111.11111111。则换算为十进制后,10.0.0.0/8表示:子网掩码为255.0.0.0,对应网段为10.0.0.0~10.255.255.255。
示例二:IP地址网段换算为CIDR格式
例如192.168.0.0~192.168.31.255,后两段IP换算为二进制地址:00000000.00000000~00011111.11111111,可以得出前19位(8*2+3)是固定不变的,则换算为CIDR格式后,表示为:192.168.0.0/19。
为什么无法访问TCP 25端口?
TCP 25端口是默认的邮箱服务端口。基于安全考虑,云服务器ECS的25端口默认受限,建议您使用465端口发送邮件。更多应用,请参见安全组应用案例。
为什么无法访问80端口?
如何排查80端口故障,请参见检查TCP 80端口是否正常工作。
为什么安全组里自动添加了很多内网相关的安全组规则?
以下两种情况可能导致您的安全组里自动添加了很多规则:
如果您访问过DMS,安全组中就会自动添加相关的规则。
如果您近期通过阿里云数据传输DTS功能迁移过数据,安全组中会自动添加DTS的服务IP地址相关的规则。
安全组规则配置错误会造成什么影响?
安全组配置错误会导致ECS实例在私网或公网与其他设备之间的访问失败,例如:
无法从本地远程连接(SSH)Linux实例或者远程桌面连接Windows实例。
无法远程
ping
ECS实例的公网IP。无法通过HTTP或HTTPS协议访问ECS实例提供的Web服务。
无法通过内网访问其他ECS实例。
安全组的入方向规则和出方向规则区分计数吗?
不区分。每个安全组的入方向规则与出方向规则的总数不能超过200。更多信息,请参见使用限制。
是否可以调整安全组规则的数量上限?
不可以,每个安全组最多可以包含200条安全组规则。一台ECS实例中的每个弹性网卡默认最多可以加入5个安全组,所以一台ECS实例的每个弹性网卡最多可以包含1000条安全组规则,能够满足绝大多数场景的需求。
如果当前数量上限无法满足您的使用需求,建议您按照以下步骤操作:
检查是否存在冗余规则。您也可以提交工单,阿里云技术支持将提供检查服务。
如果存在冗余规则,请清除冗余规则。如果不存在冗余规则,您可以创建多个安全组。
如果您已开通了云防火墙服务,也可以通过云防火墙创建VPC边界访问控制策略(管控两个VPC间的流量),减少ECS安全组规则的数量。有关VPC边界防火墙的详细内容,请参见VPC边界。
我配置的安全组规则,各规则的优先级排序是怎么样的?
优先级的取值范围为1~100,数值越小,代表优先级越高。
同类型安全组规则间的依赖优先级决定最终执行的规则。当ECS实例加入了多个安全组时,多个安全组会从高到低依次匹配规则。最终生效的安全组规则如下:
如果两条安全组规则只有授权策略不同:拒绝策略的规则生效,允许策略的规则不生效。
如果两条安全组规则只有优先级不同:优先级高的规则生效。
如何禁止RAM用户(子账号)配置安全组规则?
如果您需要禁止RAM用户(子账号)配置安全组规则,可以参考如下RAM配置,来禁用配置安全组规则的API接口。
{
"Version": "1",
"Statement": [
{
"Effect": "Deny",
"Action": [
"ecs:AuthorizeSecurityGroup",
"ecs:AuthorizeSecurityGroupEgress",
"ecs:RevokeSecurityGroup",
"ecs:RevokeSecurityGroupEgress",
"ecs:ModifySecurityGroupRule",
"ecs:ModifySecurityGroupEgressRule",
"ecs:ModifySecurityGroupPolicy",
"ecs:ModifySecurityGroupAttribute",
"ecs:ConfigureSecurityGroupPermissions"
],
"Resource": "*"
}
]
}
收到违法阻断网站整改通知,怎么办?
在互联网有害信息记录中,您可以查看存在有害信息的域名或URL、处罚动作、处罚原因及处罚时间。您在确认该域名或URL中的有害信息已经移除或不存在时,可以申请解除访问封禁。更多信息,请参见互联网有害信息。
收到对外攻击需要整改的通知,怎么办?
在处罚记录中,您可以查看详细的处罚结果、处罚原因及处罚时段。如果您不认同处罚结果,可以反馈申诉。收到您的处罚记录反馈后,阿里云将再次核验,确认处罚的正确性和有效性,并判断是否继续维持处罚或立即结束处罚。更多信息,请参见处罚列表。
如何查看资源的限额?
查看资源的使用限制和限额,请参见使用限制。