ESXi 包含預設為啟用的防火牆。在安裝時,ESXi 防火牆會設定為封鎖傳入和傳出流量 (主機安全性設定檔中已啟用之服務的流量除外)。可以使用 vSphere Client、CLI 和 API 管理防火牆。

開啟防火牆上的連接埠時,請考慮不受限制地存取 ESXi 主機上執行的服務,會使主機遭受外部攻擊和未經授權的存取。將 ESXi 防火牆設定為僅從授權網路啟用存取,可降低風險。

備註: 防火牆還允許網際網路控制訊息通訊協定 (ICMP) Ping 及與 DHCP 和 DNS (僅 UDP) 用戶端的通訊。

您可以管理 ESXi 防火牆連接埠,說明如下:

  • 針對 vSphere Client 中的每台主機,使用設定 > 防火牆。請參閱管理 ESXi 防火牆設定
  • 從命令列或在指令碼中使用 ESXCLI 命令。請參閱使用 ESXCLI 防火牆命令設定 ESXi 行為
  • 如果要開啟的連接埠不在安全性設定檔中,請使用自訂 VIB。

    若要安裝自訂 VIB,您必須將 ESXi 主機的接受層級變更為 CommunitySupported。

    備註: 如果透過 VMware 技術支援調查安裝 CommunitySupported VIB 的 ESXi 主機上的問題,VMware 支援可能會要求解除安裝此 VIB。這類要求是疑難排解步驟,用於判定該 VIB 是否與正在調查的問題相關。

NFS 用戶端規則集 (nfsClient) 的行為與其他規則集不同。啟用 NFS 用戶端規則集後,會為允許的 IP 位址清單中的目的地主機開啟所有輸出 TCP 連接埠。如需詳細資訊,請參閱NFS 用戶端防火牆行為

管理 ESXi 防火牆設定

您可以從 vSphere Client 或命令列,為服務或管理代理程式設定傳入和傳出防火牆連線。

此工作說明如何使用 vSphere Client 設定 ESXi 防火牆設定。可以使用 ESXi Shell 或 ESXCLI 命令,在命令列設定 ESXi 以自動化防火牆組態。如需使用 ESXCLI 操縱防火牆和防火牆規則的相關範例,請參閱 使用 ESXCLI 防火牆命令設定 ESXi 行為

備註: 如果不同的服務具有重疊的連接埠規則,則啟用一項服務時可能會隱式啟用其他服務。您可以指定允許存取主機上每個服務的 IP 位址,以避免發生此問題。

程序

  1. 使用 vSphere Client 登入 vCenter Server
  2. 在詳細目錄中瀏覽到主機。
  3. 按一下設定,然後按一下系統下的防火牆
    可以透過按一下 傳入傳出,在傳入和傳出連線之間切換。
  4. 在 [防火牆] 區段中,按一下編輯
  5. 從以下三個服務群組中選取一個:未分組安全殼層簡易網路管理通訊協定
  6. 選取要啟用的規則集,或取消選取要停用的規則集。
  7. 對於某些服務,也可以透過導覽至系統下的設定 > 服務來管理服務詳細資料。
    如需有關啟動、停止和重新啟動服務的詳細資訊,請參閱 啟用或停用 ESXi 服務
  8. 對於某些服務,您可以明確指定允許用以連線的 IP 位址。
  9. 按一下確定

ESXi 主機新增允許的 IP 位址

依預設,每項服務的防火牆均允許存取所有 IP 位址。若要限制流量,請變更每項服務,以僅允許來自您的管理子網路的流量。如果您的環境不使用某些服務,您亦可取消選取這些服務。

若要更新服務的 [允許的 IP] 清單,可以使用 vSphere Client、ESXCLI 或 PowerCLI。此工作說明如何使用 vSphere Client。如需使用 ESXCLI 的相關指示,請參閱 ESXCLI 概念和範例中的管理 ESXi 防火牆

程序

  1. 使用 vSphere Client 登入 vCenter Server
  2. 瀏覽到 ESXi 主機。
  3. 按一下設定,然後按一下系統下的防火牆
    可以透過按一下 傳入傳出,在傳入和傳出連線之間切換。
  4. 在 [防火牆] 區段中,按一下編輯
  5. 從以下三個服務群組中選取一個:未分組安全殼層簡易網路管理通訊協定
  6. 若要顯示 [允許的 IP 位址] 區段,請展開一個服務。
  7. 在 [允許的 IP 位址] 區段中,取消選取允許從任何 IP 位址連線,然後輸入允許連線到主機之網路的 IP 位址。
    使用逗點分隔 IP 位址。可以使用以下位址格式:
    • 192.168.0.0/24
    • 192.168.1.2, 2001::1/64
    • fd3e:29a6:0a81:e478::/64
  8. 確保選取服務本身。
  9. 按一下確定
  10. 驗證服務的允許的 IP 位址資料行中的變更。

ESXi 主機的傳入和傳出防火牆連接埠

vSphere ClientVMware Host Client 可讓您開啟和關閉每項服務的防火牆連接埠,或允許來自所選 IP 位址的流量。

ESXi 包含預設為啟用的防火牆。在安裝時,ESXi 防火牆會設定為封鎖傳入和傳出流量 (主機安全性設定檔中已啟用之服務的流量除外)。如需 ESXi 防火牆中支援的連接埠和通訊協定的清單,請參閱 VMware Ports and Protocols Tool™,網址為 https://ports.vmware.com/

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 位址清單中。
備註: 如果手動啟用 nfsClient 規則集或手動設定「允許所有 IP 位址」原則,不論在 NFS v3 資料存放區新增到系統之前或之後,卸載最新 NFS v3 資料存放區時都將覆寫您的設定。卸載所有 NFS v3 資料存放區後,將停用 nfsClient 規則集。

移除或卸載 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

表 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> 將 enabled 設定為 true 可啟用指定規則集。將 enabled 設定為 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 列出防火牆中每個規則集的規則。