Pregunta

El único método que conozco para ejecutar cambios de IPsec implica llamar a netsh para hacer los cambios. ¿Hay un método que use los objetos System.Management y WMI directamente? Si es así, ¿qué es? Estoy teniendo dificultades para encontrar información relevante de WMI con MSDN.

¿O hay algún otro método útil que alguien haya usado?

EDITAR: Estoy trabajando en C #, y preferiría ejemplos de C # con respecto a las respuestas basadas en administración de sistemas .NET.

¡Gracias!

¿Fue útil?

Solución

1) Exacto: WMI.

El método estático de la clase WMI EnableIPFilterSec puede habilitar la seguridad IP a nivel mundial en todos los adaptadores de red enlazados a IP. Con la seguridad habilitada, las características de seguridad para cualquier adaptador específico pueden modificarse con el método de clase EnableIPSec & # 8194; WMI. MSDN para el primero aquí:

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

Y vea esta entrada de MSDN para obtener información sobre EnableIPSec y sus parámetros (que le permiten declarar una lista de puertos y protocolos):

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

Finalmente, este es un enlace al directorio de códigos WMI.NET, donde hay ejemplos útiles de código que utilizan System.Management para ejecutar consultas WQL.

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

NOTA:

Si necesita jugar mucho con las pruebas de WQL para sus objetos ObjectQuery / SelectQuery System.Management, como hice yo, pruebe con wbemtest. Es el comprobador de instrumentos de administración de Windows, y hace que la escritura, prueba y ajuste de WQL para sus aplicaciones sea mucho más agradable.

2) Relacionados: los cambios programáticos del cortafuegos en Vista o posterior mediante FirewallAPI, INetFwRule Interface y cualquier otra cosa que pueda necesitar.

En Vista o posterior, usar FirewallAPI.dll es una opción fácil si necesita la funcionalidad ipsec pero no le importa la implementación heredada de PolicyAgent.

Al principio no me di cuenta de que esta era una opción porque no sabía que el Firewall Avanzado en Vista y más tarde realmente combina IPSec y firewall dentro de la WFP (Plataforma de Filtrado de Windows), y mantiene las implementaciones de IPSec heredadas pasando por PolicyAgent. / p>

Esto significa que el uso de FirewallAPI.dll puede proporcionar toda la funcionalidad de IPSec con la inteligencia de estado del firewall, que es exactamente lo que quería. Simplemente agrego las reglas de la lista negra (ya que las reglas de la lista negra tienen prioridad), y la agrego a la lista negra cuando sea necesario a través de la API y WFP comienza a eliminar el tráfico. Hecho!

Otros consejos

En IIS 7, la restricción de IP se puede manipular directamente desde el archivo de configuración, sin alterar la metadatabase. Para facilitar el mantenimiento, el archivo de configuración se puede dividir con configSource para que la sección IPSecure se pueda guardar en su propio archivo.

Artículo completo:
http://boseca.blogspot.com/2010/12/programmatically -addremove-ip-security.html

No puedes hacerlo con WMI. WMI está restringido a filtrado de TCP, lo que significa que bloquea los puertos. Nada más.

Si está utilizando versiones anteriores de Windows, puede:

a) use una herramienta de línea de comandos, en este caso ipseccmd.exe o ipsecpol.exe (W2K), o netsh

o

b) Escriba las políticas en el registro

Mi conjetura es que las herramientas de la línea de comandos hacen exactamente eso: escriben valores en el registro.

He estado en eso desde hace algún tiempo y no encontré una solución de código administrado. Lástima que la API de WFP no esté disponible en versiones anteriores de Windows.

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