Windows 防火墙是否默认阻止 ICMP 时间戳请求(类型 13)?

Windows 防火墙是否默认阻止 ICMP 时间戳请求(类型 13)?

这个问题具体与 ICMPv4 时间戳请求(类型 13)消息有关。

当我有 Windows 防火墙时已禁用我可以从主机发送时间戳请求,客户端将接收该请求并使用时间戳回复(类型 14)进行响应。

当我有 Windows 防火墙时已启用我可以从主机发送时间戳请求,客户端将收到请求,但永远不会响应时间戳回复。我假设这是因为防火墙阻止了请求。但是,我没有看到任何特定的规则设置,这表明情况确实如此。我在网上也找不到任何文档来帮助我了解此特定消息是否默认被阻止(如 ICMP Echo)。

有人知道 Windows 防火墙是否默认阻止此消息吗? 有没有什么地方可以查看/配置此默认设置? 有没有我错过的文档?

我正在使用 Nping 发送消息并使用 Wireshark 观察数据包的来来去去。

答案1

Windows 防火墙阻止一切默认情况下。完整的处理顺序已记录在案在 TechNet 上,但为了简单起见,您可以将其视为“1)处理所有‘拒绝’规则,2)处理所有‘允许’规则,3)根据配置文件设置拒绝或允许其他所有内容”。

打开防火墙配置工具(通过运行wf.msc或打开“高级安全 Windows 防火墙”应用程序,或单击高级设置控制面板中的“ ”链接),您将看到此屏幕:

(wf.msc 的屏幕截图显示了配置文件的全局策略)

默认情况下,这条消息表示“不符合规则的入站连接将被阻止”,这实际上适用于全部与现有状态无关的数据包,包括 ICMP 请求。如果您没有找到与时间戳请求相关的任何特定规则,则意味着它们将按照默认配置被拒绝。

因此,为了允许特定的 ICMP 类型,您当然应该在“入站规则”下创建规则,或启用已存在的规则。例如,“文件和打印机共享”组有内置规则来允许传入的 ICMP“回显请求”:

(wf.msc 规则允许 ICMP Echo 的截图)

每条规则的具体 ICMP 类型可在“协议和端口 → ICMP 设置:自定义”下选择。(为了允许时间戳请求,您必须创建自定义规则;对于内置规则,列表是只读的)。

(wf.msc 规则创建向导截图) (wf.msc 规则参数的屏幕截图,列出了 ICMP 类型和子类型)

最后,请注意,即使防火墙允许数据包通过后,并不意味着操作系统实际上会支持特定 ICMP 请求类型。由于 ICMPv4“时间戳请求”相当罕见(罕见到在 Windows 防火墙中没有内置规则,并且在 ICMPv6 中根本没有等效规则),因此无法真正保证未来的 Windows 版本不会“弃用”并删除用于响应此类请求的代码……

答案2

UDP本质上是“愚蠢的”,即简单而不复杂。通常情况下,请求不需要返回任何内容,也不需要成功。读起来很枯燥,但你可能会发现RFC-792对你的情况来说,这是一篇不错的文章。至于解决方法,如果是我,我可能会打开它echo req,看看你的请求是否能得到更好的回报。

虽然不是 Windows 手册页。以下 FreeBSD 手册页应该有助于更好地理解ICMP

相关内容