Question

La seule méthode que je connaisse pour exécuter les modifications IPsec consiste à appeler netsh pour effectuer les modifications. Existe-t-il une méthode utilisant directement les objets System.Management et WMI? Si oui, c'est quoi? J'ai du mal à trouver les informations WMI pertinentes avec MSDN.

Ou y a-t-il une autre méthode utile que quelqu'un a utilisée?

EDIT: Je travaille en C # et je préférerais des exemples en C # en ce qui concerne les réponses basées sur .NET System.Management.

Merci!

Était-ce utile?

La solution

1) Exact: WMI.

La méthode statique de classe EnableIPFilterSec WMI peut activer la sécurité IP globalement sur toutes les cartes réseau liées à IP. Lorsque la sécurité est activée, les caractéristiques de sécurité de tout adaptateur spécifique peuvent être modifiées à l'aide de la méthode de classe EnableIPSec WMI. MSDN pour l'ancien ici:

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

Et consultez cette entrée MSDN pour plus d'informations sur EnableIPSec et ses paramètres (vous permettant de déclarer une liste de ports et de protocoles):

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

Enfin, il s’agit d’un lien vers le répertoire de code WMI.NET, qui contient des exemples utiles de code utilisant System.Management pour exécuter des requêtes WQL.

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

REMARQUE:

Si vous avez besoin de perdre beaucoup de temps avec les tests WQL pour vos objets ObjectQuery / SelectQuery System.Management, essayez, comme je l’ai fait, d'essayer wbemtest. Il s'agit du testeur Windows Management Instrumentation. Il est bien plus agréable d'écrire, de tester et de perfectionner WQL pour vos applications.

2) Connexes: modifications du pare-feu programmées sous Vista ou ultérieur à l'aide de FirewallAPI, de l'interface INetFwRule et de tout autre élément nécessaire.

Sous Vista ou version ultérieure, l’utilisation de FirewallAPI.dll est une option simple si vous avez besoin de la fonctionnalité ipsec mais ne vous préoccupez pas de la mise en œuvre héritée de PolicyAgent.

Je ne savais pas au départ que c'était une option, car je ne savais pas que le pare-feu perfectionné de Vista et des versions ultérieures combinait réellement IPSec et le pare-feu au sein de la plate-forme de filtrage Windows (WFP) et que les implémentations IPSec héritées passaient par PolicyAgent.

Cela signifie que l'utilisation de FirewallAPI.dll peut conférer toutes les fonctionnalités d'IPSec avec l'intelligence dynamique du pare-feu, ce qui est exactement ce que je voulais. J'ajoute simplement des règles de liste noire (les règles de liste noire étant prioritaires), et je les ajoute à la liste noire lorsque cela est nécessaire via l'API et que WFP commence à supprimer le trafic. Fait!

Autres conseils

Dans IIS 7, la restriction IP peut être manipulée directement à partir d'un fichier de configuration, sans toucher à la métadatabase. Pour faciliter la maintenance, le fichier config peut être divisé avec configSource afin que la section IPSecure puisse être enregistrée dans son propre fichier.

Article complet:
http://boseca.blogspot.com/2010/12/programmatically -addremove-ip-security.html

Vous ne pouvez pas le faire avec WMI. WMI est limité au filtrage TCP, ce qui signifie le blocage des ports. Rien de plus.

Si vous utilisez des versions précédentes de Windows, vous pouvez soit:

a) utilisez un outil de ligne de commande, dans ce cas, ipseccmd.exe ou ipsecpol.exe (W2K), ou netsh

ou

b) Écrire les politiques dans le registre

Je suppose que les outils de ligne de commande font exactement cela: ils écrivent des valeurs dans le registre.

Cela fait quelque temps que je suis dedans et je n'ai pas trouvé de solution de code géré. Dommage que l'API WFP ne soit pas disponible dans les versions précédentes de Windows.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top