Windows 平台过滤 - 阻止合法数据包

Ian*_*Ian 3 windows-server-2008 iis-7

我正在运行 Windows 2008 R2 并且我有 IIS7/MySQL 托管了几个网站。但是,我最近遇到了看似随机的连接错误,可能是 50 次之一。

我查看了事件查看器,在出现问题时,有很多被阻止的数据包要从许多不同的 IP 发布 80,包括我自己的(事件查看器日志附在帖子底部)。

看起来世界粮食计划署正在阻止一些合法的请求,但我已经设置了防火墙以允许所有端口 80 网络流量连接......那么如何阻止它们?

日志:

The Windows Filtering Platform has blocked a packet.

Application Information:    
    Process ID:     0   
    Application Name:   -

Network Information:    
    Direction:           Inbound
    Source Address:      xxx.xxx.xxx.xxx
    Source Port:         57578
    Destination Address: xxx.xxx.xxx.xxx
    Destination Port:    80
    Protocol:            6

Filter Information:
    Filter Run-Time ID:  74587
    Layer Name:          Transport
    Layer Run-Time ID:   13
Run Code Online (Sandbox Code Playgroud)

小智 5

如果您真的想弄清此类问题的根源,则必须执行 WFP(Windows 过滤平台)捕获。

要开始捕获,请使用以下命令:

netsh wfp capture start
Run Code Online (Sandbox Code Playgroud)

然后您应该重现您的问题以将其包含在捕获中。之后,您使用以下命令停止捕获:

netsh wfp capture stop
Run Code Online (Sandbox Code Playgroud)

捕获的结果存储在wfpdiag.cab当前目录的文件中。我相信此文件仅供 Microsoft 内部使用,但如果您愿意,可以提取存档中的两个文件并自己查看。

.etl可以使用事件日志打开。但是,我不确定如何解释内容。有趣的文件是.xml文件。如果你花一些时间,你应该能够弄清楚内容的结构。您应该寻找的是以下内容:

过滤器运行时 ID:74587

通过检查 XML,您需要找到运行时 ID 为 74587 的过滤器。这将告诉您防火墙中的哪个规则阻止了连接。请注意,防火墙有一些隐藏规则(例如 Windows 防火墙服务加固规则)。