ESXi 包括默认启用的防火墙。安装时,会配置 ESXi 防火墙阻止入站和出站流量,但在主机安全配置文件中启用的服务的流量除外。您可以使用 vSphere Client、CLI 和 API 管理防火墙。
打开防火墙端口时,应考虑不限制访问 ESXi 主机上运行的服务可能使主机遭受外部攻击及未经授权的访问。通过将 ESXi 防火墙配置为仅从授权网络启用访问来降低该风险。
可以如下所示管理 ESXi 防火墙端口:
- 在 vSphere Client 中,对每台主机使用 。请参见管理 ESXi 防火墙设置。
- 从命令行或在脚本中使用 ESXCLI 命令。请参见使用 ESXCLI 防火墙命令配置 ESXi 行为。
- 如果安全配置文件中不包括要打开的端口,则使用自定义 VIB。
要安装自定义 VIB,必须将 ESXi 主机的接受程度改为 CommunitySupported。
注: 如果您联系 VMware 技术支持来调查装有社区支持的 VIB 的 ESXi 主机上的问题,VMware 技术支持可能会要求您卸载该 VIB。此类请求是一个故障排除步骤,用于确定该 VIB 是否与调查的问题有关。
NFS 客户端规则集 (nfsClient) 的行为与其他规则集不同。启用 NFS 客户端规则集后,将在允许的 IP 地址列表中打开目标主机的所有出站 TCP 端口。有关详细信息,请参见NFS 客户端防火墙行为。
管理 ESXi 防火墙设置
可以通过 vSphere Client 或在命令行中为服务或管理代理配置入站和出站防火墙连接。
此任务介绍了如何使用 vSphere Client 配置 ESXi 防火墙设置。可以使用 ESXi Shell 或 ESXCLI 命令在命令行处配置 ESXi 以自动执行防火墙配置。有关使用 ESXCLI 操作防火墙和防火墙规则的示例,请参见 使用 ESXCLI 防火墙命令配置 ESXi 行为。
过程
为 ESXi 主机添加允许的 IP 地址
默认情况下,可以通过每个服务的防火墙访问所有 IP 地址。要限制流量,请更改每个服务,以便仅允许来自管理子网的流量。如果您的环境不使用某些服务,也可以取消选择这些服务。
要更新服务的允许的 IP 列表,可以使用 vSphere Client、ESXCLI 或 PowerCLI。此任务介绍了如何使用 vSphere Client。有关使用 ESXCLI 的说明,请参见《ESXCLI 概念和示例》文档中标题为“管理 ESXi 防火墙”的主题。
过程
ESXi 主机的入站和出站防火墙端口
使用 vSphere Client 或 VMware Host Client 打开和关闭每个服务的防火墙端口。
ESXi 包括默认启用的防火墙。安装时,会配置 ESXi 防火墙以阻止除主机安全配置文件中启用的服务相关的流量之外的所有入站和出站流量。有关 ESXi 防火墙中受支持端口和协议的列表,请参见 https://ports.vmware.com/ 中的 VMware Ports and Protocols Tool™。
VMware Ports and Protocols Tool 将列出默认安装的服务的端口信息。如果在主机上安装其他 VIB,则可能还会配置其他服务和防火墙端口。这些信息主要用于 vSphere Client 中显示的服务,但是 VMware Ports and Protocols Tool 还包括其他某些端口。
NFS 客户端防火墙行为
NFS 客户端防火墙规则集的行为方式与其他 ESXi 防火墙规则集不同。挂载或卸载 NFS 数据存储时,ESXi 将配置 NFS 客户端设置。对于不同版本的 NFS,行为有所不同。
添加、挂载或卸载 NFS 数据存储时,产生的行为取决于 NFS 版本。
NFS v3 防火墙行为
添加或挂载 NFS v3 数据存储时,ESXi 将检查 NFS 客户端 (nfsClient) 防火墙规则集的状态。
- 如果停用了 nfsClient 规则集,则 ESXi 将激活规则集,并通过将 allowedAll 标记设置为 FALSE 来停用“允许所有 IP 地址”策略。NFS 服务器的 IP 地址将会添加到允许的出站 IP 地址的列表中。
- 如果激活了 nfsClient 规则集,则规则集状态和允许的 IP 地址策略将不会更改。NFS 服务器的 IP 地址将会添加到允许的出站 IP 地址的列表中。
移除或卸载 NFS v3 数据存储时,ESXi 会执行以下操作之一。
- 如果未从已卸载数据存储的服务器挂载任何剩余的 NFS v3 数据存储,则 ESXi 将从出站 IP 地址列表中移除该服务器的 IP 地址。
- 如果执行卸载操作后没有剩余任何挂载的 NFS v3 数据存储,则 ESXi 将停用 nfsClient 防火墙规则集。
NFS v4.1 防火墙行为
挂载第一个 NFS v4.1 数据存储时,ESXi 将激活 nfs41client 规则集并将其 allowedAll 标记设置为 TRUE。此操作将打开所有 IP 地址的端口 2049。卸载 NFS v4.1 数据存储不会影响防火墙状态。也就是说,第一个 NFS v4.1 挂载将打开端口 2049,除非明确关闭该端口,否则该端口将保持激活状态。
使用 ESXCLI 防火墙命令配置 ESXi 行为
如果环境包含多个 ESXi 主机,可使用 ESXCLI 命令或 vSphere Web Services SDK 自动执行防火墙配置。
防火墙命令参考
可以使用 ESXi Shell 或 ESXCLI 命令在命令行处配置 ESXi 以自动执行防火墙配置。要操作防火墙和防火墙规则,请参见《ESXCLI 入门》了解相关介绍,参见《ESXCLI 概念和示例》查看使用 ESXCLI 的示例。
在 ESXi 7.0 及更高版本中,已限制对用于创建自定义防火墙规则的 service.xml
文件进行访问。有关使用 /etc/rc.local.d/local.sh
文件创建自定义防火墙规则的信息,请参见 VMware 知识库文章 2008226。
命令 | 描述 |
---|---|
esxcli network firewall get | 返回防火墙的状态并列出默认操作。 |
esxcli network firewall set --default-action | 设置为 true 可将默认操作设置为通过。设置为 false 可将默认操作设置为丢弃。 |
esxcli network firewall set --enabled | 激活或停用 ESXi 防火墙。 |
esxcli network firewall load | 加载防火墙模块和规则集配置文件。 |
esxcli network firewall refresh | 如果已加载防火墙模块,则通过读取规则集文件来刷新防火墙配置。 |
esxcli network firewall unload | 破坏过滤器并卸载防火墙模块。 |
esxcli network firewall ruleset list | 列出规则集信息。 |
esxcli network firewall ruleset set --allowed-all | 设置为 true 可允许所有人对所有 IP 地址具有访问权限。设置为 false 可使用允许的 IP 地址列表。 |
esxcli network firewall ruleset set --enabled --ruleset-id=<string> | 将“已启用”设置为 true 可激活指定规则集。将“已启用”设置为 false 可停用指定规则集。 |
esxcli network firewall ruleset allowedip list | 列出指定规则集允许的 IP 地址。 |
esxcli network firewall ruleset allowedip add | 允许从指定的 IP 地址或 IP 地址范围访问规则集。 |
esxcli network firewall ruleset allowedip remove | 从指定的 IP 地址或 IP 地址范围移除对规则集的访问。 |
esxcli network firewall ruleset rule list | 列出防火墙中的每个规则集的规则。 |