Windows 防火墙规则范围的 IP 地址数量是否有限制?

Windows 防火墙规则范围的 IP 地址数量是否有限制?

我有一个 Powershell 脚本,它将试图对我的服务器进行暴力攻击的 IP 地址添加到防火墙规则中,以阻止这些 IP 地址访问我的服务器。最近它停止工作,并开始抛出此错误:

异常设置“RemoteAddresses”:“数组边界无效。(来自 HRESULT 的异常:0x800706C6)”

Windows 防火墙规则范围内可输入的 IP 地址数量是否有限制?此规则在 Windows Server 2008 R2 上运行。

答案1

是的 - 总共限制为 1000 个条目。如果单独输入单个 IP 地址,则将其计为一个条目;如果将 IP 范围作为一个范围输入,则将其计为一个条目。

在我的例子中,从上述规则的范围中删除一个 IP 地址将允许脚本将其(或任何其他 IP 地址)添加回范围。每次尝试输入超过 1000 个时都会抛出错误。

解决方法是,一旦当前防火墙规则中的条目达到 1000 个,您可以简单地创建一个具有不同范围的类似规则。虽然不太优雅,但可以完成工作。

答案2

限制为 1000,除 Server 2022 和 Windows 11 外,限制现在为 10000。

这是从代码测试得出的,很难找到微软的任何官方文档。

附注:如果您使用的是较低级别的 Windows 过滤平台 API,我建议过滤器中每种条件类型的条件不要超过 10000 个,因为超过这个数字时,Windows 11 中会出现蓝屏错误。解释了为什么 Windows 11 中的 Windows 防火墙有 10000 个 IP 地址计数限制。

答案3

这很令人困惑,因为我知道 Server 2003 允许在单个 ipsec 规则中包含成千上万个条目,而我愚蠢地认为 2008 及以上版本也允许这样做。

我收到了同样的错误,并认为这是由于添加子网重叠造成的,因为我已经从子网中添加了一个 IP,并且我花了大量时间浏览列表,直到找到重叠的 IP,但是当我继续在未来的 IP 和子网上收到错误时,我意识到我需要进一步挖掘。

几年前,我尽可能多地进行研究,发现许多文章都指出 2003 年没有限制。事实上,我有一台生产服务器,其中一条规则中有超过 20000 个条目。(这不是打字错误 - 我花了数年时间才达到这个数字,平均每月增加数百个)

我很高兴找到了这篇文章,因为它可以节省我很多时间。我采纳了这里的建议,创建了一条新规则,之前返回错误的子网在新规则中没有问题,所以超级用户再次为我解答了一个问题。

遗憾的是,没有一种简单的方法来导出和重新导入单个规则,管理单元似乎只允许全部或不允许。

可能有一种使用 powershell 的方法,但我想这应该是另一个问题线程。如果碰巧有一个线程涵盖了这一点,将不胜感激要查找的搜索字符串或链接。

编辑添加:我的操作系统是 Server 2008 Standard x64 SP2

相关内容