Методы программного изменения правил ipsec с помощью C #?

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

  •  05-07-2019
  •  | 
  •  

Вопрос

Единственный известный мне метод выполнения изменений IPSec включает вызов netsh для внесения изменений.Существует ли метод, использующий System.Management и объекты WMI напрямую?Если да, то что это?Мне трудно найти соответствующую информацию WMI с помощью MSDN.

Или есть какой-то другой полезный метод, который кто-то там использовал?

Редактировать:Я работаю на C # и предпочел бы примеры C # в отношении ответов, основанных на .NET System.Management.

Спасибо!

Это было полезно?

Решение

1) Точный:WMI.

Статический метод класса WMI EnableIPFilterSec может включить IP-безопасность глобально для всех сетевых адаптеров, привязанных к IP.При включенной безопасности характеристики безопасности для любого конкретного адаптера могут быть изменены с помощью метода класса EnableIPSec WMI.MSDN для первого здесь:

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

И посмотрите эту запись MSDN для получения информации об EnableIPSec и его параметрах (которые позволяют вам объявлять список портов и протоколов).:

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

Наконец, это ссылка на каталог WMI.NET code, где есть полезные примеры кода, использующего System.Management для выполнения запросов WQL.

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

ПРИМЕЧАНИЕ:

Если вам нужно много возиться с тестами WQL для ваших объектов ObjectQuery / SelectQuery System.Management, как это сделал я, попробуйте wbemtest.Это тестер инструментария управления Windows, который значительно упрощает написание, тестирование и оттачивание WQL для ваших приложений.

2) Связанные:Программный брандмауэр изменяется в Vista или более поздней версии с помощью FirewallAPI, интерфейса INetFwRule и всего остального, что может понадобиться.

В Vista или более поздней версии использование FirewallAPI.dll является простым вариантом, если вам нужна функциональность ipsec, но вас не волнует устаревшая реализация PolicyAgent.

Сначала я не осознавал, что это вариант, потому что я не знал, что расширенный брандмауэр в Vista и более поздних версиях действительно сочетает IPSec и брандмауэр в рамках WFP (платформа фильтрации Windows) и поддерживает устаревшие реализации IPSec, проходящие через PolicyAgent.

Это означает, что использование FirewallAPI.dll может предоставить всю функциональность IPSec с отслеживанием состояния брандмауэра, что является именно тем, чего я хотел.Я просто добавляю правила черного списка (поскольку правила черного списка имеют приоритет) и добавляю в черный список при необходимости через API, и WFP начинает отбрасывать трафик.Сделано!

Другие советы

В IIS 7 IP-ограничением можно манипулировать напрямую из файла конфигурации, не вмешиваясь в базу метаданных. Для удобства обслуживания файл конфигурации можно разделить с помощью configSource, чтобы раздел IPSecure можно было сохранить в своем собственном файле.

Полная статья:
http://boseca.blogspot.com/2010/12/programmatics -addremove-ф-security.html

Вы не можете сделать это с помощью WMI.WMI ограничен фильтрацией TCP, что означает блокировку портов.И ничего больше.

Если вы используете предыдущие версии Windows, вы можете либо:

a) используйте инструмент командной строки, в данном случае либо ipseccmd.exe, либо ipsecpol.exe (W2K), либо netsh

или

б) Внесите политики в реестр

Я предполагаю, что инструменты командной строки делают именно это:они записывают значения в реестр.

Я занимаюсь этим уже некоторое время и не нашел решения с управляемым кодом.Очень жаль, что API WFP недоступен в предыдущих версиях Windows.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top