Restrições de endereço do IIS 7 - Importando lista para bloquear IPs da China e da Coreia

3

Estou tentando bloquear o tráfego da China e da Coreia com base na lista de bloqueios Okean .

Entendo como configurar restrições de endereço IP no IIS7 na interface do usuário.

No entanto, não quero inserir manualmente uma lista de bloqueio grande, pois isso dificultaria manter a lista atualizada.

Existe uma maneira de importar a lista e / ou um arquivo baseado em texto no IIS7 que permita restrições de endereço IP?

Note que estou usando o Amazon EC2, portanto, se houver uma maneira de fazer isso usando um grupo de segurança do Amazon EC2, isso também seria uma solução. E sim, eu reconheço que eu poderia configurar um firewall local, mas eu preferiria resolver isso via IIS ou EC2.

Se não houver uma maneira padrão de abordar isso, alguém pode me apontar para uma API que me permita carregar a lista no IIS7?

    
por Rob 28.08.2011 / 02:03

1 resposta

3

Use o Editor de configuração para visualizar como a lista de bloqueios de IP é estruturada no arquivo applicationhost.config (pode ser mais fácil inserir uma na GUI, depois examinar o arquivo para trabalhar na seção e, em seguida, trabalhar de trás para frente) , em seguida, adicione um usando o Editor de Configuração e, em vez de pressionar Aplicar, pressione Gerar Script.

Isso mostrará três maneiras programáticas de adicionar um IP à lista de bloqueio - Javascript, MWA e AppCMD. Escolha o que for mais confortável para você e faça o script.

Detalhes da resposta adicionada por Rob abaixo

O Editor de configuração é um ícone disponível na home page do Gerenciador do IIS na seção Gerenciamento.

A chave é system.webServer/security/ipSecurity .

Quando você segue os conselhos abaixo e gera um script C #, é assim ...

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();
    }
  }
}
    
por 28.08.2011 / 13:56