Pergunta

O único método que sei executar as alterações do IPSEC envolve chamar o Netsh para fazer as alterações. Existe um método usando objetos System.Management e WMI diretamente? Se assim for, o que é? Estou tendo dificuldade em encontrar informações relevantes para o WMI com o MSDN.

Ou existe algum outro método útil que alguém tenha usado?

EDIT: Estou trabalhando em C# e preferiria exemplos de C# em relação às respostas .NET System.Management Based.

Obrigada!

Foi útil?

Solução

1) exato: WMI.

O método estático ENableipFilterSec WMI pode permitir a segurança do IP globalmente em todos os adaptadores de rede ligados a IP. Com a segurança ativada, as características de segurança para qualquer adaptador específico podem ser alteradas com o método de classe HabilableipSec WMI. MSDN para o primeiro aqui:

http://msdn.microsoft.com/en-us/library/aa390381%28vs.85%29.aspx

E consulte esta entrada do MSDN para obter informações sobre o Enableipsec e seus parâmetros (que permitem declarar uma lista de portas e protocolos):

http://msdn.microsoft.com/en-us/library/aa390382%28vs.85%29.aspx

Finalmente, este é um link para o diretório de código WMI.NET, onde há amostras úteis de código usando o System.Management para executar consultas WQL.

http://msdn.microsoft.com/en-us/library/ms257338.aspx

NOTA:

Se você precisar mexer extensivamente com testes WQL para seus objetos ObjectQuery/SelectQuery System.Management, como eu fiz, experimente o WBEMTEST. É o testador de instrumentação de gerenciamento do Windows e torna a redação, teste e aprimoramento do WQL para seus aplicativos muito mais agradáveis.

2) Relacionado: Alterações programáticas do firewall no Vista ou posteriormente usando o firewallapi, a interface inetfwrule e qualquer outra coisa que se possa precisar.

No Vista ou posterior, o uso do firewallapi.dll é uma opção fácil se você precisar da funcionalidade IPsec, mas não se importa com a implementação do Legacy PolicyAgent.

Eu não percebi que essa era uma opção no início, porque não sabia que o firewall avançado no Vista e depois combina realmente o iPsec e o firewall no PAM (Plataforma de filtragem do Windows) e mantém as implementações do IPSEC herdadas passando pelo PolicyAgent.

Isso significa que o uso de firewallapi.dll pode fornecer toda a funcionalidade do IPSEC com a inteligência com estado do firewall, que é exatamente o que eu queria. Acabei de adicionar regras da lista negra (como as regras da lista negra têm precedência) e adiciono à lista negra quando necessário através da API e o WFP começa a soltar o tráfego. Feito!

Outras dicas

No IIS 7, a restrição de IP pode ser manipulada diretamente do arquivo de configuração, sem mexer com o metadatabase. Para fácil, o arquivo de configuração de manutenção pode ser dividido com o ConfigSource, para que a seção ipsecure possa ser salva em seu próprio arquivo.

Artigo completo:
http://boseca.blogspot.com/2010/12/programticaticamente-addremove-ip-security.html

Você não pode fazer isso com o WMI. O WMI é restrito à filtragem TCP, significando portas de bloqueio. Nada mais.

Se você estiver usando as versões anteriores do Windows, você pode:

a) Use uma ferramenta de linha de comando, neste caso iPseccmd.exe ou ipsecpol.exe (w2k) ou netsh

ou

b) Escreva as políticas para o registro

Meu palpite é que as ferramentas da linha de comando fazem exatamente isso: elas escrevem valores no registro.

Estou nisso há algum tempo e não encontrei uma solução de código gerenciado. Pena que a API do WFP não esteja disponível nas versões anteriores do Windows.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top