Domanda

L'unico metodo che conosco per eseguire le modifiche IPsec consiste nel chiamare netsh per apportare le modifiche. Esiste un metodo che utilizza direttamente gli oggetti System.Management e WMI? Se è così, che cosa è? Non riesco a trovare le informazioni WMI rilevanti con MSDN.

O c'è qualche altro metodo utile che qualcuno ha usato là fuori?

EDIT: sto lavorando in C # e preferirei esempi C # per quanto riguarda le risposte basate su .NET System.Management.

Grazie!

È stato utile?

Soluzione

1) Esatto: WMI.

Il metodo statico di classe WMI EnableIPFilterSec può abilitare la sicurezza IP a livello globale su tutte le schede di rete associate a IP. Con la sicurezza abilitata, le caratteristiche di sicurezza per qualsiasi adattatore specifico possono essere modificate con il metodo di classe WMI EnableIPSec & # 8194; MSDN per il primo qui:

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

E vedi questa voce MSDN per informazioni su EnableIPSec e i suoi parametri (che ti consentono di dichiarare un elenco di porte e protocolli):

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

Infine, questo è un collegamento alla directory del codice WMI.NET, in cui sono disponibili utili esempi di codice che utilizza System.Management per eseguire query WQL.

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

NOTA:

Se hai bisogno di perdere tempo con i test WQL per i tuoi oggetti ObjectQuery / SelectQuery System.Management, come ho fatto io, prova wbemtest. È il tester di Strumentazione gestione Windows e rende molto più piacevole la scrittura, il test e il perfezionamento di WQL per le tue applicazioni.

2) Correlati: modifiche programmatiche del firewall su Vista o successive utilizzando FirewallAPI, INetFwRule Interface e qualsiasi altra cosa possa essere necessaria.

Su Vista o versioni successive, l'utilizzo di FirewallAPI.dll è un'opzione semplice se hai bisogno della funzionalità ipsec ma non ti importa dell'implementazione di PolicyAgent legacy.

All'inizio non mi ero reso conto che questa fosse un'opzione perché non sapevo che Advanced Firewall in Vista e successivamente combinasse veramente IPSec e firewall all'interno del WFP (Windows Filtering Platform), e continuasse le implementazioni IPSec legacy passando attraverso PolicyAgent.

Ciò significa che l'utilizzo di FirewallAPI.dll può fornire tutte le funzionalità di IPSec con l'intelligenza stateful del firewall, che è esattamente quello che volevo. Aggiungo solo le regole della lista nera (poiché le regole della lista nera hanno la precedenza) e aggiungo alla lista nera quando necessario tramite l'API e il WFP inizia a far cadere il traffico. Fatto!

Altri suggerimenti

In IIS 7 la restrizione IP può essere manipolata direttamente dal file di configurazione, senza interferire con il metadatabase. Per una facile manutenzione, il file di configurazione può essere diviso con configSource in modo che la sezione IPSecure possa essere salvata nel proprio file.

Articolo completo:
http://boseca.blogspot.com/2010/12/programmmatic -addremove-ip-security.html

Non puoi farlo con WMI. WMI è limitato al filtro TCP, che significa bloccare le porte. Niente di più.

Se si utilizzano versioni precedenti di Windows, è possibile:

a) utilizza uno strumento da riga di comando, in questo caso ipseccmd.exe o ipsecpol.exe (W2K) o netsh

o

b) Scrivi le politiche nel registro

La mia ipotesi è che gli strumenti da riga di comando facciano proprio questo: scrivono valori nel registro.

Ci sono da un po 'di tempo ormai e non ho trovato una soluzione di codice gestito. Peccato che l'API WFP non sia disponibile nelle precedenti versioni di Windows.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top