Windows 防火墙日志
Windows 防火墙可以按配置文件记录被允许与被阻止的连接,日志默认关闭,开启后写入 pfirewall.log。记录是固定字段的文本行,包含时间、动作、协议、源与目的地址端口,是主机侧少数能长期留存连接级事实的本地来源,用来印证某次外联是否真的发出、是否被策略拦下。
基本信息
| 默认路径 | C:\Windows\System32\LogFiles\Firewall\pfirewall.log |
|---|---|
| 默认状态 | 日志默认关闭,需按域、专用、公用三个配置文件分别开启 |
| 开启命令 | Set-NetFirewallProfile -LogAllowed True -LogBlocked True |
| 记录范围 | 各配置文件独立记录,互不替代 |
| 时间基准 | 本地时间,不带时区标注 |
典型使用场景
- 确认某目标地址或端口在何时被主机放行、何时被拦截
- 与 DNS、代理日志对齐,验证外联尝试是否真的发出
- 应急阶段临时开启日志,为后续排查积累连接证据
- 核对阻断策略生效时刻是否与处置动作记录一致
- 排查内网横向连接,看源目的地址的组合是否异常
开启与查看
开启与查看
Set-NetFirewallProfile -LogAllowed True -LogBlocked True # 三个配置文件都开
Set-NetFirewallProfile -LogMaxSizeKilobytes 32767 # 调大单文件上限,防覆盖
Get-NetFirewallProfile | Select-Object Name, LogFileName, LogAllowed, LogBlocked
Get-Content C:/Windows/System32/LogFiles/Firewall/pfirewall.log -Tail 40
Select-String -Path C:/Windows/System32/LogFiles/Firewall/pfirewall.log -Pattern '172.16.20.8' | Select-Object -First 10日志列读法
| 列 | 含义 | 注意点 |
|---|---|---|
| date / time | 事件发生时间 | 本地时间,跨时区合并前统一换算 |
| action | ALLOW 或 DROP | DROP 表示被策略拦下,未必代表未尝试 |
| protocol | 协议名 | 无端口语义时以协议与方向共同判断 |
| src-ip / dst-ip | 源与目的地址 | 出站记录中源地址即本机地址 |
| src-port / dst-port | 源与目的端口 | 结合已知服务端口推断对应应用 |
日志没有内置轮转,体积由单文件上限与滚动覆盖控制;排查开始就先确认上限并把手上的日志落盘,否则采集之前证据可能已被新记录顶掉。
日志默认关闭意味着开启之前的时间段不可回溯,报告里要把这段空白写成局限;不要用开启之后的日志去否定更早时间发生的连接,两者的证据能力并不对等。