装第三方安全软件时经常看到一句“已为您接管系统防火墙”,于是不放心,想把它和 Windows 防火墙一起开着。这个组合是否可行,取决于接管是怎么实现的,下面按提问逐条回答。
问:两台防火墙同时开着会怎样?
答:Windows 防火墙是一个系统服务(mpssvc),第三方防火墙多数是自己在 WFP 里挂一层筛选器。两层都在时,一个连接要先后过两套规则,任何一层拦截都表现为连不上,而两处的日志格式不同,排查成本直接翻倍。性能上的额外开销对家用机器不明显,主要代价在判断困难。
问:为什么装了安全软件之后 Windows 防火墙的开关看不清了?
答:第三方产品通过安全中心注册自己的防火墙,此时设置页会显示由第三方程序管理,而命令行读到的 Enabled 可能仍然是 True——规则还在,只是不再由它做最终决定。两处显示不一致不是系统坏了。
问:一起开有安全收益吗?
答:几乎没有。防火墙不做入侵识别,它只按规则放行或丢弃连接,第二层不会发现第一层漏掉的东西,只会把正常程序多拦几次。真正能互补的是不同层的东西:路由器上的入站过滤、系统防火墙、以及应用层的权限控制,而不是两道同样性质的包过滤。
问:那什么情况下两台都留着是对的?
答:只有一种情形:第三方产品本身不带防火墙模块,只是杀毒与清理工具。这种情况下 Windows 防火墙本来就该继续开,这不是同时开两家,而是一道关也没少。另一个常见误解是把安全软件自带的网络防护、ARP 防火墙当成第二层防火墙,它们防的是局域网内的欺骗行为,和进出站规则不是一回事。
问:怎么确认现在到底谁在管?
答:两条命令看实际状态。
Get-NetFirewallProfile | Select-Object Name, Enabled
Get-Service mpssvc | Select-Object Name, Status, StartType
如果 mpssvc 处于 Running 而公用网络的 Enabled 为 False,可能是第三方接管了,也可能是曾经有软件把它关掉之后没恢复。后者要手动打开,否则连上公共 Wi-Fi 时这台机器就不过任何入站过滤。想分清是哪一种,可以先暂时禁用第三方防火墙,再看安全中心的提示怎么变,本站 132 篇讲过“由第三方管理”那一类状态的区分。
家用机器保持一层入站过滤就够,把注意力放在规则本身:公用网络配置文件保持启用,陌生程序的放行只按需要给到具体网络类型,不要图省事在专用和公用两个配置文件里一起勾选。