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

防火墙命令参考

可以使用 ESXi Shell 或 vSphere CLI 命令在命令行处配置 ESXi 以自动化防火墙配置。有关介绍,请参见《《ESXCLI 入门》》;有关使用 ESXCLI 操作防火墙和防火墙规则的示例,请参见《vSphere Command-Line Interface 概念和示例》。有关创建自定义防火墙规则的信息,请参见 VMware 知识库文章 2008226

表 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