安全组

安全组:给云主机提供三层网络防火墙控制,控制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的进口规则和出口规则),用于设置组内互通。用户可以删除这两条默认规则,取消组内互通。
  • 新建安全组时,如果没有设置任何规则,则默认所有的外部访问均禁止进入安全组内的云主机,安全组内云主机访问外部不受限制。