¿Cuáles son mis opciones para agregar y eliminar políticas IPSec en Windows Server con C#?

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

  •  22-08-2019
  •  | 
  •  

Pregunta

Quiero poder agregar o eliminar políticas de seguridad IP en Windows Server 2003 mediante programación con C#.

Normalmente, manipularía estas políticas manualmente a través del complemento gpedit.msc (en Configuración de Windows -> Políticas locales -> Políticas de seguridad IP en la computadora local).Pero necesito poder agregar políticas de filtro de IP mediante código.

¿Alguna idea sobre cómo hacer esto?

¿Fue útil?

Solución

He estado lidiando con este problema durante aproximadamente dos semanas y, desafortunadamente, tienes dos opciones, según la profundidad de control que necesites:

1) Manipulación directa con WMI.Contrariamente a la intuición, esto en realidad expone MENOS control que la opción n.° 2 (que es lo que estoy haciendo yo mismo).Todo esto se hace a través de la clase Win32_NetworkAdapterConfiguration.Aquí hay un enlace a la pregunta que hice sobre esto, con mi respuesta un tiempo después de investigarlo:

¿Métodos para alterar programáticamente las reglas ipsec con C#?

Esto expone menos funcionalidad porque solo puedes controlar tres cosas a través de IPsec para los adaptadores:Puertos TCP, puertos UDP, protocolos IP.(No puedes lidiar con múltiples políticas, diferentes máscaras de subred, etc.)

2) Envolver netsh ipsec para hacer todo el trabajo sucio.Este es el camino a seguir, ya que powershell (que se puede invocar a través de la clase PowerShell en System.Management.Automation) actualmente carece de un cmdlet para realizar cambios de IPSec.

¿Existe un cmdlet en PowerShell 2 para manejar los cambios de ipsec?

Envolver netsh ipsec A TRAVÉS de una canalización de PowerShell llamada a través de System.Management.Automation.PowerShell es lo que terminé haciendo.

Utilice System.Diagnostics.Process para generar y controlar un shell, o utilice la clase PowerShell como se mencionó anteriormente.Cualquiera debería hacer el trabajo.

NOTASi cambia a 2008 en algún momento, tenga en cuenta que netsh ipsec está en desuso y asegúrese de utilizar netsh advfirewall en su lugar.

¡Buena suerte!

Otros consejos

Se puede usar System.Diagnostics.Process y ejecutar "cmd.exe" con el comando IPSec como los argumentos.

Otro recurso que puede probar es la página web de Microsoft o Google .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top