Назад | Перейти на главную страницу

Ограничения адресов IIS 7 - список импорта для блокировки IP-адресов Китая и Кореи

Я хочу заблокировать трафик из Китая и Кореи на основе Черный список Океана.

Я понимаю как настроить ограничения IP-адресов в IIS7 из пользовательского интерфейса.

Однако я не хочу вручную вводить большой список блокировок, так как это затруднит поддержание его в актуальном состоянии.

Есть ли способ импортировать список и / или текстовый файл в IIS7, который разрешил бы ограничения IP-адреса?

Обратите внимание: я использую Amazon EC2, поэтому, если есть способ сделать это с помощью группы безопасности Amazon EC2, это тоже будет решением. И да, я понимаю, что могу установить локальный брандмауэр, но я бы предпочел решить эту проблему через IIS или EC2.

Если нет стандартного подхода к этому, может ли кто-нибудь указать мне на API, который позволил бы мне загрузить список в IIS7?

Используйте Редактор конфигурации, чтобы просмотреть, как структурирован список заблокированных IP-адресов в файле applicationhost.config (проще всего ввести его в графическом интерфейсе, затем просмотреть файл, чтобы проработать раздел, а затем работать в обратном направлении оттуда), затем добавьте один с помощью редактора конфигурации, и вместо нажатия «Применить» нажмите «Создать сценарий».

Это покажет вам три программных способа добавления IP в список блокировки - Javascript, MWA и AppCMD. Выберите то, что вам удобнее всего, а затем запишите его.

Подробная информация об ответе добавлена ​​Робом ниже

Редактор конфигурации - это значок, доступный на домашней странице диспетчера 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();
    }
  }
}