实例运维端口应限制IP访问来源

创建实例时应避免安全组开放运维端口的所有访问来源IP授权,安全组应仅开启必要端口并限制仅允许从指定IP进行访问。

安全风险

云服务器的运维端口,如Linux系统的SSH(22端口)和Windows系统的RDP(3389端口),是管理员远程管理服务器的“大门”。如果在安全组中将这些端口的访问权限设置为对所有IP(即0.0.0.0/0)开放,就等于将这扇大门向整个互联网敞开:

  • 暴力破解攻击: 攻击者可以利用自动化工具,持续不断地尝试使用常见用户名和密码组合来登录您的服务器。一旦成功,他们便能完全控制您的服务器。

  • 数据泄露与篡改: 入侵者可以窃取、修改您服务器上的核心业务数据,给您的业务带来直接损失。

  • 恶意软件植入: 服务器可能被用作僵尸网络的一部分(肉鸡),用于发起DDoS攻击、挖矿或作为进一步攻击其他网络的跳板。

最佳实践

通过安全组,仅开启必要的端口,并且端口限制只能允许指定来源IP访问。

控制台

  1. 创建安全组,入方向规则避免运维端口任意IP(即0.0.0.0/0)访问。

    image

  2. 通过实例购买页创建实例时,选择已创建的安全组。

    image.png

API

  1. 使用CreateSecurityGroup接口创建一个新的安全组,再通过AuthorizeSecurityGroup接口增加必要的入方向规则,可指定SourceCidrIp参数限制来源访问IP。

  2. 使用RunInstances或者CreateInstance接口创建实例时,指定SecurityGroupId参数来加入安全组。

合规能力

检查:是否存在运维端口所有IP开放的安全组

ECS使用成熟度评估与洞察

  1. 前往ECS使用成熟度评估与洞察

  2. 选择安全性能力页签,单击检查项安全组的特定端口无限制访问,可以查看特定端口任意IP(即0.0.0.0/0)访问的实例。

云安全中心

  1. 前往云安全中心控制台

  2. 在左侧菜单栏选择风险治理 > 云安全态势管理,选择云产品配置风险页签,查找名为22端口禁止任意IP访问、3389端口禁止任意IP访问的检查项,单击操作列的扫描按钮。

    若状态显示为未通过,表示存在开启任意IP访问223389端口的实例,可单击详情进行查看。

拦截:禁止运维端口任意IP访问的实例创建操作

在组织或账户层面通过RAM Policy策略,主动拦截安全组中端口任意IP访问的规则。

  • 针对企业用户:

    1. 使用阿里云主账号登录资源目录控制台,单击左侧菜单栏的管控策略创建自定义权限策略,粘贴以下JSON内容。

      限制端口任意IP访问的实例创建、安全组创建与修改操作。

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Deny",
            "Action": [
              "ecs:AuthorizeSecurityGroup",
              "ecs:ConfigureSecurityGroupPermissions",
              "ecs:ModifySecurityGroupRule"
            ],
            "Resource": "*",
            "Condition": {
              "StringLike": {
                "ecs:SecurityGroupIpProtocols": [
                  "TCP"
                ]
              },
              "CIDRInRange": {
                "ecs:SecurityGroupSourceCidrIps": [
                  "0.0.0.0/0"
                ]
              }
            }
          },
          {
            "Effect": "Deny",
            "Action": [
              "ecs:CreateInstance",
              "ecs:RunInstances"
            ],
            "Resource": "*",
            "Condition": {
              "Bool": {
                "ecs:NotSpecifySecureGroupId": [
                  "true"
                ]
              }
            }
          }
        ]
      }
    2. 在资源目录中选择合适的节点绑定策略,策略将对目录下的账号产生拦截效果。

  • 针对非企业用户:

    1. 使用阿里云主账号登录RAM控制台,单击左侧菜单栏的权限策略,创建一条与上述内容相同的自定义策略。

    2. 通过管理权限策略授权将该条权限策略授权给RAM用户、RAM用户组或RAM角色。

修复:修改安全组规则

修改现有安全组规则,将授权对象从 0.0.0.0/0 更改为具体的、可信的IP地址段。

  1. 定位不安全的规则 使用检查部分的方法找到存在风险的安全组和规则。

  2. 修改规则 

    1. 前往ECS控制台-安全组,找到目标安全组,单击操作列的管理规则

    2. 找到对应的规则(例如,端口为22,授权对象为0.0.0.0/0的规则),单击编辑,将授权对象更新为可信来源IP,单击确定

重要

使用阿里云Workbench远程连接实例时,安全组入方向规则如下表所示。

授权策略

优先级

协议类型

端口范围

授权对象

允许

1

自定义TCP

  • Linux实例默认开放22端口:选择SSH(22)

  • Windows实例默认开放3389端口:选择RDP(3389)

  • 如果您手动开放了其他端口:请手动输入端口范围。

  • 如果通过实例的公网IP(包括固定公网IPEIP)连接:添加47.96.60.0/24、118.31.243.0/24、8.139.112.0/24、8.139.99.192/26

  • 如果通过实例的专有网络私网IP连接:添加100.104.0.0/16。

为了安全和稳定,运维端口建议不要对公网IP(包括办公网出口)开放,请考虑开放VPC内网IP进行访问。更多信息,请参见安全组应用指导和案例