遵循网络安全最佳做法有助于确保 vSphere 部署的完整性。

常规 vSphere 网络安全建议

遵循常规网络连接安全建议是确保 vSphere 网络环境安全的第一步。然后可以转到特殊区域,例如使用防火墙或使用 IPsec 确保网络安全。

保护 vSphere 网络连接环境的建议

  • 生成树协议 (STP) 检测并防止在网络拓扑中形成循环。VMware 虚拟交换机通过其他方式防止形成循环,但不直接支持 STP。网络拓扑发生更改时,网络重新发现拓扑需要一些时间(30 到 50 秒)。在这段时间内,不允许任何流量通过。为避免出现这些问题,网络供应商创建了一些功能,使交换机端口能够继续转发流量。有关详细信息,请参见相应的 VMware 知识库文章,网址为 https://kb.vmware.com/s/article/1003804。有关正确的网络和网络硬件配置,请参阅您的网络供应商文档。
  • 确保分布式虚拟交换机的 Netflow 流量仅发送至授权的收集器 IP 地址。Netflow 导出未加密,可以包含有关虚拟网络的信息。这些信息增加了敏感信息在传输过程中被攻击者查看和捕获的可能性。如果需要 Netflow 导出,请确保所有 Netflow 目标 IP 地址正确。
  • 确保仅授权管理员可以使用基于角色的访问控制来访问虚拟网络连接组件。例如,虚拟机管理员只能访问其虚拟机驻留的端口组。网络管理员可以访问所有虚拟网络连接组件,但不能访问虚拟机。限制访问可降低意外或恶意配置错误的风险,并强制执行职责分离和最小特权的主要安全概念。
  • 确保未将端口组配置为本机 VLAN 的值。物理交换机通常配置一个本机 VLAN,默认情况下,该本机 VLAN 通常为 VLAN 1。ESXi 没有本机 VLAN。在端口组中指定了 VLAN 的帧具有标记,而在端口组中未指定 VLAN 的帧则没有标记。此配置可能会导致出现问题,因为标记为 1 的虚拟机最终会属于物理交换机的本机 VLAN。

    例如,Cisco 物理交换机中 VLAN 1 上的帧没有标记,因为 VLAN 1 是该物理交换机上的本机 VLAN。但是,ESXi 主机上指定为 VLAN 1 的帧会标记为 1。因此,ESXi 主机上发往本机 VLAN 的流量无法正确路由,因为它标记为 1,而不是没有标记。物理交换机上来自本机 VLAN 的流量不可见,因为它没有标记。如果 ESXi 虚拟交换机端口组使用本机 VLAN ID,则从该端口发出的虚拟机流量对于该交换机上的本机 VLAN 不可见,因为该交换机应接收不带标记的流量。

  • 确保未将端口组配置为上游物理交换机预留的 VLAN 值。物理交换机预留了某些 VLAN ID 以供内部使用,并且通常会禁止接收配置为这些值的流量。例如,Cisco Catalyst 交换机通常会预留 VLAN 1001–1024 和 4094。使用预留的 VLAN 可能会导致网络上出现拒绝服务问题。
  • 确保未将端口组配置为 VLAN 4095(采用虚拟客户机标记 (VGT) 时除外)。将端口组设置为 VLAN 4095 会激活 VGT 模式。在此模式下,虚拟交换机会将所有网络帧传递给虚拟机,而不会修改 VLAN 标记,相反,它会将其留给虚拟机进行处理。
  • 限制分布式虚拟交换机上的端口级配置替代。默认情况下,端口级配置替代处于停用状态。如果激活了替代,则可以为虚拟机使用与端口组级设置不同的安全设置。某些虚拟机需要采用唯一配置,但必须进行监控。如果不对替代进行监控,则在虚拟机采用安全性较低的分布式虚拟交换机配置时,任何用户只要能够访问该虚拟机,就可能试图利用该访问权限漏洞。
  • 确保分布式虚拟交换机端口镜像流量仅发送至授权的收集器端口或 VLAN。vSphere Distributed Switch 可以将流量从一个端口镜像至另一端口,以使数据包捕获设备可以收集特定的流量。端口镜像操作会将所有指定流量的副本以未加密格式发送。此镜像流量包含捕获的数据包中的全部数据,如果定向错误,可能会全面危及这些数据的安全。如果需要使用端口镜像功能,请确认所有端口镜像目标 VLAN、端口和上行链路 ID 都正确无误。

标记 vSphere 网络组件

标识 vSphere 网络架构的不同组件非常关键,有助于确保网络扩展过程中不会引入错误。

遵循以下最佳实践:

  • 确保端口组配置了明确的网络标签。这些标签可以作为端口组的功能描述符,帮助您在网络愈发复杂时标识每个端口组的功能。
  • 确保每个 vSphere Distributed Switch 具有明确的网络标签,可指示交换机的功能或 IP 子网。此标签可以作为交换机的功能描述符,就像物理交换机需要主机名称一样。例如,您可以将交换机标记为内部,以表示此交换机用于内部网络。无法更改标准虚拟交换机的标签。

记录和检查 vSphere VLAN 环境

定期检查 VLAN 环境以避免解决问题。完整记录 VLAN 环境并确保 VLAN ID 仅使用一次。您的文档有助于进行故障排除,且在要扩展环境时至关重要。

过程

  1. 确保已完整记录所有 vSwitch 和 VLANS ID
    如果要在虚拟交换机上使用 VLAN 标记,则 ID 必须与外部可识别 VLAN 的上游交换机上的 ID 相对应。如果未完全跟踪 VLAN ID,则错误重用的 ID 可能允许错误物理机和虚拟机之间的流量。同样,如果 VLAN ID 错误或缺失,则在希望流量通过的物理机和虚拟机之间的流量可能被阻止。
  2. 确保已完整记录所有分布式虚拟端口组(dvPortgroup 实例)的 VLAN ID。
    如果要在 dvPortgroup 上使用 VLAN 标记,则 ID 必须与外部可识别 VLAN 的上游交换机上的 ID 相对应。如果未完全跟踪 VLAN ID,则错误重用的 ID 可能允许错误物理机和虚拟机之间的流量。同样,如果 VLAN ID 错误或缺失,则在希望流量通过的物理机和虚拟机之间的流量可能被阻止。
  3. 确保已完整记录所有分布式虚拟交换机的专用 VLAN ID。
    分布式虚拟交换机的专用 VLAN (PVLAN) 需要主 VLAN ID 和辅助 VLAN ID。这些 ID 必须与外部可识别 PVLAN 的上游交换机上的 ID 相对应。如果未完全跟踪 VLAN ID,则错误重用的 ID 可能允许错误物理机和虚拟机之间的流量。同样,如果 PVLAN ID 错误或缺失,则在希望流量通过的物理机和虚拟机之间的流量可能被阻止。
  4. 验证 VLAN 中继链接只连接到充当中继链接的物理交换机端口。
    在将虚拟交换机连接到 VLAN 中继端口时,必须在上行链路端口上正确配置虚拟交换机和物理交换机。如果未正确配置物理交换机,具有 VLAN 802.1q 标头的帧将被转发到不该接收这些帧的交换机。

在 vSphere 中采用网络隔离做法

网络隔离做法可增强 vSphere 环境的网络安全性。

隔离 vSphere 管理网络

通过 vSphere 管理网络可以访问每个组件上的 vSphere 管理界面。在管理界面上运行的服务会让攻击者有机会获得系统的访问特权。远程攻击可能从获取对本网络的访问权限开始。如果攻击者获得了对管理网络的访问权限,则会为进一步入侵提供集结基础。

通过按照ESXi主机或集群上运行的最安全虚拟机的安全级别来保护管理网络,严格控制对管理网络的访问。无论以何种方式限制管理网络,管理员都必须能够访问此网络以配置 ESXi主机和 vCenter Server 系统。

将 vSphere 管理端口组置于通用标准交换机上的专用 VLAN 中。如果生产虚拟机未使用 vSphere 管理端口组的 VLAN,则生产(虚拟机)流量可以共享标准交换机。

检查网络段是否未路由,其他管理相关的实体所在的网络除外。路由网络段可能对 vSphere Replication 有意义。尤其要注意的是,确保不可将生产虚拟机流量路由到此网络。

使用以下方法之一严格控制对管理功能的访问。
  • 要在特别敏感环境中访问管理网络,请配置受控网关或其他受控方法。例如,要求管理员通过 VPN 连接到管理网络。仅允许受信任的管理员访问管理网络。
  • 配置运行管理客户端的堡垒主机。

隔离存储流量

请确保隔离基于 IP 的存储流量。基于 IP 的存储包括 iSCSI 和 NFS。虚拟机可能与基于 IP 的存储配置共享虚拟交换机和 VLAN。此类型的配置可能会向未经授权的虚拟机用户公开基于 IP 的存储流量。

基于 IP 的存储通常未加密。有权访问此网络的任何人都可以查看基于 IP 的存储流量。要限制未经授权的用户查看基于 IP 的存储流量,请采用逻辑方式将基于 IP 的存储网络流量与生产流量分隔开来。在与 VMkernel 管理网络分隔开来的 VLAN 或网络段上配置基于 IP 的存储适配器,以限制未经授权的用户查看该流量。

隔离 vMotion 流量

vMotion 迁移信息以纯文本形式传输。可以访问此信息流经的网络的任何人均可查看此信息。潜在的攻击者可能会拦截 vMotion 流量以获取虚拟机的内存内容。攻击者还可能筹划中间人攻击 (MITM) 以在迁移期间修改有关内容。

请在隔离的网络中将 vMotion 流量与生产流量分隔开来。请将网络设置为不可路由,即确保第 3 层路由器未跨越此网络和其他网络,以防止外部对网络进行访问。

将通用标准交换机上的专用 VLAN 用于 vMotion 端口组。如果生产虚拟机未使用 vMotion 端口组的 VLAN,则生产(虚拟机)流量可以使用相同的标准交换机。

隔离 vSAN 流量

配置 vSAN 网络时,将 vSAN 流量隔离在其自己的第 2 层网络段上。可以通过使用专用交换机或端口或者使用 VLAN 执行此隔离。

仅在需要时才在 vSphere Network Appliance API 中使用虚拟交换机

请勿将主机配置为向虚拟机发送网络信息,除非您使用的产品在使用 vSphere Network Appliance API (DvFilter)。如果 vSphere Network Appliance API 处于启用状态,则攻击者可能会尝试将虚拟机连接到筛选器。此连接可能会提供对主机上其他虚拟机网络的访问。

如果您正在使用运用此 API 的产品,请验证是否已正确配置主机。请参见《开发和部署 vSphere 解决方案、vService 和 ESX 代理》文档中有关 DvFilter 的部分。如果您的主机设置为使用 API,请确保 Net.DVFilterBindIpAddress 参数的值与使用 API 的产品相匹配。

过程

  1. vSphere Client 清单中,浏览到主机。
  2. 单击配置
  3. 在“系统”下,单击高级系统设置
  4. 向下滚动至 Net.DVFilterBindIpAddress,并验证该参数的值是否为空。
    参数并非严格按照字母顺序排列。在“筛选器”文本框中输入 DVFilter 以显示所有相关参数。
  5. 确认设置。
    • 如果未使用 DvFilter 设置,请确保值为空。
    • 如果正使用 DvFilter 设置,请确保参数值正确。该值必须与使用 DvFilter 的产品正在使用的值匹配。