Я запускаю «Управление политикой IP-безопасности», чтобы заблокировать IP-адреса.
Можно ли создать новый фильтр с помощью консоли или win32 api? Я хочу автоматизировать процесс из своего приложения.
В netsh
инструмент в ipsec
context сделает то, что вы ищете. Посмотри на Ссылка Microsoft для получения подробной информации.
В ipsec dynamic
контекст netsh
вы можете применять правила на лету (которые не станут постоянными), или вы можете использовать ipsec static
контекст для внесения изменений в постоянную конфигурацию (которые не применяются немедленно). Вы можете создавать правила и списки фильтров, а также управлять политикой ipsec точно так же, как в графическом интерфейсе. Это действительно очень удобно.
Я подозреваю, что вы сможете понять это, поскольку вы уже знакомы со всей терминологией в графическом интерфейсе, которая практически такая же в интерфейсе командной строки. Вот краткий пример создания политики (не активной), фильтрации (блока), списка фильтров, добавления фильтра в этот список фильтров (любой источник, меня, получателя, ICMP) и добавления правила в политику.
netsh ipsec static add policy name=MyPolicy
netsh ipsec static add filteraction name = MyFilteraction action = block
netsh ipsec static добавить список фильтров name = MyFilterlist
netsh ipsec static add filter list = MyFilterlist srcaddr = any dstaddr = me protocol = ICMP
netsh ipsec static add rule name=Rule1 policy=MyPolicy filterlist=MyFilterlist filteraction=MyFilteraction
Это должно быть возможно с netsh firewall
или с netsh ipsec
; К сожалению, я никогда толком не использовал эти команды, поэтому больше не могу вам помочь. Как всегда, вы можете получить справочные экраны, используя netsh <command> /?
.
wipfw является лицензированным BSD портом для Windows ipfw от FreeBSD. Если бы я был вами, я бы изучил его код и в конечном итоге повторно использовал его в своем приложении.