安全管理员使用防火墙保护网络或网络中的选定组件免遭侵袭。

防火墙可控制对其保护范围内的设备的访问,方法是关闭除管理员显式或隐式指定的授权端口之外的所有端口。管理员打开的端口允许防火墙内外设备间的流量。

重要说明: ESXi 5.5 及更高版本中的 ESXi 防火墙不允许按网络筛选 vMotion 流量。因此,必须在外部防火墙上安装规则,才能确保 vMotion 套接字没有入站连接。

在虚拟机环境中,可以为组件之间的防火墙规划布局。

  • 物理机(例如,vCenter Server 系统)和 ESXi 主机之间的防火墙。
  • 一个虚拟机与另一个虚拟机之间的防火墙(例如,在作为外部 Web 服务器的虚拟机与连接到公司内部网络的虚拟机之间)。
  • 物理机与虚拟机之间的防火墙(例如,在物理网络适配器卡和虚拟机之间设立防火墙)。

防火墙在 ESXi 配置中的使用方式取决于您计划如何使用网络以及给定的组件所需的安全性。例如,如果在您创建的虚拟网络中的每个虚拟机专用于运行同一部门的不同基准测试套件,那么从一个虚拟机对另一个虚拟机进行不利访问的风险极小。因此,防火墙存在于虚拟机之间的配置不是必需的。但是,为了防止干扰外部主机的测试运行,可在虚拟网络的入口点配置防火墙来保护整组虚拟机。

有关 VMware 产品(包括 vSphere 和 vSAN)中所有受支持的端口和协议的列表,请参见 https://ports.vmware.com/ 中的 VMware Ports and Protocols Tool™。您可以按 VMware 产品搜索端口,创建自定义端口列表,以及打印或保存端口列表。

针对有 vCenter Server 的配置设立防火墙

如果要通过 vCenter Server 访问 ESXi 主机,则通常会使用防火墙保护 vCenter Server

入口点上必须设置防火墙。防火墙可以位于客户端与 vCenter Server 之间,vCenter Server 与客户端都可以受到防火墙保护。

有关 VMware 产品(包括 vSphere 和 vSAN)中所有受支持的端口和协议的列表,请参见 https://ports.vmware.com/ 中的 VMware Ports and Protocols Tool™。您可以按 VMware 产品搜索端口,创建自定义端口列表,以及打印或保存端口列表。

配置了 vCenter Server 的网络可以通过 vSphere Client、其他 UI 客户端或使用 vSphere API 的客户端接收通信。在正常操作期间,vCenter Server 会在指定的端口上侦听其受管主机和客户端的数据。vCenter Server 还假设其受管主机会在指定的端口上侦听 vCenter Server 的数据。如果任何这些元素之间有防火墙,必须确保防火墙中有打开的端口以支持数据传输。

您还可以在网络中的其他接入点上包括防火墙,具体取决于网络使用情况和客户端要求的安全级别。根据您的网络配置对应的安全风险选择防火墙位置。下面是常用的防火墙位置。

  • vSphere Client 或第三方网络管理客户端与 vCenter Server 之间。
  • Web 浏览器与 ESXi 主机之间(如果用户通过 Web 浏览器访问虚拟机)。
  • vSphere ClientESXi 主机之间(如果用户通过 vSphere Client 访问虚拟机)。此连接是 vSphere ClientvCenter Server 之间连接的补充,它需要一个不同的端口。
  • vCenter ServerESXi 主机之间。
  • 网络中的 ESXi 主机之间。尽管主机之间的流量通常被认为是可信的,但是,如果您关注计算机的安全漏洞,可在主机间添加防火墙。

    如果在 ESXi 主机之间添加防火墙并计划在这些主机间迁移虚拟机,请在将源主机与目标主机隔开的防火墙中打开端口。

  • ESXi 主机和网络存储(例如 NFS 或 iSCSI 存储)之间。这些端口并非专用于 VMware。根据网络规范进行配置。

通过防火墙连接到 vCenter Server

在防火墙中打开 TCP 端口 443 以允许 vCenter Server接收数据。

默认情况下,vCenter Server使用 TCP 端口 443 侦听来自其客户端的数据。如果 vCenter Server及其客户端之间设有防火墙,则必须配置一个可供vCenter Server 接收其客户端数据的连接。防火墙配置取决于您的站点所用策略,有关信息,请咨询您本地的防火墙系统管理员。

通过防火墙连接 ESXi主机

如果在 ESXi主机与 vCenter Server 之间配置了防火墙,请确保受管主机可以接收数据。

要配置用于接收数据的连接,请打开用于 vSphere High Availability、vMotion、vSphere Fault Tolerance 等服务的通信的端口。有关配置文件、vSphere Client访问权限以及防火墙命令的讨论,请参见配置 ESXi 防火墙。有关端口列表,请参见 VMware Ports and Protocols Tool™,网址为 https://ports.vmware.com

针对没有 vCenter Server 的配置设立防火墙

如果您的环境中不包含 vCenter Server,客户端可以直接连接到 ESXi 网络。

您可以通过多种方式连接到独立 ESXi 主机。
  • VMware Host Client
  • ESXCLI 接口
  • vSphere Web Services SDK 或 vSphere Automation SDK
  • 第三方客户端
独立主机的防火墙要求类似于包含 vCenter Server 时的要求。
  • 使用防火墙保护 ESXi 层,或者保护客户端和 ESXi 层,具体取决于您的配置。该防火墙可为网络提供基本保护。
  • 此类配置中的许可证是您在每个主机上安装的 ESXi 包的一部分。由于许可功能驻留在 ESXi 上,因此不需要设有防火墙的单独 License Server。

您可以使用 ESXCLI 或使用 VMware Host Client 配置防火墙端口。请参见《vSphere 单台主机管理 - VMware Host Client》

通过防火墙连接到虚拟机控制台

必须打开某些端口,供用户和管理员与虚拟机控制台进行通信。必须打开的端口取决于虚拟机控制台的类型,以及是通过 vCenter Server 使用 vSphere Client 进行连接还是通过 VMware Host Client 直接连接到 ESXi 主机。

有关端口、用途和分类(入站、出站或双向)的详细信息,请参见 VMware Ports and Protocols Tool™,网址为 https://ports.vmware.com

通过 vSphere Client 连接到基于浏览器的虚拟机控制台

使用 vSphere Client 进行连接时,您始终连接到用于管理 ESXi 主机的 vCenter Server 系统,并从该处访问虚拟机控制台。

如果使用 vSphere Client 连接到基于浏览器的虚拟机控制台,则必须允许进行以下访问:

  • 防火墙必须允许 vSphere Client 访问端口 443 上的 vCenter Server
  • 防火墙必须允许 vCenter Server 访问端口 902 上的 ESXi 主机。

通过 vSphere Client 连接到 VMware Remote Console

如果使用 vSphere Client 并连接到 VMware Remote Console (VMRC),则必须允许进行以下访问:

  • 防火墙必须允许 vSphere Client 访问端口 443 上的 vCenter Server
  • 防火墙必须允许 VMRC 访问端口 443 上的 vCenter Server,以及访问端口 902(对于 11.0 之前的 VMRC 版本)和端口 443(对于 VMRC 版本 11.0 及更高版本)上的 ESXi 主机。有关 VMRC 版本11.0 和 ESXi 端口要求的详细信息,请参见 VMware 知识库文章,网址为 https://kb.vmware.com/s/article/76672

使用 VMware Host Client 直接连接到 ESXi 主机

如果直接连接到 ESXi 主机,则可以使用 VMware Host Client 虚拟机控制台。
注: 请勿使用 VMware Host Client 直接连接到 vCenter Server 系统管理的主机。如果从 VMware Host Client 更改这些主机,则会导致环境不稳定。

防火墙必须允许访问端口 443 和 902 上的 ESXi 主机。

VMware Host Client 使用端口 902 为虚拟机上的客户机操作系统 MKS 活动提供连接。用户正是通过此端口与虚拟机的客户机操作系统及应用程序交互。VMware 不支持为此功能配置不同端口。