Quais são minhas opções para adicionar e remover as políticas do IPSEC no Windows Server com C#?

StackOverflow https://stackoverflow.com/questions/703225

  •  22-08-2019
  •  | 
  •  

Pergunta

Quero poder adicionar ou remover políticas de segurança IP no Windows Server 2003 programaticamente com C#.

Normalmente, você manipularia essas políticas manobramente através do GPEDIT.MSC Snap -in (em Configurações do Windows -> Políticas locais -> Políticas de segurança IP no computador local). Mas preciso adicionar políticas de filtro IP através do código.

Algumas ideias em como fazer isso?

Foi útil?

Solução

Eu tenho lidado com esse problema há cerca de duas semanas e, infelizmente, você tem duas opções, dependendo da profundidade de controle que você precisa:

1) Manipulação direta com WMI. Contra-intuitivamente, isso realmente expõe menos controle do que a opção nº 2 (que é o que estou fazendo). Tudo isso é feito através da classe Win32_NetworkAdapterConfiguration. Aqui está um link para a pergunta que fiz sobre isso, com minha resposta a ela mais tarde depois de pesquisá -la:

Métodos de alterar programaticamente as regras do IPSEC com C#?

Isso expõe menos funcionalidade porque você só pode controlar três coisas através do IPSEC para os adaptadores: portas TCP, portas UDP, protocolos IP. (Você não pode lidar com várias políticas, diferentes máscaras de sub -rede, etc.)

2) Envolvendo o Netsh IPSEC para fazer todo o seu trabalho sujo. Este é o caminho a percorrer, pois o PowerShell (que pode ser invocado através da classe PowerShell em System.Management.Automation) atualmente não possui um cmdlet para fazer alterações no IPSEC.

Existe um cmdlet no PowerShell 2 para lidar com as alterações do IPSEC?

Embrulhar o netsh ipsec através de um pipeline do PowerShell chamado através do sistema.Management.Automation.Powershell foi o que acabei fazendo.

Use System.Diagnostics.process para gerar e controlar um shell ou use a classe PowerShell, conforme mencionado acima. Qualquer um deve fazer o trabalho.

NOTASe você mudar para 2008 em algum momento, observe que o Netsh IPSEC está preso e certifique -se de usar o Netsh AdvFirewall.

Boa sorte!

Outras dicas

Você pode usar o System.diagnostics.process e executar "cmd.exe" com o comando ipsec como argumentos.

Outro recurso que você pode tentar é Site da Microsoft ou Google.

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