配置 Windows 防火墙阻止行为

配置 Windows 防火墙阻止行为

是否有人知道当 Windows 防火墙确定某个数据包不被允许时是否可以配置其行为?

默认情况下,它会默默地丢弃数据包,并且不会通知源端这已经发生,这可能导致源端在连接超时到期之前等待很长时间。对于给定的 TCP 连接,我想向被禁止的传入 SYN 数据包发送 RST 数据包,而不是默默地丢弃它。

我的一台 2K3 机器有这种情况,但我的 XP SP3 机器没有。我的 XP SP3 笔记本电脑也曾经有这种情况,但我的 Win7 笔记本电脑没有。

出现这种情况的原因是,我经常需要通过 telnet 连接到几个内部 Linux 机器(它们没有 SSH,我也无法安装),它们会尝试使用 ident 来识别我,然后才显示用户名/密码提示。当我从 2K3 服务器连接时,提示是即时的,因为传入的 ident 数据包被主动阻止,但是从我的 XP 机器上,我必须等待大约 20 秒,因为远程主机没有收到阻止通知。这不是安全问题 - 一切都是本地的,绝不会暴露在互联网上,我在这些本地机器和 WAN 之间有 2 个防火墙。

我已经在 Google 上对这个主题进行了大量搜索,最接近找到对这种行为的参考的是这篇 Technet 文章,但它似乎直接与我在我的一台机器上获得所需行为的事实相矛盾。它也没有关于如何配置这种行为的信息,尽管从字里行间来看我认为这是 TCP/IP 堆栈的功能,而不是 Windows 防火墙本身的功能 - 似乎 TCP/IP 堆栈(NAT 驱动程序)会询问防火墙是否允许数据包,然后自己处理操作。

在您询问之前,不,2K3 盒子上肯定没有安装第三方防火墙软件 - 我的旧笔记本电脑上也没有 - 它只是 Windows 防火墙。配置界面与我用来写这个问题的 XP 盒子的配置界面相同。我完全知道这很可能涉及注册表设置,但我不知道从哪里开始......

答案1

虽然您可以选择使用 RST 或 ICMP 目标不可达消息(带有多个数据包过滤器)来拒绝连接尝试,但 Windows 防火墙目前似乎无法配置。观察到的行为差异可能是由于防火墙被禁用 - 在这种情况下,如果 IDENT 端口未打开,则 TCP/IP 堆栈本身只会发送 RST 响应。

作为您情况的解决方法,我建议您这样做 - 将端口 113/tcp 添加到 Windows 防火墙的例外列表中。只要没有任何内容在端口 113 上监听,您就会看到来自堆栈的所需 RST 响应,而不是一系列 SYN 超时和重新传输。

答案2

原因 -http://technet.microsoft.com/en-us/library/dd448557%28WS.10%29

使固定 -http://msdn.microsoft.com/en-us/library/ff720058%28v=prot.10%29.aspx

如果键/值不存在 - 请创建它。更改后需要重新启动 Windows 防火墙服务。

答案3

在您的 Win2k3 盒子和 XP SP3 笔记本电脑上,您是否运行任何正在监听正在查询的本地端口 ident 的服务?

例如,可以发送 RST 以响应接收到已关闭套接字的数据包。

相关内容