• Авторизация


[SOLVED] Проверка "пробивания" файрволла на Win 15-08-2019 14:11 к комментариям - к полной версии - понравилось!


Потребовалось автоматизировать одну задачу, в процессе которой нужно узнать, сконфигурирован ли встроенный файрволл винды на пропуск определенного UDP порта (incoming) к определенной программе (*.ехе). Если нет, внести для этого новое правило.

Так вот, вопрос: Как скриптами можно проверить наличие "нужной дыры"?

Я знаю, как в VBS пройтись по всем правилам:

Set fwPolicy2 = CreateObject("HNetCfg.FwPolicy2")
For Each rule In fwPolicy2.Rules
...


В rule есть вся инфа: ApplicationName, Protocol, Local/RemotePorts, Local/RemoteAddresses, Interfaces...

Но это простой доступ к списку правил. Можно, конечно, и пройтись по всем и попытаться проверить наличие хоть одного правила, разрешающего то, что нужно (но придется играться со списками, ведь ApplicationName может быть Any, ведь Ports может содержать как отдельный порт, так и список или диапазон...)

Может быть, есть более элегантный метод?

PS. То же самое можно получить от netsh:
netsh advfirewall firewall show rule name=all
Но вопрос именно в том, как проверить, есть ли уже разрешающее правило

Решение:
Простая и элегантная функция IsPortAllowed. Работает для входящих TCP/UDP портов. Спасибо yatur!

https://ru-programming.livejournal.com/1369076.html

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник [SOLVED] Проверка "пробивания" файрволла на Win | lj_ru_programming - Программизм | Лента друзей lj_ru_programming / Полная версия Добавить в друзья Страницы: раньше»