IIS 7 地址限制 - 导入列表以阻止中国和韩国 IP

IIS 7 地址限制 - 导入列表以阻止中国和韩国 IP

我希望根据以下情况阻止来自中国和韩国的流量Okean 阻止列表

我理解如何在 IIS7 中设置 IP 地址限制从用户界面。

但是,我不想手动输入大量的阻止列表,这样做会使列表难以保持最新。

有没有办法在 IIS7 中导入列表和/或基于文本的文件来允许 IP 地址限制?

请注意,我使用的是 Amazon EC2,因此如果可以使用 Amazon EC2 安全组来实现这一点,那么这也是一种解决方案。是的,我知道我可以设置本地防火墙,但我更愿意通过 IIS 或 EC2 来解决这个问题。

如果没有标准的方法来解决这个问题,有人可以给我指出一个允许我将列表加载到 IIS7 中的 API 吗?

答案1

使用配置编辑器查看 IP 阻止列表在 applicationhost.config 文件中的结构(最简单的方法可能是在 GUI 中输入一个,然后查看文件以找出该部分,然后从那里向后工作),然后使用配置编辑器添加一个,不要点击“应用”,而是点击“生成脚本”。

这将向您展示将 IP 添加到阻止列表的三种编程方式 - Javascript、MWA 和 AppCMD。选择您最熟悉的方式,然后编写脚本。

Rob 在下方添加了有关答案的详细信息

配置编辑器是一个图标,可从 IIS 管理器主页的管理部分中找到。

关键是system.webServer/security/ipSecurity

当您按照以下建议并生成 C# 脚本时,它看起来像这样...

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {

  private static void Main() {

    using(ServerManager serverManager = new ServerManager()) { 
      Configuration config = serverManager.GetApplicationHostConfiguration();

      ConfigurationSection ipSecuritySection =
        config.GetSection("system.webServer/security/ipSecurity");

      ConfigurationElementCollection ipSecurityCollection =
        ipSecuritySection.GetCollection();

      ConfigurationElement addElem = ipSecurityCollection.CreateElement("add");
      addElem["ipAddress"] = @"1.10.0.0";
      addElem["subnetMask"] = @"255.255.248.0";
      ipSecurityCollection.Add(addElem);

      ConfigurationElement addElem1 = ipSecurityCollection.CreateElement("add");
      addElem1["ipAddress"] = @"1.10.8.0";
      addElem1["subnetMask"] = @"255.255.252.0";
      ipSecurityCollection.Add(addElem1);

      serverManager.CommitChanges();
    }
  }
}

相关内容