安全组
安全组:给云主机提供三层网络防火墙控制,控制TCP/UDP/ICMP等数据包进行有效过滤,对指定网络的指定云主机按照指定的安全规则进行有效控制。
- 扁平网络、云路由网络和VPC均支持安全组服务,安全组服务均由安全组网络服务模块提供,使用方法均相同:使用iptables进行云主机防火墙的安全控制。
- 安全组实际上是一个分布式防火墙;每次规则变化、加入/删除网卡都会导致多个云主机上的防火墙规则被更新。
安全组规则:
- 安全组规则按数据包的流向分为两种类型:
- 入方向(Ingress):代表数据包从外部进入云主机。
- 出方向(Egress):代表数据包从云主机往外部发出。
- 安全组规则对通信协议支持以下类型:
- ALL:表示涵盖所有协议类型,此时不能指定端口。
- TCP:支持1-65535端口。
- UDP:支持1-65535端口。
- ICMP:默认起始结束端口均为-1,表示支持全部的ICMP协议。
- 安全组规则支持对数据来源的限制,目前源可以设置为CIDR和安全组。
- CIDR作为源:仅允许指定的CIDR才可通过
- 安全组作为源:仅允许指定的安全组内的云主机才可通过
注: 如果两者都设置,只取两者交集。
如图 1所示:图 1. 安全组


安全组的使用方法
使用安全组的基本流程为:选择三层网络,设置相应的防火墙规则,选择指定的云主机加入规则中。
创建安全组
在ZStack私有云主菜单,点击 ,进入安全组界面,点击创建安全组,在弹出的创建安全组界面,可参考以下示例输入相应内容:
- 名称:设置安全组名称
- 简介:可选项,可留空不填
- 网络:选择已创建的三层私有网络
- 规则:可选项,防火墙规则可在创建安全组时直接设置,也可在创建安全组后再设置
- 网卡:可选项,选择云主机网卡加入安全组,云主机网卡可在创建安全组时直接添加,也可在创建安全组后再添加
如图 2所示:图 2. 创建安全组


设置安全组规则
以创建安全组时直接设置安全组规则为例。在创建安全组界面,点击规则栏里的加号按钮,弹出设置规则界面,可参考以下示例输入相应内容:
- 类型:选择安全组规则类型,例如入方向
- 协议:选择协议类型,例如TCP
- 开始端口:可从1-65535端口之间选择一个端口作为开始端口,例如23
- 结束端口:可从1-65535端口之间选择一个端口作为结束端口,例如1024
- CIDR:可选项,仅允许指定的CIDR才可通过,可留空不填
- 源安全组:可选项,仅允许指定的安全组内的云主机才可通过,可留空不填
如图 3所示:图 3. 设置规则


添加云主机网卡到安全组
以创建安全组时直接添加云主机网卡为例。在创建安全组界面,点击网卡栏里的加号按钮,弹出选择网卡界面,选择需要添加的云主机网卡。
如图 4所示:图 4. 添加云主机网卡到安全组


安全组支持的操作
安全组支持以下操作:
- 修改名称和简介:修改端口转发规则的名称和简介。
- 加载三层网络:安全组支持挂载到多个三层网络,它们会共享相同的安全组规则。
- 卸载三层网络:将安全组上的三层网络卸载。
- 添加规则:添加新的安全组规则到安全组。
- 删除规则:将安全组上的安全组规则删除。
- 绑定云主机网卡:安全组支持挂载到多个云主机,它们会共享相同的安全组规则。
- 解绑云主机网卡:将安全组上的云主机网卡解绑。
- 删除:删除安全组,将自动删除所有的安全组规则和相关安全组服务。
- 审计:查看此安全组的相关操作。
安全组的约束条件
安全组有以下约束条件:
- 安全组可以挂载到多个云主机,它们会共享相同的安全组规则。
- 安全组可以挂载到多个三层网络,它们会共享相同的安全组规则。
- 安全组支持白名单机制,即设置的所有规则均为允许机制,一旦对指定端口设置了允许机制,那么没有被允许的端口就无法通过。
- 新建安全组时,默认配置了两条规则(即:协议类型为ALL的进口规则和出口规则),用于设置组内互通。用户可以删除这两条默认规则,取消组内互通。
- 新建安全组时,如果没有设置任何规则,则默认所有的外部访问均禁止进入安全组内的云主机,安全组内云主机访问外部不受限制。