Windows防火墙 – 大规模阻止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问题.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- active-directory – Win7客户端在samba4 RODC上使用缓存凭
- 集中的Windows / Mac补丁管理,易于使用
- 如何在带有windows的apache上安装mod_pagespeed,以及从哪里
- windows-runtime – 是否可以在Visual Studio Express for
- 如何为40个Windows用户设置主文件夹
- windows-8 – 如何通过VirtualBox运行Windows 8 Phone模拟器
- windows-server-2016 – 可以恢复未优化的重复数据删除作业
- 显示如何在Windows PowerShell 3.0中覆盖TabExpansion2的示
- windows-server-2008-r2 – 如何根据现有的IPv4地址分配IPv
- windows下编译 libjpeg以及libjpeg-turbo