如果环境包含多个 ESXi 主机,则建议使用 ESXCLI 命令或 vSphere Web Services SDK 自动化防火墙配置。

防火墙命令参考

可以使用 ESXi Shell 或 vSphere CLI 命令在命令行处配置 ESXi 以自动化防火墙配置。有关介绍,请参见《vSphere Command-Line Interface 入门》;有关使用 ESXCLI 操作防火墙和防火墙规则的示例,请参见《vSphere 命令行界面概念和示例》

表 1. 防火墙命令

命令

描述

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

列出防火墙中的每个规则集的规则。

防火墙命令示例

以下示例来自 virtuallyGhetto 上的博客帖子。

  1. 验证称为“virtuallyGhetto”的新规则集。

    esxcli network firewall ruleset rule list | grep virtuallyGhetto

  2. 指定特定 IP 地址或 IP 范围以访问特定服务。以下示例禁用 allow all 选项并指定 virtuallyGhetto 服务的特定范围。

    esxcli network firewall ruleset set --allowed-all false --ruleset-id=virtuallyGhetto
    esxcli network firewall ruleset allowedip add --ip-address=172.30.0.0/24 --ruleset-id=virtuallyGhetto