若要配置 Windows 防火墙以记录丢弃的数据包或成功的连接,可以使用:

配置服务提供程序 (CSP) ,使用 Microsoft Intune 等 MDM 解决方案

组策略 (GPO)

以下说明提供了有关如何配置设备的详细信息。 选择最适合需要的选项。

Intune/CSP

GPO

登录到 Microsoft Intune 管理中心

转到 终结点安全>防火墙>创建策略>Windows 10、Windows 11 和 Windows Server>Windows 防火墙>创建

输入名称,并选择性地输入说明 >“下一步”

在 “配置设置”下,为每个网络位置类型 (“域”、“ 专用”、“ 公共) ”配置:

日志文件路径

启用日志丢弃的数据包

启用日志成功连接

日志最大文件大小

选择“下一步”“下一>步”

将策略分配给一个组,该组包含要配置>下一个>创建的设备或用户作为成员

提示

如果愿意,还可以使用 设置目录策略 来配置 Windows 防火墙日志记录。

或者,可以通过防火墙 CSP 使用自定义策略配置设备。

网络配置文件

设置

设置名称: EnableLogDroppedPacketsOMA-URI: ./Vendor/MSFT/Firewall/MdmStore/DomainProfile/EnableLogDroppedPackets

设置名称: LogFilePathOMA-URI: ./Vendor/MSFT/Firewall/MdmStore/DomainProfile/LogFilePath

设置名称: EnableLogSuccessConnectionsOMA-URI: ./Vendor/MSFT/Firewall/MdmStore/DomainProfile/EnableLogSuccessConnections

设置名称: LogMaxFileSizeOMA-URI: ./Vendor/MSFT/Firewall/MdmStore/DomainProfile/LogMaxFileSize

Private

设置名称: EnableLogDroppedPacketsOMA-URI: ./Vendor/MSFT/Firewall/MdmStore/PrivateProfile/EnableLogDroppedPackets

Private

设置名称: LogFilePathOMA-URI: ./Vendor/MSFT/Firewall/MdmStore/PrivateProfile/LogFilePath

Private

设置名称: EnableLogSuccessConnectionsOMA-URI: ./Vendor/MSFT/Firewall/MdmStore/PrivateProfile/EnableLogSuccessConnections

Private

设置名称: LogMaxFileSizeOMA-URI: ./Vendor/MSFT/Firewall/MdmStore/PrivateProfile/LogMaxFileSize

开放

设置名称: EnableLogDroppedPacketsOMA-URI: ./Vendor/MSFT/Firewall/MdmStore/PublicProfile/EnableLogDroppedPackets

开放

设置名称: LogFilePathOMA-URI: ./Vendor/MSFT/Firewall/MdmStore/PublicProfile/LogFilePath

开放

设置名称: EnableLogSuccessConnectionsOMA-URI: ./Vendor/MSFT/Firewall/MdmStore/PublicProfile/EnableLogSuccessConnections

开放

设置名称: LogMaxFileSizeOMA-URI: ./Vendor/MSFT/Firewall/MdmStore/PublicProfile/LogMaxFileSize

若要使用组策略配置设备,请使用 本地组策略编辑器。 若要配置多个已加入 Active Directory 的设备,请 (GPO) 创建或编辑 组策略对象,并使用以下设置:

展开节点 计算机配置>策略>Windows 设置>安全设置>具有高级安全性的 Windows 防火墙

在详细信息窗格中的 “概述 ”部分,选择“ Windows Defender 防火墙属性”

对于每个网络位置类型 (域、 专用、 公共) ,请执行以下步骤

选择与网络位置类型对应的选项卡

在“日志记录”下,选择“自定义”

日志的默认路径为 %windir%\system32\logfiles\firewall\pfirewall.log。 如果要更改此路径,请清除“ 未配置 ”复选框并输入新位置的路径,或选择“ 浏览 ”以选择文件位置

日志的默认最大文件大小为 4,096 KB (KB) 。 如果要更改此大小,请清除“ 未配置 ”复选框,输入新大小(以 KB 为单位),或使用向上和向下箭头选择大小。 文件不会超过此大小;达到限制时,会删除旧的日志条目,以便为新创建的日志条目腾出空间。

在设置以下两个选项之一之前,不会进行日志记录:

若要在 Windows Defender 防火墙删除传入网络数据包时创建日志条目,请将 “日志丢弃的数据包” 更改为 “是”

若要在 Windows Defender 防火墙允许入站连接时创建日志条目,请将 “日志成功连接 ”更改为 “是”

选择 “确定” 两次

组策略可以 链接到 域或组织单位, 使用安全组进行筛选, 或使用 WMI 筛选器进行筛选。

重要提示

指定的位置必须分配权限,允许 Windows 防火墙服务写入日志文件。

建议

下面是有关配置 Windows 防火墙日志记录的一些建议:

将日志记录大小更改为至少 20,480 KB (20 MB) ,以确保日志文件不会过快填满。 最大日志大小为 32,767 KB (32 MB)

对于每个配置文件 (域、专用和公用) 将默认日志文件名称从 %windir%\system32\logfiles\firewall\pfirewall.log 更改为:

%windir%\system32\logfiles\firewall\pfirewall_Domain.log

%windir%\system32\logfiles\firewall\pfirewall_Private.log

%windir%\system32\logfiles\firewall\pfirewall_Public.log

将丢弃的数据包记录为 “是”

将成功的连接记录为 “是”

在单个系统上,可以使用以下命令配置日志记录:

netsh advfirewall>set allprofiles logging allowedconnections enable

netsh advfirewall>set allprofiles logging droppedconnections enable

分析方法

有几种方法可以分析 Windows 防火墙日志文件。 例如:

(WEC) 启用 Windows 事件 转发 (WEF) 。 若要了解详细信息,请参阅 使用 Windows 事件转发来帮助进行入侵检测

将日志转发到 SIEM 产品,例如 Azure Sentinel。 若要了解详细信息,请参阅 适用于 Microsoft Sentinel 的 Windows 防火墙连接器

将日志转发到 Azure Monitor,并使用 KQL 分析数据。 若要了解详细信息,请参阅 Windows 客户端设备上的 Azure Monitor 代理

提示

如果日志在 SIEM 解决方案中显示缓慢,则可以减小日志文件大小。 请注意,由于日志轮换增加,缩小大小会导致更多的资源使用量。

排查日志文件是否未创建或修改

有时不会创建 Windows 防火墙日志文件,或者事件不会写入日志文件。 可能出现这种情况的一些示例包括:

缺少 Windows Defender 防火墙服务 (mpssvc) 文件夹或日志文件的权限

你想要将日志文件存储在其他文件夹中,并且权限缺失或未自动设置

如果防火墙日志记录是通过策略设置配置的,则可能会发生以下情况:

默认位置 %windir%\System32\LogFiles\firewall 中的日志文件夹不存在

自定义路径中的日志文件夹不存在

在这两种情况下,都必须手动或通过脚本创建文件夹,并添加 的权限 mpssvc。

New-Item -ItemType Directory -Path $env:windir\System32\LogFiles\Firewall

验证文件夹和文件上是否 mpssvc 具有 FullControl 。 在提升的 PowerShell 会话中,使用以下命令,确保使用正确的路径:

$LogPath = Join-Path -path $env:windir -ChildPath "System32\LogFiles\Firewall"

(Get-ACL -Path $LogPath).Access | Format-Table IdentityReference,FileSystemRights,AccessControlType,IsInherited,InheritanceFlags -AutoSize

输出应显示NT SERVICE\mpssvc具有 FullControl:

IdentityReference FileSystemRights AccessControlType IsInherited InheritanceFlags

----------------- ---------------- ----------------- ----------- ----------------

NT AUTHORITY\SYSTEM FullControl Allow False ObjectInherit

BUILTIN\Administrators FullControl Allow False ObjectInherit

NT SERVICE\mpssvc FullControl Allow False ObjectInherit

如果没有,请将 的 mpssvcFullControl 权限添加到文件夹、子文件夹和文件。 请确保使用正确的路径。

$LogPath = Join-Path -path $env:windir -ChildPath "System32\LogFiles\Firewall"

$NewAcl = Get-Acl -Path $LogPath

$identity = "NT SERVICE\mpssvc"

$fileSystemRights = "FullControl"

$inheritanceFlags = "ContainerInherit,ObjectInherit"

$propagationFlags = "None"

$type = "Allow"

$fileSystemAccessRuleArgumentList = $identity, $fileSystemRights, $inheritanceFlags, $propagationFlags, $type

$fileSystemAccessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $fileSystemAccessRuleArgumentList

$NewAcl.SetAccessRule($fileSystemAccessRule)

Set-Acl -Path $LogPath -AclObject $NewAcl

重启设备以重启 Windows Defender 防火墙 服务。

日语中的「柄」是什么含义?这篇文章告诉你
《巫师3》一周目大概要玩多久通关?