Windows 防火墙 GPO 未正确应用

Windows 防火墙 GPO 未正确应用

所以我有一个小型实验室,里面有 2 个 DC,都运行 Server 2019 Core。我创建了一个包含一些防火墙规则的 GPO,并将其链接到域的顶部,应用于所有设备,包括两个 DC。

DC1 当前仍拥有所有 FSMO 角色,已收到策略,但规则未生效

DC2 已收到策略且所有规则均处于活动状态。

我终其一生都无法弄清楚为什么一个 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 开始的

DC1:

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
  • DC2

DNS 服务在 NLA 服务之后启动,导致服务器认为它位于公共位置。尽管 DC2 也有 127.0.0.1 作为第一个 DNS 服务器,但它没有遇到这些问题,这意味着发生了竞争条件,并且 DC1 可能并不总是受到此问题的影响。

一些研究显示了几个可能的解决方案:

  1. 将 NlaSvc 设置为自动(延迟启动)
  2. 为 NlaSvc 添加 DNS 依赖
  3. 将 DNS 服务器顺序更改为首先转到其他 DC,然后再转到其自身。

第一种方案不一定能解决问题,因为这是一个竞争条件,而且我们不知道 DNS 服务器需要多长时间才能启动。它很可能总能解决问题,但我认为我们不能 100% 肯定地保证这种情况永远不会再发生。

第二种选择有点像黑客攻击,我认为它不受支持,甚至可能是微软在更新期间更改了这些值,只是无法确定。

至于第三个选项……虽然它在至少其中一个 DC 处于启动状态的情况下解决了问题,但当两个 DC 都处于关闭状态时,它仍然会出现问题:第一个要启动的 DC 将查看另一个 DC 的 DNS,它不会回复,NlaSvc 将网络位置设置为公共,DNS 服务启动,NlaSvc 不再更改它。不过,启动第二个 DC 会没问题。

我认为我会选择第一个选项,因为它可以说提供了最好的支持,并且可以从那里进行监控。

感谢 KB162 帮助我找到这个解决方案。

相关内容