為 Managed Microsoft AD 設定防火牆

Managed Service for Microsoft Active Directory 所操作的網域控制器會公開多項服務,包括 LDAP、DNS、Kerberos 和 RPC。視用途而定,在 Google Cloud上部署的虛擬機器 (VM) 和在內部部署的機器,可能需要存取這些服務,才能充分運用 Active Directory。

為減少網域控制器和 VM 的攻擊面,您應使用防火牆禁止任何非必要的網路通訊。本文將說明如何設定防火牆,以便支援常見的 Active Directory 用途,同時禁止其他網路通訊。

登入與驗證

雖然登入和驗證這兩個詞經常交替使用,但在 Windows 安全性方面,這兩個詞的含義不同。Logon:說明使用者取得存取權的系統上發生的程序。相反地,驗證則是由使用者帳戶所在的電腦執行。

當您使用本機帳戶登入電腦時,登入和驗證作業都會由目標電腦處理。在 Active Directory 環境中,使用網域使用者登入的情況較為常見。在這種情況下,登入作業會由目標機器處理,而驗證作業則由網域控制器執行。

如要進行驗證,用戶端可以使用 KerberosNTLM。用戶端完成驗證後,目標機器就需要處理登入作業。視用戶端要求的登入類型而定,這可能需要與網域控制器進行額外互動,使用 Kerberos、NTLM、LDAPRPCSMB 等通訊協定。

由於驗證和處理登入作業需要不同的通訊協定,因此在找出正確的防火牆設定時,區分這兩個概念會很有幫助。

常見用途

以下各節將說明存取 Managed Microsoft AD 的常見用途,並顯示您需要為每個用途設定哪些防火牆規則。

如果您不打算將 Managed Microsoft AD 與內部 Active Directory 整合,只需閱讀本文第一節「 從 VPC 中存取 Managed Microsoft AD」。如果您打算在 Managed Microsoft AD 和內部部署 Active Directory 之間建立信任關係,則整篇文章都適用。

您可以使用防火牆規則記錄來分析是否需要額外的通訊埠。由於「默示拒絕輸入」規則已停用記錄功能,因此您必須先建立低優先順序的自訂防火牆規則,拒絕所有輸入流量,但啟用防火牆記錄功能。設定此規則後,任何連線嘗試失敗都會導致記錄項目發布至 Stackdriver。由於防火牆規則可能會產生大量記錄,因此建議您在完成分析後再次停用防火牆記錄功能。

從 VPC 內存取 Managed Microsoft AD

使用預設網路部署 Managed Microsoft AD 時,無須進一步設定,即可讓 VPC 中的 VM 存取 Active Directory。

如果您已自訂 VPC 設定或防火牆規則,請務必確保防火牆設定仍允許與 Managed Microsoft AD 通訊。下列各節將說明您可能需要建立的防火牆規則。

網域名稱解析

當 VM 嘗試解析 DNS 名稱時,不會直接查詢網域控制器。相反地,DNS 查詢會傳送至中繼資料伺服器,這是為 Compute Engine VM 設定的預設 DNS 伺服器。中繼資料伺服器會將查詢轉送至由 Managed Microsoft AD 建立的 Cloud DNS 私人 DNS 轉送區域。然後,這個轉送區會將查詢轉送至適當的網域控制器。

您不需要設定任何防火牆規則,即可啟用此用途。對於 VPC 中的 VM,系統一律允許與 Cloud DNS 的通訊 ,而 Managed Microsoft AD 預設會允許從 Cloud DNS 轉送的 DNS 要求

使用 Kerberos 向 VM 進行驗證

已登入一個 VM 的使用者,可能需要存取其他 VM 提供的服務。舉例來說,使用者可能會嘗試開啟 RDP 連線、存取檔案共用,或存取需要驗證的 HTTP 資源。

如要讓使用者透過 Kerberos 驗證伺服器 VM,用戶端 VM 必須先從其中一個受管理的 Microsoft AD 控制器取得適當的 Kerberos 票證。

如要讓 VM 使用 Kerberos 向其他 VM 進行驗證,防火牆規則必須允許以下通訊:

動作 寄件者 收件者 通訊協定
1 允許 用戶端 VM 代管的 Microsoft AD 子網路 Kerberos (UDP/88、TCP/88)
LDAP (UDP/389、TCP/389)
2 允許 用戶端 VM 伺服器 VM 用於存取 VM 的通訊協定,例如 HTTP (TCP/80、TCP/443) 或 RDP (TCP/3389)
3 允許 伺服器 VM 代管的 Microsoft AD 子網路 請參閱「處理登入作業」。

使用 NTLM 向 VM 進行驗證

雖然在大多數情況下,Windows 會優先使用 Kerberos 而非 NTLM,但用戶端可能偶爾需要改用 NTLM 進行驗證。NTLM 會依賴傳遞驗證,因此需要伺服器與受管理的 Microsoft AD 網域控制器通訊,才能驗證使用者。

如要讓 VM 使用 NTLM 驗證其他 VM,防火牆規則必須允許下列通訊:

動作 寄件者 收件者 通訊協定
1 允許 用戶端 VM 伺服器 VM 用於存取 VM 的通訊協定,例如 HTTP (TCP/80、TCP/443) 或 RDP (TCP/3389)
2 允許 用戶端 VM 代管的 Microsoft AD 子網路 請參閱「處理登入作業」。

加入網域和處理登入作業

如要以網域成員身分運作,並處理使用者的登入作業,機器必須能夠與 Active Directory 互動。具體使用的通訊協定組合取決於個別用戶端要求的登入類型。為支援所有常見情境,您應允許下列通訊協定組合。

動作 寄件者 收件者 通訊協定
1 允許 伺服器 VM 代管的 Microsoft AD 子網路 Kerberos (UDP/88, TCP/88)
NTP (UDP/123)
RPC (TCP/135, TCP/49152-65535)
LDAP (UDP/389, TCP/389)
SMB (UDP/445, TCP/445)
LDAP GC (TCP/3268)

此外,視實際用途而定,您可能還需要允許下列通訊協定:

動作 寄件者 收件者 通訊協定
1 允許 伺服器 VM 代管的 Microsoft AD 子網路 Kerberos 密碼變更 (UDP/464、TCP/464)
安全 LDAP (TCP/636、TCP/3269)

管理代管的 Microsoft AD

您必須使用已加入網域的 VM 才能管理 Managed Microsoft AD。如要在這個 VM 上使用 Active Directory 管理中心等工具,VM 也必須能夠存取受控的 Microsoft AD 網域控制器公開的 Active Directory Web Services。

動作 寄件者 收件者 通訊協定
1 允許 管理員 VM 代管的 Microsoft AD 子網路 AD Web Services (TCP/9389)

將 Managed Microsoft AD 連線至內部部署的 Active Directory

如要將 Managed Microsoft AD 連線至內部部署的 Active Directory,您必須在樹系之間建立信任關係。此外,您應在 Google Cloud 與內部部署環境之間啟用 DNS 名稱解析功能。

建立及驗證信任

如要建立及驗證樹狀結構信任關係,Managed Microsoft AD 網域控制站和貴機構內部樹狀結構的根網域控制站必須能夠雙向通訊。

如要啟用信任建立和驗證功能,請將內部部署防火牆設為允許符合下列特性的傳入和傳出流量:

動作 寄件者 收件者 通訊協定
1 允許 內部部署 Active Directory 代管的 Microsoft AD DNS (UDP/53, TCP/53)
Kerberos (UDP/88, TCP/88)
Kerberos 密碼變更 (UDP/464, TCP/464)
RPC (TCP/135, TCP/49152-65535)
LDAP (UDP/389, TCP/389)
SMB (UDP/445, TCP/445)
2 允許 代管的 Microsoft AD 內部部署 Active Directory DNS (UDP/53, TCP/53)
Kerberos (UDP/88, TCP/88)
Kerberos 密碼變更 (UDP/464, TCP/464)
RPC (TCP/135, TCP/49152-65535)
LDAP (UDP/389, TCP/389)
SMB (UDP/445, TCP/445)

受管理的 Microsoft AD 會預先設定為允許符合這些特徵的流量,因此您不需要在Google Cloud上設定額外的防火牆規則。

從內部部署環境解析 DNS 名稱 Google Cloud

您可以透過兩種方式,讓內部部署機器在 Managed Microsoft AD 中解析 DNS 名稱:DNS 委派和條件式 DNS 轉送。

DNS 委派

代管的 Microsoft AD 使用的 DNS 網域可能是在內部使用的 DNS 網域的子網域。舉例來說,您可以使用 cloud.example.com 管理受管理的 Microsoft AD,同時在內部使用 example.com。如要讓內部用戶端解析 Google Cloud 資源的 DNS 名稱,您可以設定 DNS 委派。

使用 DNS 委派時,系統會先查詢內部 DNS 伺服器,嘗試解析Google Cloud 資源的 DNS 名稱。接著,DNS 伺服器會將用戶端重新導向至 Cloud DNS,而 Cloud DNS 會將要求轉送至 Managed Microsoft AD 網域控制器。

如要將 Cloud DNS 開放給內部部署網路,您必須建立傳入伺服器政策。這麼做會建立傳入轉送器 IP 位址,該 IP 位址屬於您的虛擬私有雲。

如要使用內部部署的轉送器位址,請將內部部署防火牆設為允許符合下列特徵的輸出流量。

動作 寄件者 收件者 通訊協定
1 允許 內部部署 Active Directory 代管的 Microsoft AD DNS (UDP/53, TCP/53)
Kerberos (UDP/88, TCP/88)
Kerberos 密碼變更 (UDP/464, TCP/464)
RPC (TCP/135, TCP/49152-65535)
LDAP (UDP/389, TCP/389)
SMB (UDP/445, TCP/445)
2 允許 代管的 Microsoft AD 內部部署 Active Directory DNS (UDP/53, TCP/53)
Kerberos (UDP/88, TCP/88)
Kerberos 密碼變更 (UDP/464, TCP/464)
RPC (TCP/135, TCP/49152-65535)
LDAP (UDP/389, TCP/389)
SMB (UDP/445, TCP/445)

條件式 DNS 轉送

受管理的 Microsoft AD 所使用的 DNS 網域,可能不是在內部使用的 DNS 網域的子網域。舉例來說,您可以使用 cloud.example.com 管理 Managed Microsoft AD,同時在內部部署 corp.example.local

如果 DNS 網域不相關,您可以在內部部署的 Active Directory DNS 中設定條件式 DNS 轉送。所有與 Managed Microsoft AD 使用的 DNS 名稱相符的查詢都會轉送至 Cloud DNS。

如要使用條件式 DNS 轉送,您必須先設定啟用傳入 DNS 轉送的 DNS 政策。如要使用內部部署的產生轉送器位址,請將內部部署防火牆設為允許符合下列特性的輸出流量。

動作 寄件者 收件者 通訊協定
1 允許 內部部署 Active Directory DNS 轉送 IP 位址 DNS (UDP/53、TCP/53)

在 Google Cloud 端建立防火牆規則,允許符合這些條件的輸入流量。

您不需要設定任何防火牆規則,即可啟用 DNS 轉送器與 Cloud DNS 之間的通訊 (2)。

從 Google Cloud解析內部部署 DNS 名稱

受管理的 Microsoft AD 會使用條件式 DNS 轉送功能,解析貴機構內部網域中的 DNS 名稱。如要讓在 Google Cloud 中執行的用戶端也能解析由內部部署 Active Directory 管理的 DNS 名稱,您可以在 Cloud DNS 中建立私人轉送區域,將查詢轉送至內部部署網域控制站。

如要啟用從 Google Cloud解析內部部署 DNS 名稱的功能,請按照下表設定內部部署防火牆,允許輸入流量。

動作 寄件者 收件者 通訊協定
1 允許 代管的 Microsoft AD 內部部署 Active Directory DNS (UDP/53、TCP/53)
2 允許 Cloud DNS (35.199.192.0/19) 內部部署 Active Directory DNS (UDP/53、TCP/53)

Google Cloud 預設允許對應的輸出流量。

從內部網路存取 Managed Microsoft AD 資源

如果 Managed Microsoft AD 樹系已設為信任內部部署樹系,您可能會希望內部部署使用者和機器能夠存取 Managed Microsoft AD 樹系中的資源。

使用 Kerberos 從內部部署驗證 VM

已登入內部部署電腦的使用者,可能需要存取由在 Google Cloud 上執行的 VM 提供的服務,且該 VM 是受管理 Microsoft AD 森林的成員。舉例來說,使用者可能會嘗試開啟 RDP 連線、存取檔案共用,或存取需要驗證的 HTTP 資源。

如要允許使用者使用 Kerberos 驗證伺服器 VM,用戶端機器必須取得適當的 Kerberos 票證。這需要與其中一個內部部署的網域控制站,以及 Managed Microsoft AD 網域控制站通訊。

如要讓內部部署 VM 使用 Kerberos 進行驗證,請將內部部署防火牆設定為允許下列輸出流量。

動作 寄件者 收件者 通訊協定
1 允許 用戶端電腦 (內部部署) 代管的 Microsoft AD 子網路 LDAP (UDP/389、TCP/389)
Kerberos (UDP/88、TCP/88)
2 允許 用戶端電腦 (內部部署) 伺服器 VM (Google Cloud) 應用程式使用的通訊協定,例如 HTTP (TCP/80、TCP/443) 或 RDP (TCP/3389)
3 允許 伺服器 VM 代管的 Microsoft AD 子網路 請參閱「處理登入作業」。

在 Google Cloud 端建立防火牆規則,允許 (1) 和 (2) 的輸入流量。系統預設允許傳出流量傳送至 Managed Microsoft AD (3)。

使用 NTLM 從內部部署驗證 VM

使用 NTLM 驗證從內部部署 Active Directory 樹系到已加入受管理 Microsoft AD 樹系的伺服器 VM 的使用者時,受管理 Microsoft AD 網域控制器需要與內部部署網域控制器通訊。

如要讓內部部署 VM 使用 NTLM 進行驗證,請將內部部署防火牆設為允許輸入和輸出流量,如下所示。

動作 寄件者 收件者 通訊協定
1 允許 用戶端電腦 (內部部署) 伺服器 VM (Google Cloud) 應用程式使用的通訊協定,例如 HTTP (TCP/80、TCP/443) 或 RDP (TCP/3389)
2 允許 伺服器 VM 代管的 Microsoft AD 子網路 請參閱「處理登入作業」。
3 允許 代管的 Microsoft AD 子網路 內部部署 Active Directory LDAP (UDP/389、TCP/389)
SMB (UDP/445、TCP/445)

在 Google Cloud 側建立防火牆規則,允許 (1) 的輸入流量。根據預設,系統會允許 (2) 和 (3) 的輸出流量。

處理內部網域使用者的登入作業

如要處理內部部署樹系使用者的登入作業,VM 必須能夠與內部部署 Active Directory 互動。具體使用的一組通訊協定,取決於用戶端要求的登入類型。為了支援所有常見的情況,請將內部部署防火牆設為允許符合這些特性的輸入流量。

動作 寄件者 收件者 通訊協定
1 允許 伺服器 VM (Google Cloud) 內部部署 AD 子網路 Kerberos (UDP/88, TCP/88)
NTP (UDP/123)
RPC (TCP/135, TCP/49152-65535)
LDAP (UDP/389, TCP/389)
SMB (UDP/445, TCP/445)
LDAP GC (TCP/3268)

視實際用途而定,您可能也需要允許下列通訊協定。

  • Kerberos 密碼變更 (UDP/464、TCP/464)
  • 安全 LDAP (TCP/636、TCP/3269)

在 Managed Microsoft AD 端,系統預設允許對應的輸出流量。

在管理 VM 上,您可能不打算允許內部網域的使用者登入。不過,您可能需要在管理 VM 上執行的活動之一,就是管理群組成員資格。每當您使用物件挑選器參照內部部署的樹狀結構中的使用者或群組時,物件挑選器就需要存取內部部署的網域控制器。為使這項功能正常運作,管理 VM 必須具備與處理內部部署樹系使用者登入作業相同的內部部署 Active Directory 網域控制器存取權。

從 Google Cloud存取內部部署 Active Directory 資源

如果內部部署樹系已設定為信任 Managed Microsoft AD 樹系,您可能會希望 Managed Microsoft AD 樹系的使用者能夠存取內部部署資源。

使用 Kerberos 驗證內部部署的 VM

如果使用者已登入在 Google Cloud 上執行的 VM,且是受管理 Microsoft AD 樹狀結構的成員,可能需要存取由內部部署機器提供的服務,該機器是內部部署樹狀結構的成員。舉例來說,使用者可能會嘗試開啟 RDP 連線、存取檔案共用,或存取需要驗證的 HTTP 資源。

如要讓使用者使用 Kerberos 驗證內部機器,VM 必須取得適當的 Kerberos 票證。這需要先與 Managed Microsoft AD 控制器通訊,然後再與內部部署的網域控制器通訊。

如要讓內部部署 VM 使用 Kerberos 進行驗證,請將內部部署防火牆設定為允許符合下列特性的傳入流量。

動作 寄件者 收件者 通訊協定
1 允許 用戶端 VM (Google Cloud) 代管的 Microsoft AD 子網路 Kerberos (UDP/88、TCP/88)
LDAP (UDP/389、TCP/389)
處理登入作業時會隱含使用
2 允許 用戶端 VM (Google Cloud) 內部部署 Active Directory Kerberos (UDP/88、TCP/88)
LDAP (UDP/389、TCP/389)
3 允許 用戶端 VM (Google Cloud) 伺服器電腦 (內部部署) 應用程式使用的通訊協定,例如 HTTP (TCP/80、TCP/443) 或 RDP (TCP/3389)

在 Google Cloud 端,系統預設允許對應的輸出流量。

使用 NTLM 驗證內部部署 VM

使用 NTLM 將使用者從 Managed Microsoft AD 樹系驗證至已加入內部部署系統樹系的伺服器機器時,內部部署系統網域控制器必須能夠與 Managed Microsoft AD 網域控制器通訊:

如要讓內部部署的 VM 使用 Kerberos 進行驗證,請設定內部部署防火牆,允許符合這些特性的輸入和輸出流量。

動作 寄件者 收件者 通訊協定
1 允許 用戶端 VM (Google Cloud) 伺服器電腦 (內部部署) 應用程式使用的通訊協定,例如 HTTP (TCP/80、TCP/443) 或 RDP (TCP/3389)
2 允許 內部部署 Active Directory 代管的 Microsoft AD 子網路 LDAP (UDP/389、TCP/389)
SMB (UDP/445、TCP/445)

在 Google Cloud 端,系統預設允許 (1) 的輸出流量和 (2) 的輸入流量。

處理受管理 Microsoft AD 森林使用者的登入作業

如要處理受管理 Microsoft AD 樹系使用者的登入作業,在本地端執行的電腦必須能夠與受管理 Microsoft AD 網域控制器互動。具體使用的一組通訊協定取決於用戶端要求的登入類型。如要支援所有常見情境,請允許下列通訊協定組合。

動作 寄件者 收件者 通訊協定
1 允許 伺服器電腦 (內部部署) 代管的 Microsoft AD 子網路 Kerberos (UDP/88, TCP/88)
NTP (UDP/123)
RPC (TCP/135, TCP/49152-65535)
LDAP (UDP/389, TCP/389)
SMB (UDP/445, TCP/445)
LDAP GC (TCP/3268)

視實際用途而定,您可能也需要允許下列通訊協定。

  • Kerberos 密碼變更 (UDP/464、TCP/464)
  • 安全 LDAP (TCP/636、TCP/3269)

請確認內部部署防火牆允許符合這些特性的輸出流量。您不需要在Google Cloud 中設定任何防火牆規則,即可啟用 Managed Microsoft AD 的對應輸入流量。

在管理機器上,您可能不打算允許受管理 Microsoft AD 樹林使用者登入。您可能需要在管理機器上執行的活動之一,就是管理群組成員資格。只要您使用物件挑選器參照受管理的 Microsoft AD 森林中的使用者或群組,物件挑選器就需要存取受管理的 Microsoft AD 網域控制器。為使這項功能正常運作,管理機器必須具備與處理 Managed Microsoft AD 樹系使用者登入作業相同的 Managed Microsoft AD 網域控制站存取權。