所以我有一個小型實驗室,有 2 個 DC,都運行伺服器 2019 核心。我創建了一個包含一些防火牆規則的 GPO,並將其連結到網域的頂部,應用於所有設備,包括兩個 DC。
目前仍擔任所有 FSMO 角色的 DC1 已收到策略,但規則未激活
DC2 已收到策略且所有規則均處於活動狀態。
我一輩子都無法弄清楚為什麼一個 DC 正確地應用了規則,而另一個 DC 卻沒有。我可以導航到註冊表並查看兩個DC 上的防火牆規則,在RSOP 中,它表明計算機肯定正在接收策略並解析它,我什至可以在PowerShell 中搜索規則時看到規則,但是.... ..然後比較兩個 DC 時有差異:
DC1(不適用規則):
EnforcementStatus Name Profile PrimaryStatus
----------------- ---- ------- -------------
ProfileInactive ComPlusNetworkAccess-DCOM-In Domain Inactive
{ProfileInactive, Enforced} RemoteDesktop-UserMode-In-UDP Any OK
{ProfileInactive, Enforced} RemoteDesktop-UserMode-In-TCP Any OK
ProfileInactive RemoteEventLogSvc-RPCSS-In-TCP Domain Inactive
ProfileInactive RemoteEventLogSvc-NP-In-TCP Domain Inactive
ProfileInactive RemoteEventLogSvc-In-TCP Domain Inactive
ProfileInactive RVM-RPCSS-In-TCP Domain Inactive
ProfileInactive RVM-VDSLDR-In-TCP Domain Inactive
ProfileInactive RVM-VDS-In-TCP Domain Inactive
ProfileInactive ComPlusRemoteAdministration-DCOM-In Domain Inactive
ProfileInactive WMI-ASYNC-In-TCP Domain Inactive
ProfileInactive WMI-WINMGMT-In-TCP Domain Inactive
ProfileInactive WMI-RPCSS-In-TCP Domain Inactive
ProfileInactive RemoteTask-RPCSS-In-TCP Domain Inactive
ProfileInactive RemoteTask-In-TCP Domain Inactive
而在 DC2 上它們看起來像這樣:
EnforcementStatus Name Profile PrimaryStatus
----------------- ---- ------- -------------
Enforced ComPlusNetworkAccess-DCOM-In Domain OK
{ProfileInactive, Enforced} RemoteDesktop-UserMode-In-UDP Any OK
{ProfileInactive, Enforced} RemoteDesktop-UserMode-In-TCP Any OK
Enforced RemoteEventLogSvc-RPCSS-In-TCP Domain OK
Enforced RemoteEventLogSvc-NP-In-TCP Domain OK
Enforced RemoteEventLogSvc-In-TCP Domain OK
Enforced RVM-RPCSS-In-TCP Domain OK
Enforced RVM-VDSLDR-In-TCP Domain OK
Enforced RVM-VDS-In-TCP Domain OK
Enforced ComPlusRemoteAdministration-DCOM-In Domain OK
Enforced WMI-ASYNC-In-TCP Domain OK
Enforced WMI-WINMGMT-In-TCP Domain OK
Enforced WMI-RPCSS-In-TCP Domain OK
Enforced RemoteTask-RPCSS-In-TCP Domain OK
Enforced RemoteTask-In-TCP Domain OK
簡而言之,透過GPO 應用於DC1 的所有規則都處於「非活動」狀態,並顯示強制狀態為「ProfileInactive」 - 這表示網域設定檔已停用,但實際上根本不是這樣- 所有防火牆設定檔都在兩個 DC,當然還有一些由 DCPromo 啟用的自訂(網域設定檔)規則,因此該設定檔必須啟動並正常工作,但這裡來自兩個 DC
直流1:
Name : Domain
Enabled : True
DefaultInboundAction : NotConfigured
DefaultOutboundAction : NotConfigured
AllowInboundRules : NotConfigured
AllowLocalFirewallRules : NotConfigured
AllowLocalIPsecRules : NotConfigured
AllowUserApps : NotConfigured
AllowUserPorts : NotConfigured
AllowUnicastResponseToMulticast : NotConfigured
NotifyOnListen : False
EnableStealthModeForIPsec : NotConfigured
LogFileName : %systemroot%\system32\LogFiles\Firewall\pfirewall.log
LogMaxSizeKilobytes : 4096
LogAllowed : False
LogBlocked : False
LogIgnored : NotConfigured
DisabledInterfaceAliases : {NotConfigured}
直流2:
Name : Domain
Enabled : True
DefaultInboundAction : NotConfigured
DefaultOutboundAction : NotConfigured
AllowInboundRules : NotConfigured
AllowLocalFirewallRules : NotConfigured
AllowLocalIPsecRules : NotConfigured
AllowUserApps : NotConfigured
AllowUserPorts : NotConfigured
AllowUnicastResponseToMulticast : NotConfigured
NotifyOnListen : False
EnableStealthModeForIPsec : NotConfigured
LogFileName : %systemroot%\system32\LogFiles\Firewall\pfirewall.log
LogMaxSizeKilobytes : 4096
LogAllowed : False
LogBlocked : False
LogIgnored : NotConfigured
DisabledInterfaceAliases : {NotConfigured}
有人知道問題可能出在哪裡嗎?
答案1
在 DC1 的網路設定中,您是否已連線到網域設定檔?設定 -> 網路和 Internet -> 網路和共用中心 -> 變更進階共用設定 -> 確保網域是目前設定檔。
答案2
KB162 是正確的,因為 DC1 認為它位於公共網路位置而不是網域。
至於原因…
NlaSvc(網路定位服務)服務負責決定設備的網路位置。為了做到這一點,它依賴(也許除其他外)DNS。
此 DC 的 NIC 有 2 個 DNS 項目,如下所示(按此順序):
- 127.0.0.1
- 直流2
DNS 服務在 NLA 服務之後啟動,導致伺服器認為它位於公共位置。儘管 DC2 也將 127.0.0.1 作為第一個 DNS 伺服器,但它並沒有遇到這些問題,這意味著正在發生競爭情況,並且 DC1 也可能不會總是受到此問題的影響。
一些研究顯示了一些可能的解決方案:
- 將 NlaSvc 設定為自動(延遲啟動)
- 將 DNS 的依賴項新增至 NlaSvc
- 將 DNS 伺服器順序變更為先存取另一個 DC,然後再存取自身。
第一個選項不一定能解決這個問題,因為它是一個競爭條件,而且我們不知道 DNS 伺服器需要多長時間才能啟動。它很可能總是會修復它,但我不相信我們可以 100% 保證它永遠不會再發生。
第二個選項有點駭客行為,我認為不受支持,甚至可能微軟在更新期間更改了這些值,但無法確定。
至於第三個選項…雖然它在至少一個 DC 啟動的情況下解決了這個問題,但當兩個 DC 都關閉時,它仍然會出現問題:第一個啟動的 DC 會尋找另一個 DC DNS,它不回复,NlaSvc 將網路位置設為公共,DNS 服務啟動,NlaSvc 不再更改它。不過,啟動第二個 DC 也沒什麼問題。
我認為我會選擇第一個選項,因為它可以說提供了最好的支持,並將從那裡進行監控。
感謝 KB162 幫助我找到這個解決方案。