您可以通过添加安全组规则,允许或禁止安全组内的ECS实例对公网或私网的访问。

前提条件

添加安全组规则之前,您已经规划好ECS实例需要允许或禁止哪些公网或内网的访问。更多有关安全组规则设置的应用案例,请参见安全组应用案例

背景信息

安全组负责管理是否放行来自公网或者内网的访问请求。为安全起见,安全组入方向大多采取拒绝访问策略。如果您使用的是默认安全组,则系统会给部分通信端口自动添加安全组规则。

本文内容适用于以下场景:
  • 当您的应用需要与ECS实例所在安全组之外的网络相互通信,但请求发起后进入长时间等待状态,您需要优先设置安全组规则。
  • 当您在运营应用的过程中发现部分请求来源有恶意攻击行为,您可以添加拒绝访问的安全组规则实行隔离策略。
添加安全组规则之前,请了解以下内容:
  • 普通安全组在未添加任何安全组规则之前,出方向允许所有访问,入方向拒绝所有访问。
  • 企业安全组在未添加任何安全组规则之前,出方向和入方向都拒绝所有访问。同时不支持授权给其他安全组。
  • 安全组规则支持IPv4安全组规则和IPv6安全组规则。
  • 每个安全组的入方向规则与出方向规则的总数不能超过200条。

更多信息,请参见安全组概述

操作步骤

  1. 进入安全组页面。
    1. 登录ECS管理控制台
    2. 在左侧导航栏,选择网络与安全 > 安全组
    3. 在顶部菜单栏左上角处,选择地域。
  2. 找到目标安全组,在操作列中,单击配置规则
  3. 选择安全组规则的规则方向。
    网络类型 选择规则方向
    专有网络VPC
    • 入方向:同时控制公网和内网入方向
    • 出方向:同时控制公网和内网出方向
    经典网络
    • 公网入方向
    • 公网出方向
    • 入方向:内网入方向
    • 出方向:内网出方向
  4. 安全组规则页面上,添加安全组规则。
    • 方式一:快速添加安全组规则

      适用于快速设置常用的TCP协议规则,您单击快速添加后,只需要设置授权策略授权对象,并选中一个或多个端口便能完成。

    • 方式二:手动添加安全组规则

      支持自定义配置授权策略、优先级、协议类型等信息。具体操作,如下所示。

    1. 单击手动添加
    2. 在规则列表中,配置新增的安全组规则。
      名称 描述
      授权策略
      • 允许:放行该端口相应的访问请求。
      • 拒绝:直接丢弃数据包,不会返回任何回应信息。

      如果两个安全组规则其他都相同只有授权策略不同,则拒绝授权生效,允许策略不生效。

      优先级 优先级数值越小,优先级越高,取值范围为1~100。
      协议类型 协议类型包括:
      • 全部:支持全部协议类型。
      • 自定义TCP:支持TCP协议。
      • 自定义UDP:支持UDP协议。
      • 全部ICMP(IPv4):支持ICMP(IPv4)协议。
      • 全部ICMP(IPv6):支持ICMP(IPv6)协议。
      • 全部GRE:支持GRE协议。
      关于协议类型端口范围的更多信息,请参见添加安全组规则常用端口
      端口范围 协议类型自定义TCP自定义UDP时,可手动设置端口访问。多个端口范围以英文半角逗号分隔,例如22/23,443/443
      授权对象 支持以下方式设置授权对象。
      • 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介绍,请参见什么是CIDR?

      • 安全组
        安全组访问只对内网有效。授权本账号或其他账号下某个安全组中的ECS实例访问本安全组中的ECS实例,实现内网互通。
        说明 企业安全组不支持授权安全组访问。
        • 本账号授权:填写同账号下的目标安全组ID。如果是专有网络VPC类型的安全组,目的安全组必须在同一个专有网络VPC中。
        • 跨账号授权:填写目标阿里云账号ID和目标安全组ID(格式为目标阿里云账号ID/目标安全组ID)。在账号管理 > 安全设置里查看阿里云账号ID。
      • 前缀列表

        前缀列表是一些网络前缀(CIDR地址块的简称)的集合,仅支持VPC网络。您选择前缀列表后,这条安全组规则将会对前缀列表中的所有CIDR地址块生效。更多信息,请参见前缀列表概述创建前缀列表

        选择前缀列表后,前缀列表的最大条目容量会占用安全组规则额度。例如,某前缀列表的最大条目容量设置为100个,如果安全组引用该前缀列表,就会占用该安全组100个规则额度,即使该前缀列表中已有的条目数未达到100条。

      设置注意事项如下:
      • 支持多组授权对象,用英文半角逗号(,)隔开,最多支持10组授权对象。
      • 如果填写0.0.0.0/0(IPv4)或者::/0(IPv6),表示所有IP地址的访问,设置时请务必谨慎。
      • 出于安全性考虑,经典网络的内网入方向规则,授权对象优先使用安全组。如果使用IP地址,则只能授权单一IP地址,不能使用CIDR地址块。
      描述 安全组规则描述信息。
    3. 在规则的操作列中,单击保存
    以下示例演示了如何在安全组添加安全组规则。 添加安全组规则

执行结果

添加完成后,在安全组规则列表中查看已添加的安全组规则。安全组规则的变更会自动应用到安全组内的ECS实例上,建议您立即测试是否生效。 刷新安全组

常见问题

  • 问题:为什么我配置安全组后还无法访问服务?
    控制台安全组放行某个端口,只能说明安全组没有限制这个端口的访问,不能说明这个端口已经开启。 如需外网访问ECS服务器的端口需要满足以下三个必要条件:
    • 安全组规则放行该端口。
    • 对应端口的程序软件是启动运行状态,并且监听地址为0.0.0.0(您可通过执行netstat -ano |findstr 端口号命令来检测端口是否处于监听状态)。
    • 已关闭ECS实例内部防火墙,或者防火墙已放行该端口。

    设置安全组规则后如果发现业务无法访问,您需要排查业务服务是否启动、服务端口和安全组规则是否一致等问题。更多信息,请参见安全组常见问题处理

  • 问题:为什么我无法使用SMTP 25自建邮箱服务器?

    公网出方向的SMTP端口25默认受限,无法通过安全组规则打开。如果您需要使用SMTP 25端口,请自行规避安全风险,然后申请解封端口25。具体操作,请参见申请解封端口25

  • 问题:安全组中协议和端口之间是什么关系?

    安全组中协议和端口信息如下表所示。更多端口信息,请参见常用端口

    协议类型 端口显示范围 应用场景
    全部 -1/-1,表示不限制端口。不支持设置。 可用于完全互相信任的应用场景。
    全部 ICMP(IPv4) -1/-1,表示不限制端口。不支持设置。 使用ping程序检测ECS实例之间的通信状况。
    全部 ICMP(IPv6) -1/-1,表示不限制端口。不支持设置。 使用ping6程序检测ECS实例之间的通信状况。
    全部 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服务器。