Windows Server 2012 R2默认不记录防火墙详细日志,且原生日志(尤其双启用“允许/阻止”)存在mpssvc冻结风险;确需启用时应优先打补丁、仅选“丢弃”日志、限制权限并定期轮转。
windows server 默认不记录防火墙的详细连接日志,且开启原生防火墙日志(尤其是“允许连接”和“阻止连接”双启用)在 windows server 2012 r2 及更早版本中存在已知稳定性风险:可能引发 mpssvc(windows 防火墙服务)冻结或崩溃。虽后续补丁(如 kb3156418)缓解了该问题,但生产环境仍需谨慎评估必要性与替代方案。
一、确认是否真需开启原生日志
原生防火墙日志粒度粗、存储效率低、无聚合分析能力,仅适合短期排错。多数合规(如等保三级)和运维场景推荐用替代方案:
- 使用 Visual Syslog Server 或 ELK/EFK 接收设备级日志(需网络设备、Linux 服务器等主动发送)
- 通过 PowerShell 脚本定期导出连接状态(如
Get-NetTCPConnection+ 时间戳归档) - 对关键服务(如 RDP、Web)单独配置 Windows 事件日志审计(登录/失败/特权使用),比防火墙日志更有溯源价值
二、如确需启用原生防火墙日志(仅限 Server 2016+ 或已打补丁的 2012 R2)
操作路径如下(图形界面优先,避免注册表误操作):
直播话术巡检系统(Windows版) — 实时语音转写、关键词检测、场景自动切换、告警推送、大屏可视化。支持 Windows VB-Cable 虚拟声卡音频采集,阿里云 ASR 实时识别。一键启动脚本,自动安装环境。
- 按 Win + R,输入
wf.msc打开“高级安全 Windows 防火墙” - 左侧点击 “监视” → “防火墙日志”
- 点击右侧 “属性”,勾选“记录丢弃的数据包”和/或“记录成功的连接”(建议先只选“丢弃”,降低负载)
- 设置日志路径(默认
%systemroot%\System32\logfiles\firewall\pfirewall.log),确保所在磁盘有足够空间(建议预留 ≥500 MB) - 点击“确定”后,重启 Windows 防火墙服务(
net stop mpssvc && net start mpssvc)使配置生效
三、日志查看与基础分析
日志为纯文本格式,字段以空格分隔,关键列包括:日期、时间、动作(ALLOW/ BLOCK)、协议(TCP/UDP)、源IP、目的IP、源端口、目的端口、规则名称。
- 用记事本或
Get-Content查看最新几行:Get-Content C:\Windows\System32\logfiles\firewall\pfirewall.log -Tail 20 - 筛选特定 IP 的阻断记录(PowerShell):
Select-String "BLOCK.*192.168.1.100" C:\Windows\System32\logfiles\firewall\pfirewall.log - 注意:日志不记录用户上下文、进程名或应用层内容,无法区分是 IIS 还是 nginx 占用了 80 端口
四、必须同步做的加固项
开启防火墙日志本身不提升安全性,反而暴露日志路径。务必配套执行:
- 限制日志文件访问权限:右键日志目录 → 属性 → 安全 → 仅保留 SYSTEM、Administrators 完全控制,移除 Users 组
- 关闭不必要的默认共享(
admin$、C$、IPC$),防止日志被远程读取 - 将防火墙配置文件明确设为 “域”或“专用”,禁用“公用”配置文件(服务器无需公网暴露)
- 定期轮转日志:通过任务计划程序运行脚本,压缩旧日志并删除超 30 天的文件










