安全组
使用说明:
每个用户最多有 100 个安全组。
每个安全组最多有 100 条安全组规则。
每个实例至少属于一个安全组,最多可以加入 5 个安全组,在创建实例的时候,需要在网络选项中指定。
同一安全组内的实例之间网络互通,不同安全组的实例之间默认内网不通。
单个安全组内的实例个数不能超过 1000。
如果对安全组做调整操作,不会影响用户服务的连续性。
安全组规则中,如果数据包在出站方向的授权策略是允许的,那么对应的此连接在入站方向的授权策略也是允许的。
安全组规则可以允许或拒绝与安全组相关联的云主机 QVM 实例的公网和内网的入站和出站方向的访问。
你可以随时配置和取消安全组规则,你变更的安全组规则会自动在相关联的实例上生效。
安全组默认规则
系统自动创建的默认安全组
在一个地域创建主机实例时,如果当前账号在这个地域里尚未创建安全组,你可以选择系统自动创建的默认安全组。
系统自动创建的默认安全组中的默认规则,出站方向允许所有访问,入站方向只允许对 ICMP 协议所有端口和 TCP 协议的 22、3389、80、443 端口的访问。优先级为 100,授权类型:地址段访问,授权对象:0.0.0.0/0。其中:
- ICMP 协议:用于在 IP 主机、路由器之间传递控制消息。
- TCP 协议 22 端口:用于 Linux SSH 远程连接。
- TCP 协议 3389 端口:用于 Windows 远程桌面连接。
- TCP 协议 80 端口:提供 HTTP 服务,用于网页浏览。
根据业务需要,你可以在默认安全组中添加安全组规则
你自己创建的安全组
创建安全组后,未添加任何安全组规则之前,默认规则如下:
出方向: 允许所有访问
入方向: 拒绝所有访问
如果你的实例在这样一个全新的安全组中,你只能通过管理终端连接实例,但是不能通过远程连接软件登录实例。
根据业务需要,你可以在自建的安全组中添加安全组规则
安全组规则的典型应用
SSH 远程连接 Linux 实例
创建好 Linux 实例后,为了 SSH 远程连接实例,你需要添加如下安全组规则:
规则方向 | 授权策略 | 协议类型 | 端口范围 | 优先级 | 授权类型 | 授权对象 |
---|---|---|---|---|---|---|
入站方向 | 允许 | SSH(22) | 22/22 | 1 | 地址段访问 | 0.0.0.0/0 |
RDP 远程连接 Windows 实例
创建好 WIndows 实例后,为了 RDP 远程连接实例,你需要添加如下安全组规则:
规则方向 | 授权策略 | 协议类型 | 端口范围 | 优先级 | 授权类型 | 授权对象 |
---|---|---|---|---|---|---|
入站方向 | 允许 | RDP(3389) | 3389/3389 | 1 | 地址段访问 | 0.0.0.0/0 |
实例作 Web 服务器
如果你创建的实例作 Web 服务器用,你需要在实例上安装 Web 服务器程序,并添加如下安全组规则:
规则方向 | 授权策略 | 协议类型 | 端口范围 | 优先级 | 授权类型 | 授权对象 |
---|---|---|---|---|---|---|
入站方向 | 允许 | HTTP(80) | 80/80 | 1 | 地址段访问 | 0.0.0.0/0 |
创建安全组
一台云主机必须至少属于一个安全组。你未创建安全组时,可以使用七牛云自动为你创建的安全组。你也可以自己创建安全组。本文描述如何创建安全组。在创建安全组之前,必须先创建专有网络。专有网络里的安全组,可以跨交换机,但是不能跨专有网络。
1. 登录云主机管理控制台
2. 在左侧导航栏中,选择网络 > 安全组
3. 单击新建
4. 在弹出的新建安全组对话框中,指定以下信息:
选择地域
设置安全组名称
网络类型默认为专有网络
选择已经创建的专有网络
5. 单击确定
对于你自己创建的安全组,在没有添加任何安全组规则之前,私网和公网默认规则均为:出方向允许所有访问,入方向拒绝所有访问。
添加安全组规则
你可以添加安全组规则,允许或禁止安全组内的实例对公网、内网或私网的访问。安全组规则的变更会自动应用到安全组内的实例上。
1. 登录云主机管理控制台
2. 在左侧导航栏中,选择网络 > 安全组
3. 找到要配置授权规则的安全组,在操作列中,单击配置规则。
4. 在规则配置页面上,单击新建
5. 在弹出的对话框中,设置以下参数
参数说明:
网卡类型 - 默认为内网
规则方向 - 入站方向是指内网中的其他实例或公网上的资源访问实例;出站方向是指实例访问内网中其他实例或公网上的资源
授权策略 - 选择允许或拒绝。拒绝策略是直接丢弃数据包,不给任何回应信息。如果 2 个安全组规则其他都相同只有授权策略不同,则拒绝授权生效,接受授权不生效。
协议类型和端口范围 - 端口范围的设置受选择的协议类型影响。下表是协议类型与端口范围的关系:
协议类型 | 端口范围 | 应用场景 |
---|---|---|
全部 | -1/-1,表示不限制端口 | 用于完全互相信任的应用场景 |
自定义 TCP | 1−65535,合法格式为开始端口/结束端口,如:80/80 表示端口 80 | 用于允许或拒绝一个或几个连续的端口 |
自定义 UDP | 1−65535,合法格式为开始端口/结束端口,如:80/80 表示端口 80 | 用于允许或拒绝一个或几个连续的端口 |
全部 ICMP | -1/-1,表示不限制端口 | 使用 ping 程序检测实例之间的通信状况 |
全部 GRE | -1/-1,表示不限制端口 | 用于 VPN 服务 |
SSH | 22/22 | 用于 SSH 远程连接到 Linux 实例 |
telnet | 23/23 | 用于 Telnet 远程登录实例 |
HTTP | 80/80 | 实例作为网站或 Web 应用的服务器 |
HTTPS | 443/443 | 实例作为网站或 Web 应用的服务器,而且需要支持 HTTPS 协议 |
MS SQL | 1433/1433 | 实例作为 MS SQL 服务器 |
Oracle | 1521/1521 | 实例作为 Oracle SQL 服务器 |
MySQL | 3306/3306 | 实例作为 MySQL 服务器 |
RDP | 3389/3389 | 实例是 Windows 实例,需要远程桌面连接实例 |
PostgreSQL | 5432/5432 | 实例作为 PostgreSQL 服务器 |
Redis | 6379/6379 | 实例作为 Redis 服务器 |
优先级 - 可以设 1 到 100 的数值, 数值越小,优先级越高。实例可以加入不同的安全组,无论是同一个安全组内或不同安全组之间,如果安全组规则互相矛盾,即协议类型、端口范围、授权类型和授权对象都相同,授权策略和优先级不同时,最终生效的安全组规则按以下说明生效:如果 2 个安全组规则其他都相同只有授权策略不同,则拒绝授权生效,接受授权不生效;如果 2 个安全组规则其他都相同只有授权策略和优先级不同,最终生效取决优先级的数值,则优先级高的规则生效
授权类型和授权对象 - 授权对象的设置受授权类型影响,以下是两者之间的关系:
授权类型 | 授权对象 |
---|---|
地址段访问 | 应填写 IP 或者 CIDR 网段格式,如:12.1.1.1 或 13.1.1.1/25。仅支持 IPv4。如果填写 0.0.0.0/0 表示允许或拒绝所有 IP 地址的访问 |
安全组访问 | 只对内网有效。授权本账号某个安全组中的实例访问本安全组中的实例,实现内网互通 |
6. 单击确定,即成功地为指定安全组添加了一条安全组规则。
查看安全组规则是否生效
假设你在实例里安装了 Web 服务,并在一个安全组里添加了一条安全组规则:公网入方向,允许所有 IP 地址访问实例的 TCP 80 端口。
Linux 实例
- 远程连接实例
运行以下命令查看 TCP 80 是否被监听
netstat -an | grep 80
如果返回以下结果,说明 TCP 80 端口的 Web 服务启动。
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
- 在浏览器地址栏里输入
http://IP 地址
。如果访问成功,说明规则已经生效。
Windows 实例
- 远程连接实例
- 运行命令提示符,输入以下命令查看 TCP 80 是否被监听
如果返回以下结果,说明 TCP 80 端口已开通。netstat -aon | findstr :80
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1172
- 在浏览器地址栏里输入
http://IP 地址
。如果访问成功,说明规则已经生效。
删除安全组规则
1. 登录云主机管理控制台
2. 在左侧导航栏里,单击安全组
3. 找到需要取消规则的安全组,在操作列中,单击配置规则
4. 在安全组规则配置页面,找到需要取消的安全组规则方向:入方向和出方向
5. 找到需要删除的安全组规则,在操作列中,单击删除
6. 在弹出的对话框中,单击确定
删除安全组
如果安全组下没有绑定的实例,才能成功删除该安全组。删除安全组,会删除该安全组下所有的安全组规则。
1. 登录云主机管理控制台
2. 单击左侧导航中的安全组
3. 选择目标安全组,单击删除
4. 在弹出的提示框中,单击确定,成功删除安全组