为满足您在网站提供Web服务、管理远程连接访问等常见场景下的网络流量管理需求,本文介绍如何利用安全组的特性来配置相应的安全组规则,保障云资源网络流量的安全性和可靠性。
安全组配置须知:
1.一般情况下,流出方向安全组建议设置如下,表示允许云主机主动访问外网:
| 方向 | 协议 | 端口 | 授权类型 | 授权范围 |
|---|---|---|---|---|
| 出向 | any | any | 地址段访问 | 0.0.0.0/0 |
2.基础网络的云主机与VPC下的云主机无法互访。
3.同一账号下,不同VPC之间默认不能通过内网互访。
4.云主机安全组和安全组规则的绑定数量限制,请参考产品使用限制。
5.新建了安全组后,系统自动创建三条安全组规则,分别是:两条流出方向为全放通的安全组规则和一条协议为ICMP、流入方向为全放通的安全组规则。即在没有新建任何安全组规则时,默认阻止除ICMP协议之外所有流入方向的流量,对流出方向的流量不限制。
场景一:远程连接场景
允许SSH远程连接Linux云服务器
当新建一台Linux云服务器,且希望能通过SSH协议远程访问云服务器时,可添加如下安全组规则。
| 方向 | 协议 | 端口 | 授权类型 | 授权范围 |
|---|---|---|---|---|
|
入向 |
SSH |
22 |
地址段访问 |
允许登录云服务器的指定IP地址 |
允许RDP远程连接Windows云服务器
当创建一台Windows云服务器后,希望通过RDP协议远程访问云服务器时,可添加如下安全组规则。
|
方向 |
协议 |
端口 |
授权类型 |
授权范围 |
|---|---|---|---|---|
|
入向 |
TCP |
3389 |
地址段访问 |
允许登录云服务器的指定IP地址 |
允许Telnet远程登录云服务器
如需使用Telnet远程访问实例,可添加如下安全组规则。
|
方向 |
协议 |
端口 |
授权类型 |
授权范围 |
|---|---|---|---|---|
|
入向 |
TCP |
23 |
地址段访问 |
允许登录云服务器的指定IP地址 |
场景二:公网Ping云服务器场景
如需使用Ping程序检验实例间的连通性,可添加如下安全组规则。
|
方向 |
协议 |
端口 |
授权类型 |
授权范围 |
|---|---|---|---|---|
|
入向 |
ICMP |
any |
地址段访问 |
0.0.0.0/0 |
|
入向 |
ICMP |
any |
地址段访问 |
::/0 |
场景三:上传或下载文件场景
如需使用FTP软件访问实例进行上传或下载文件,可添加如下安全组规则。
|
方向 |
协议 |
端口 |
授权类型 |
授权范围 |
|---|---|---|---|---|
|
入向 |
TCP |
20-21 |
地址段访问 |
0.0.0.0/0 |
场景四:网站提供Web服务
新建安全组默认拒绝除ICMP协议以外的所有入方向访问。如果您在实例上搭建对外提供Web服务的网站,需要允许访问相应服务的端口,例如HTTP(80)、HTTPS(443),安全组规则的配置示例如下表所示。
|
方向 |
协议 |
端口 |
授权类型 |
授权范围 |
|---|---|---|---|---|
|
入向 |
TCP |
80 |
地址段访问 |
0.0.0.0/0 |
|
入向 |
TCP |
443 |
地址段访问 |
0.0.0.0/0 |
场景五:提供数据库访问
如果您在实例上部署了数据库,需要允许其他实例通过内网获取数据,请根据数据库类型允许访问相应服务的端口,例如MySQL (3306)、Oracle(1521)、PostgreSQL(5432)、安全组规则的配置示例如下表所示。
|
方向 |
协议 |
端口 |
授权类型 |
授权范围 |
|---|---|---|---|---|
|
入向 |
TCP |
3306 |
地址段访问 |
0.0.0.0/0 |
|
入向 |
TCP |
1521 |
地址段访问 |
0.0.0.0/0 |
|
入向 |
TCP |
5432 |
地址段访问 |
0.0.0.0/0 |
场景六:只允许同子网的云主机互访
假设名称为vpc_test的VPC下的子网及云主机信息如下:
| VPC: vpc_test | |
| 子网1:192.168.1.0/24 |
子网2:192.168.2.0/24 |
| 云主机A:192.168.1.2 |
云主机C:192.168.2.2 |
| 云主机B:192.168.1.3 |
云主机D:192.168.2.3 |
现在需要实现云主机A和云主机B可以互访、云主机C和云主机D可以互访,但子网1和子网2下的云主机不能互访。配置安全组示例如下:
创建名称为sec_1的安全组,将云主机A和云主机B绑定到sec_1,sec_1中的安全组策略如下:
| 方向 | 协议 | 端口 | 授权类型 | 授权范围 |
| 入向 |
any |
any |
地址段访问 |
192.168.1.0/24 |
| 出向 |
any |
any |
地址段访问 |
0.0.0.0/0 |
创建名称为sec_2的安全组,将云主机C和云主机D绑定到sec_2,sec_2中的安全组策略如下:
| 方向 | 协议 | 端口 | 授权类型 | 授权范围 |
| 入向 |
any |
any |
地址段访问 |
192.168.2.0/24 |
| 出向 |
any |
any |
地址段访问 |
0.0.0.0/0 |
场景七:只允许同个安全组的云主机互访
假设名称为vpc_test的VPC下的子网及云主机信息如下:
| VPC: vpc_test | |
| 子网1:192.168.1.0/24 |
子网2:192.168.2.0/24 |
| 云主机A:192.168.1.2 |
云主机C:192.168.2.2 |
| 云主机B:192.168.1.3 |
云主机D:192.168.2.3 |
现在需要实现云主机B、C、D可以互相访问,且均可以通过内网主动访问云主机A,但云主机A不能通过内网主动访问云主机B、C、D。配置安全组示例如下:
创建名称为sec_1的安全组,将云主机B、C、D绑定到sec_1,sec_1中的安全组策略如下:
| 方向 | 协议 | 端口 | 授权类型 | 授权范围 |
| 入向 |
any |
any |
远端安全组 |
sec_1 |
| 出向 |
any |
any |
地址段访问 |
0.0.0.0/0 |
创建名称为sec_2的安全组,将云主机A绑定到sec_2,sec_2中的安全组策略如下:
| 方向 | 协议 | 端口 | 授权类型 | 授权范围 |
| 入向 |
any |
any |
远端安全组 |
sec_1 |
| 出向 |
any |
any |
地址段访问 |
0.0.0.0/0 |
场景八:只允许指定IP/网段访问云主机
只允许指定IP/网段通过任何协议访问云主机
假设名称为vpc_test的VPC下的子网及云主机信息如下:
|
VPC:vpc_test |
|
|---|---|
|
子网1:192.168.1.0/24 |
子网2:192.168.2.0/24 |
|
云主机A |
云主机B |
|
内网IP:192.168.1.2 公网IP:112.33.11.11 |
内网IP:192.168.2.2 公网IP:112.33.22.22 |
现在需要云主机A与云主机B可以通过内网互访的同时,也允许通过公网互访。配置安全组示例如下:
创建名称为sec_1的安全组,将云主机A、B绑定到sec_1,sec_1中的安全组策略如下:
|
方向 |
协议 |
端口 |
授权类型 |
授权范围 |
|---|---|---|---|---|
|
入向 |
any |
any |
地址段访问 |
192.168.1.0/24 |
|
入向 |
any |
any |
地址段访问 |
192.168.2.0/24 |
|
入向 |
any |
any |
地址段访问 |
112.33.11.11/32 |
|
入向 |
any |
any |
地址段访问 |
112.33.22.22/32 |
|
出向 |
any |
any |
地址段访问 |
0.0.0.0/0 |
只允许特定IP通过指定协议访问云主机的端口
出于安全防护原因,若仅允许公网IP:221.176.33.73、117.24.214.2访问云主机A的22端口,其他IP地址都不能访问22端口,那么需要将sec_1的安全组策略修改为:
|
方向 |
协议 |
端口 |
授权类型 |
授权范围 |
|---|---|---|---|---|
|
入向 |
TCP |
22 |
地址段访问 |
221.176.33.73/32 |
|
入向 |
TCP |
22 |
地址段访问 |
117.24.214.2 |
|
出向 |
any |
any |
地址段访问 |
0.0.0.0/0 |
场景九:只允许云主机访问外部特定IP地址
假设名称为vpc_test的VPC下的子网及云主机信息如下:
- VPC名称:vpc_test
- 子网网段:192.168.1.0/24
- Linux云主机A:内网IP:192.168.1.2、公网IP:112.33.11.11
- 监听端口:22(用于SSH远程登录)
假设现在需要限制云主机通过任何协议访问外网,仅允许云主机通过任何协议访问特定外网IP(比如117.24.214.2),那么需要将安全组设置为:
|
方向 |
协议 |
端口 |
授权类型 |
授权范围 |
描述 |
|---|---|---|---|---|---|
|
入向 |
TCP |
22 |
地址段访问 |
221.176.33.73/32 |
仅允许地址为221.176.33.73的服务器通过TCP协议访问云内主机的22端口 |
|
出向 |
any |
any |
地址段访问 |
117.24.214.2/32 |
仅允许云主机通过任何协议访问特定外网IP:117.24.214.2 |
场景十:负载均衡安全组
假设名称为vpc_test的VPC下,开通了负载均衡和云主机,相关的信息如下:
- VPC名称:vpc_test
- 子网网段:192.168.1.0/24
- 云主机A:192.168.1.2
- 云主机B:192.168.1.3
- 负载均衡器:内网VIP:192.168.1.4、实地址:192.168.1.5、192.168.1.6、公网IP:112.33.11.12
负载均衡器绑定了云主机A和云主机B,用于将访问请求分担到云主机上,云主机A和B通过TCP 80端口提供服务。在安全组规则设置上,云主机A和B都需要新增放通负载均衡的两个实地址192.168.1.5、192.168.1.6访问TCP 80端口的安全组规则,新增的安全组规则如下:
|
方向 |
协议 |
端口 |
授权类型 |
授权范围 |
|---|---|---|---|---|
|
入向 |
TCP |
80 |
地址段访问 |
192.168.1.5/32 |
|
入向 |
TCP |
80 |
地址段访问 |
192.168.1.6/32 |
场景十一:安装宝塔Linux面板
如果您在云服务器的 Linux 实例上手动安装了宝塔面板,为保障您的资源连接正常,需要完成安全组规则配置,如下表所示。
|
方向 |
协议 |
端口 |
授权类型 |
授权范围 |
|---|---|---|---|---|
|
入向 |
TCP |
8888 |
地址段访问 |
0.0.0.0/0 |