我已经用谷歌搜索了,但在这里没有看到任何答案或任何类似的问题。有一些关于 Windows 高级防火墙如何匹配规则的内容,但我不明白的是,如果您有冲突的子网/端口/应用程序路径规则会发生什么?假设我有一个程序在特定接口/子网上通过端口 5555 进行通信。如果我允许通过端口 5555 的传出流量,并允许通过它使用的子网的所有流量,有时 Windows 防火墙会自动为程序创建阻止规则,所以我最终会得到诸如“允许所有流量通过相关子网”之类的规则,并且“允许超过 5555 的出站 tcp 流量”,但最终我得到了一条规则“阻止 C:\Path\to\application”,有时应用程序无法正常运行。
那么Windows防火墙是如何处理冲突规则的呢?有订单吗?它是否更喜欢一种类型(子网 vs 端口 vs 路径)?我可以为应用程序路径添加规则,但我想我不明白为什么如果我已经定义了子网规则和端口规则,为什么在打开新应用程序时仍然会弹出 windows 防火墙/防御程序窗口,并且如果我不点击允许,通常会添加一个阻止规则,作为“应用程序规则”,应用程序的路径是阻止条件。为什么它不搜索并找到匹配的子网规则或端口规则?
任何体面的诊断工具或信息或有关冲突规则的内容的链接都会很棒......谢谢!
Windows 高级防火墙规则按照严格的顺序进行评估。
所有规则分为四组。在每个类别中,从最具体到最不具体评估规则。例如,指定四个条件的规则被选择而不是仅指定三个条件的规则。评估满足并在组内匹配的第一个规则处停止。
四组如下:
Authenticated bypass
这些规则中选择了“Override block rules”选项和“Allow if secure”,以允许否则会被阻止的网络流量。它们旨在允许通过高度授权的网络管理员和维护。
阻止连接
阻止规则的优先级高于所有其他规则。
允许连接
允许入站网络流量的规则。此规则是必需的,因为默认行为是阻止未经请求的入站网络流量。
默认配置文件行为
默认行为是阻止未经请求的入站网络流量,但允许所有出站网络流量。可以通过防火墙规则详细信息的域配置文件、私有配置文件和公共配置文件选项卡更改此默认行为。
对于您的具体示例,“阻止应用程序”规则具有绝对优先权。然后是更具体的“允许超过 5555 的出站 tcp 流量”,最后一个优先级是“允许跨相关子网的所有流量”的一般规则。
参考: