如何判断哪个Windows防火墙规则阻止了流量


16

我正在尝试将计算机设置为接受所有传入流量,但仅允许传出流量到特定IP。我设置了“允许所有传入”规则和“允许”规则,该规则将IP地址指定为唯一可接受的“传出地址”。我还设置了一个“拒绝所有拨出规则”,假设其他规则优先。

我遇到的问题是所有流量都被阻止了,即使是去往我指定为允许的IP的流量也是如此。

我正在寻找一种跟踪通过防火墙的流量并确切查看阻止流量的规则的方法。防火墙监视生成的日志告诉我流量被丢弃,但没有哪个规则将其阻止。


我也经常想这样做,但是似乎内置Windows防火墙在这方面没有太多提供。我很想知道您是否找到了获取更详细日志记录的解决方案。
大卫·伍德沃德

Windows防火墙实际上是在保护您的PC免受网络攻击,而不是保护PC免受网络攻击。网络应该有自己的防火墙来保护它。
罗恩·莫平

Answers:


20

(注意:这适用于Windows 7,并且可能会或可能不会与较新版本一起使用。)

遵循以下步骤将引导您遵循阻止连接的规则:

  • 打开Windows控制台(具有管理权限)以输入命令
  • 对Windows筛选平台(WFP)启用审核:
    • 运行命令:
      auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable
    • 运行命令:
      auditpol /set /subcategory:"Filtering Platform Connection" /success:enable /failure:enable
  • (这可能会使您淹没在事件日志数据中-仅启用失败审核,并且可能只有连接失败会减少日志条目的数量。请选择您实际需要的内容)
  • 重现问题
  • 运行命令:(netsh wfp show state这将在当前文件夹中创建一个XML文件)
  • 打开事件查看器:运行(Windows+ R)>eventvwr.msc
    • 转到“ Windows日志”>“安全性”
    • 在列表中,确定丢弃的数据包日志(提示:使用右侧菜单上的“搜索”功能,搜索特定于您问题的项目(源IP,目标端口等))
    • 在日志详细信息中,向下滚动并记下用于阻止数据包的过滤器ID
  • 打开生成的XML文件:
    • 搜索记下的filterID,并检查规则名称(相应XML节点上的元素“ displayData>名称”)

这将为您找到阻止规则提供一个良好的开端。

完成后,请不要忘记关闭审核:

  • 运行命令:
    auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:disable /failure:disable
  • 运行命令:
    auditpol /set /subcategory:"Filtering Platform Connection" /success:disable /failure:disable

注意:根据您的Windows语言设置,审核服务可能使用不同的非英语名称。要查找子类别名称,请运行命令:auditpol /get /category:*并找到与系统语言中的“过滤平台数据包丢弃”和“过滤平台连接”相对应的子类别。


1
如果您在Windows防火墙中启用了出站筛选,这将无济于事,因为默认情况下,所有没有明确允许规则的程序都将被阻止。因此,您的程序可能根本不会被防火墙规则阻止。
亚历山德鲁·迪库

2
这与Windows Server 2012 R2一起使用。
AresAvatar

就我而言,DisplayData-name表示Default Outbound,所以至少我确定我的允许规则被忽略了,所以这是Microsoft防火墙的错误。
metablaster
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.