您可以通过创建提供商安全组来阻止项目的特定流量。

标准安全组由租户创建和管理,而提供商安全组由云管理员创建和管理。提供商安全组优先于标准安全组,并在项目中的所有虚拟机上强制实施。

过程

  1. root 用户身份登录到 Integrated OpenStack Manager
    ssh root@mgmt-server-ip
  2. 打开工具箱并设置 admin 帐户的密码。
    toolbox
    export OS_PASSWORD=admin-account-password
  3. 为特定项目创建提供商安全组。
    neutron security-group-create group-name --provider=True --tenant-id=project-id
  4. 为提供商安全组创建规则。
    注: 提供商安全组规则会阻止指定的流量,而标准安全规则允许指定的流量。
    neutron security-group-rule-create group-name --tenant-id=project-id [--description rule-description] [--direction {ingress | egress}] [--ethertype {IPv4 | IPv6}] [--protocol protocol] [--port-range-min range-start --port-range-max range-end] [--remote-ip-prefix ip/prefix | --remote-group-id remote-security-group]
    选项 说明
    group-name

    输入提供商安全组。

    --tenant-id

    输入包含提供商安全组的项目的 ID。

    --description

    输入规则的自定义描述。

    --direction

    指定 ingress 以阻止入站流量,或指定 egress 以阻止出站流量。

    如果不包括此参数,则默认使用 ingress

    --ethertype

    指定 IPv4IPv6

    如果不包括此参数,则默认使用 IPv4

    --protocol

    指定要阻止的协议。输入介于 0 到 255 之间的整数表示形式或以下值之一:

    • icmp
    • icmpv6
    • tcp
    • udp

    要阻止所有协议,请不要包括此参数。

    --port-range-min

    输入要阻止的第一个端口。

    要阻止所有端口,请不要包括此参数。要阻止单个端口,请为 --port-range-min--port-range-max 参数输入相同的值。

    --port-range-max

    输入要阻止的最后一个端口。

    要阻止所有端口,请不要包括此参数。要阻止单个端口,请为 --port-range-min--port-range-max 参数输入相同的值。

    --remote-ip-prefix

    输入要阻止的流量的源网络(例如,10.10.0.0/24)。

    此参数不能与 --remote-group-id 参数结合使用。

    --remote-group-id

    输入要阻止的流量的源安全组的名称或 ID。

    此参数不能与 --remote-ip-prefix 参数结合使用。

结果

提供商安全组规则会在指定项目中虚拟机上的所有新创建的端口上强制实施,并且不能由租户定义的安全组替代。

后续步骤

您可以通过运行以下命令在现有端口上强制实施一个或多个提供商安全组:

neutron port-update port-id --provider-security-groups list=true group-id1...