当您在VPC子网内创建实例(云主机、云容器、云数据库等)时,您可以使用系统提供的默认安全组default,您也可以创建其他安全组。无论是默认安全组,还是您创建的安全组,您均可以在安全组内设置出方向和入方向规则,以此控制出入实例的流量。
使用须知
在配置安全组规则之前,您需要先了解以下信息:
不同安全组之间的实例默认网络隔离,无法互相访问。
安全组默认拒绝所有来自外部的请求,即本安全组内的实例网络互通,外部无法访问安全组内的实例。您需要遵循白名单原则添加安全组入方向规则,允许来自外部的特定请求访问安全组内的实例。
安全组入方向规则的源地址设置为0.0.0.0/0或::/0,表示允许或拒绝所有外部IP地址访问您的实例,如果将“22、3389、8848”等高危端口暴露到公网,可能导致网络入侵,造成业务中断、数据泄露或数据勒索等严重后果。建议您将安全组规则设置为仅允许已知的IP地址访问。
安全组的出方向规则一般默认全部放通,即允许安全组内的实例访问外部。如果出方向规则被删除,将会导致安全组内实例无法正常访问外部,您可以参考下表重新添加配置。
方向 | 优先级 | 策略 | 类型 | 协议端口 | 目的地址 | 描述 |
---|---|---|---|---|---|---|
出方向 | 1 | 允许 | IPv4 | 全部 | 0.0.0.0/0 | 针对全部IPv4协议,允许安全组内的实例可访问外部任意IP和端口。 |
出方向 | 1 | 允许 | IPv6 | 全部 | ::/0 | 针对全部IPv6协议,允许安全组内的实例可访问外部任意IP和端口。 |
通过本地服务器远程登录云主机
安全组默认拒绝所有来自外部的请求,如果您需要通过本地服务器远程登录安全组内的云主机,那么需要根据您的云主机操作系统类型,在安全组入方向添加对应的规则。
通过SSH远程登录Linux云主机,需要放通SSH(22)端口。
通过RDP远程登录Windows云主机,需要放通RDP(3389)端口。
操作系统类型 | 方向 | 优先级 | 策略 | 类型 | 协议端口 | 源地址 |
---|---|---|---|---|---|---|
Linux | 入方向 | 1 | 允许 | IPv4 | 自定义TCP:22 | IP地址:0.0.0.0/0 |
Windows | 入方向 | 1 | 允许 | IPv4 | 自定义TCP:3389 | IP地址:0.0.0.0/0 |
注意源地址设置为0.0.0.0/0表示允许所有外部IP地址远程登录云主机,如果将当前端口暴露到公网,可能存在网络安全风险,建议您将源IP设置为已知的IP地址,配置实例请参考下表。
云主机类型 | 方向 | 优先级 | 策略 | 类型 | 协议端口 | 源地址 |
---|---|---|---|---|---|---|
Linux | 入方向 | 1 | 允许 | IPv4 | 自定义TCP: 22 | IP地址:192.168.0.0/24 |
Windows | 入方向 | 1 | 允许 | IPv4 | 自定义TCP: 3389 | IP地址:10.10.0.0/24 |
在本地服务器远程连接云主机上传或者下载文件
安全组默认拒绝所有来自外部的请求,如果您需要在本地服务器远程连接云主机上传或者下载文件,那么您需要开通FTP(20、21)端口。
方向 | 优先级 | 策略 | 类型 | 协议端口 | 源地址 |
---|---|---|---|---|---|
入方向 | 1 | 允许 | IPv4 | 自定义TCP:20-21 | IP地址:0.0.0.0/0 |
注意
源地址设置为0.0.0.0/0表示允许所有外部IP地址远程连接云主机上传或者下载文件,如果将当前端口暴露到公网,可能存在网络安全风险,建议您将源IP设置为已知的IP地址,配置示例请参见下表。
您需要在弹性云主机上先安装FTP服务器程序,再查看20、21端口是否正常工作。
在云主机上搭建网站对外提供Web服务
安全组默认拒绝所有来自外部的请求,如果您在云主机上搭建了可供外部访问的网站,则您需要在安全组入方向添加对应的规则,放通对应的端口,例如HTTP(80)、HTTPS(443)。
方向 | 优先级 | 策略 | 类型 | 协议端口 | 源地址 |
---|---|---|---|---|---|
入方向 | 1 | 允许 | IPv4 | 自定义TCP: 80 | IP地址:0.0.0.0/0 |
入方向 | 1 | 允许 | IPv4 | 自定义TCP: 443 | IP地址:0.0.0.0/0 |
注意端口80、443需要在天翼云备案中心完成备案后,才可放开流量通路。
使用ping命令验证网络连通性
ICMP协议用于网络消息的控制和传递,因此在进行一些基本测试操作之前,需要开通ICMP协议访问端口。比如,您需要在某个人PC上使用ping命令来验证云主机的网络连通性,则您需要在云主机所在安全组的入方向添加以下规则,放通ICMP端口。
方向 | 优先级 | 策略 | 类型 | 协议端口 | 源地址 |
---|---|---|---|---|---|
入方向 | 1 | 允许 | IPv4 | ICMP:全部 | IP地址:0.0.0.0/0 |
入方向 | 1 | 允许 | IPv6 | ICMP:全部 | IP地址:::/0 |
实现不同安全组的实例内网网络互通
同一个VPC内,位于不同安全组内的实例网络不通。如果您需要在同一个VPC内的实例之间共享数据,比如安全组sg-A内的云服务器访问安全组sg-B内的MySQL数据库,您需要通过在安全组sg-B中添加一条入方向规则,允许来自安全组sg-A内云主机的内网请求进入。
方向 | 优先级 | 策略 | 类型 | 协议端口 | 源地址 |
---|---|---|---|---|---|
入方向 | 1 | 允许 | IPv4 | 自定义TCP: 3306 | 安全组:sg-A |
注意如果您通过中间网络实例在不同子网的实例之间转发流量,由于存在中间网络实例,此时安全组规则的源地址选择实例所在的安全组时,无法放通中间网络实例转发的流量,源地址必须设置成中间网络实例的私有IP地址或者子网网段。
云主机提供数据库访问服务
安全组默认拒绝所有来自外部的请求,如果您在云主机上部署了数据库服务,允许其他实例通过内网访问数据库服务,则您需要在部署数据库的云主机所在的安全组内,添加入方向规则,放通对应的端口,实现其他实例通过内网获取数据库数据的请求。常见的数据库类型及其对应的端口如下:
MySQL(3306)
Oracle(1521)
MS SQL(1433)
PostgreSQL(5432)
Redis(6379)
方向 | 优先级 | 策略 | 类型 | 协议端口 | 源地址 | 描述 |
---|---|---|---|---|---|---|
入方向 | 1 | 允许 | IPv4 | 自定义TCP: 3306 | 安全组:sg-A | 允许安全组sg-A内云主机访问MySQL数据库服务。 |
入方向 | 1 | 允许 | IPv4 | 自定义TCP: 1521 | 安全组:sg-B | 允许安全组sg-B内云主机访问Oracle数据库服务。 |
入方向 | 1 | 允许 | IPv4 | 自定义TCP: 1433 | IP地址:172.16.3.21/32 | 允许私网IP地址为172.16.3.21的云主机访问MS SQL数据库服务。 |
入方向 | 1 | 允许 | IPv4 | 自定义TCP: 5432 | IP地址:192.168.0.0/24 | 允许私网IP地址属于192.168.0.0/24网段的云主机访问PostgreSQL数据库服务。 |
入方向 | 1 | 允许 | IPv4 | 自定义TCP: 6379 | IP地址组:ipGroup-A | 允许私网IP地址属于IP地址组ipGroup-A范围内的云主机访问Redis数据库服务。 |
注意本示例中源地址提供的配置仅供参考,请您根据实际需求设置源地址。