更新时间:2024-07-24 GMT+08:00

安全组配置示例

当您在VPC子网内创建实例(云服务器、云容器、云数据库等)时,您可以使用系统提供的默认安全组default,您也可以创建其他安全组。无论是默认安全组,还是您创建的安全组,您均可以在安全组内设置出方向和入方向规则,以此控制出入实例的流量。以下为您介绍一些常用的安全组的配置示例:

使用须知

在配置安全组规则之前,您需要先了解以下信息:

  • 不同安全组之间的实例默认网络隔离,无法互相访问。
  • 安全组默认拒绝所有来自外部的请求,即本安全组内的实例网络互通,外部无法访问安全组内的实例。

    您需要遵循白名单原则添加安全组入方向规则,允许来自外部的特定请求访问安全组内的实例。

  • 安全组的出方向规则一般默认全部放通,即允许安全组内的实例访问外部。
    如果出方向规则被删除,将会导致安全组内实例无法正常访问外部,您可以参考表1重新添加规则。
    表1 安全组默认出方向规则

    方向

    协议端口

    目的地址

    描述

    出方向

    全部

    0.0.0.0/0

    针对全部IPv4协议,允许安全组内的实例可访问外部任意IP和端口。

通过本地服务器远程登录云服务器

安全组默认拒绝所有来自外部的请求,如果您需要通过本地服务器远程登录安全组内的云服务器,那么需要根据您的云服务器操作系统类型,在安全组入方向添加对应的规则。

  • 通过SSH远程登录Linux云服务器,需要放通SSH(22)端口,请参见表2
  • 通过RDP远程登录Windows云服务器,需要放通RDP(3389)端口,请参见表3
    表2 通过SSH远程登录Linux云服务器

    方向

    协议端口

    源地址

    入方向

    自定义TCP: 22

    IP地址:0.0.0.0/0

    表3 通过RDP远程登录Windows云服务器

    方向

    协议端口

    源地址

    入方向

    自定义TCP: 3389

    IP地址:0.0.0.0/0

    源地址设置为0.0.0.0/0表示允许所有外部IP远程登录云服务器,为了确保安全,建议您遵循最小原则,根据实际情况将源IP设置为特定的IP地址,配置示例请参见表4

    表4 通过特定IP地址远程登录云服务器

    云服务器类型

    方向

    协议端口

    源地址

    Linux云服务器

    入方向

    自定义TCP: 22

    IP地址:192.168.0.0/24

    Windows云服务器

    入方向

    自定义TCP: 3389

    IP地址:10.10.0.0/24

在本地服务器远程连接云服务器上传或者下载文件(FTP)

安全组默认拒绝所有来自外部的请求,如果您需要在本地服务器远程连接云服务器上传或者下载文件,那么您需要开通FTP(20、21)端口。

表5 在本地服务器远程连接云服务器上传或者下载文件

方向

协议端口

源地址

入方向

自定义TCP: 20-21

IP地址:0.0.0.0/0

您需要在弹性云服务器上先安装FTP服务器程序,再查看20、21端口是否正常工作。

在云服务器上搭建网站对外提供Web服务

安全组默认拒绝所有来自外部的请求,如果您在云服务器上搭建了可供外部访问的网站,则您需要在安全组入方向添加对应的规则,放通对应的端口,例如HTTP(80)、HTTPS(443)。

表6 在云服务器上搭建网站对外提供Web服务

方向

协议端口

源地址

入方向

自定义TCP: 80

IP地址:0.0.0.0/0

入方向

自定义TCP: 443

IP地址:0.0.0.0/0

使用ping命令验证网络连通性

ICMP协议用于网络消息的控制和传递,因此在进行一些基本测试操作之前,需要开通ICMP协议访问端口。比如,您需要在某个个人PC上使用ping命令来验证云服务器的网络连通性,则您需要在云服务器所在安全组的入方向添加以下规则,放通ICMP端口。

表7 使用ping命令验证网络连通性

方向

协议端口

源地址

入方向

ICMP: 全部

IP地址:0.0.0.0/0

实现不同安全组的实例内网网络互通

同一个VPC内,位于不同安全组内的实例网络不通。如果您需要在同一个VPC内的实例之间共享数据,比如安全组sg-A内的云服务器访问安全组sg-B内的MySQL数据库,您需要通过在安全组sg-B中添加一条入方向规则,允许来自安全组sg-A内云服务器的内网请求进入。

表8 实现不同安全组的实例网络互通

方向

协议端口

源地址

入方向

自定义TCP: 3306

安全组:sg-A

云服务器提供数据库访问服务

安全组默认拒绝所有来自外部的请求,如果您在云服器上部署了数据库服务,允许其他实例通过内网访问数据库服务,则您需要在部署数据库服务器所在的安全组内,添加入方向规则,放通对应的端口,实现其他实例通过内网获取数据库数据的请求。常见的数据库类型机器对应的端口如下:
  • MySQL(3306)
  • Oracle(1521)
  • MS SQL(1433)
  • PostgreSQL(5432)
  • Redis(6379)
表9 云服务器提供数据库访问服务

方向

协议端口

源地址

描述

入方向

自定义TCP: 3306

安全组:sg-A

允许安全组sg-A内云服务器访问MySQL数据库服务。

入方向

自定义TCP: 1521

安全组:sg-B

允许安全组sg-B内云服务器访问Oracle数据库服务。

入方向

自定义TCP: 1433

IP地址:172.16.3.21/32

允许私网IP地址为172.16.3.21的云服务器访问MS SQL数据库服务。

入方向

自定义TCP: 5432

IP地址:192.168.0.0/24

允许私网IP地址属于192.168.0.0/24网段的云服务器访问PostgreSQL数据库服务。

本示例中源地址提供的配置仅供参考,请您根据实际需求设置源地址。

限制云服务器访问外部网站

安全组的出方向规则一般默认全部放通,默认规则如表11所示。如果您需要限制服务器只能访问特定网站,则按照如下要求配置:

  1. 首先,您需要遵循白名单规则,在安全组出方向规则中添加指定的端口和IP地址。
    表10 限制云服务器访问外部网站

    方向

    协议端口

    目的地址

    描述

    出方向

    自定义TCP: 80

    IP地址:132.15.XX.XX

    允许安全组内云服务器访问指定的外部网站,网站地址为http://132.15.XX.XX:80。

    出方向

    自定义TCP: 443

    IP地址:145.117.XX.XX

    允许安全组内云服务器访问指定的外部网站,网站地址为https://145.117.XX.XX:443。

  2. 其次,删除安全组出方向中原有放通全部流量的规则,如表11所示。
    表11 安全组默认出方向规则

    方向

    协议端口

    目的地址

    描述

    出方向

    全部

    0.0.0.0/0

    针对全部IPv4协议,允许安全组内的实例可访问外部任意IP和端口。