加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

Windows防火墙 – 大规模阻止IP地址范围 – 性能考虑因素?

发布时间:2020-12-13 23:56:53 所属栏目:Windows 来源:网络整理
导读:我们的服务之一是外联网,专供英国200名员工使用.我们看到来自中国,俄罗斯,乌克兰和尼日利亚的大量登录尝试.我有大量的IP范围列表,我想阻止它.有数以千计的条目. (为了讨论的目的,我没有兴趣开启关于阻止整个国家的权利和错误的辩论.这是我的要求 – 我需要实
我们的服务之一是外联网,专供英国200名员工使用.我们看到来自中国,俄罗斯,乌克兰和尼日利亚的大量登录尝试.我有大量的IP范围列表,我想阻止它.有数以千计的条目.

(为了讨论的目的,我没有兴趣开启关于阻止整个国家的权利和错误的辩论.这是我的要求 – 我需要实现它.)

我编写了一个Powershell脚本,每24小时更新一次列表,并使用块规则填充Windows防火墙.但是,我对激活它感到紧张.

我的问题是,Windows防火墙以这种方式处理数千个阻止规则的效率如何?例如,如果我的脚本包含10,000个块规则(甚至100,000个),它会有效地工作还是停止运行?

虽然我希望尽可能保护我的Web服务器,但我需要确保Web服务器快速处理请求.

UPDATE

我决定抓住机会运行PowerShell脚本.我已经采用了略有不同的技术.我创建了一条规则并将所有不良IP范围推送到所有远程地址部分的母版,而不是创建6700条规则(覆盖数百万个IP).

结果:完美地运作.阻止大部分中国,台湾,乌克兰和尼日利亚,这是我们获得大部分入境黑客攻击的地方.并且性能没有明显差异.我们似乎在没有任何变化的情况下提供相同数量的请求.一个用于Windows防火墙.它似乎能够非常有效地处理数千个IP块.

更新2 – 反馈

该剧本已经存在了几天,所以我认为你会对它的进展情况有所了解.我将脚本设置为每日运行的预定作业,使用新的IP范围更新防火墙,从CSV文件读入.这一切都很完美,防火墙功能非常快.但是有一个警告:脚本本身需要大约.运行4-5分钟,在此期间CPU最大化并且Web请求非常缓慢.

因此,我建议您在晚上或维护窗口期间运行脚本,在此期间您不会期望负载过重.

对我来说,解决方案是在每个负载平衡服务器上的不同时间运行脚本,以便在执行期间性能不会降低.

这是脚本:

$csv = Import-Csv -Path 'C:ScriptsIP Block List.csv'

$data = @()
$csv | ForEach-Object { $data += $_.From + "-" + $_.To }

Set-NetFirewallRule -Name "BlockAllIPsInList" -RemoteAddress $data

这是一个示例CSV文件:

From,To
1.2.3.4,1.2.3.255

所以在这个例子中,它会阻止1.2.3.4 – 1.2.3.255(含)中的所有内容

通过一些工作,可以修改脚本以使用CIDR格式.希望这可以帮助.

我们用游戏服务器做到了这一点.我们最终为pfsense上的插件更改了它,但我们没有注意到Windows防火墙中几千个ip块的性能下降.基于ip的阻塞是防火墙可以做的最基本的任务之一.除了管理开销(你已经有了一个脚本),我也没有看到任何原因导致出现问题. FWIW,我用亚马逊的route53来看这个,但它当时没有达到我们的目的.它会让你在这些国家解决虚假的IP问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读