Короткий ответ: нет — не удобно и не «чисто» реализовано штатным брандмауэром Windows. Можно сделать рабочие обходы, но прямой «для этого одного процесса — разрешать только эти IP, а всё остальное блокировать» без затрагивания других приложений штатными средствами не сделать.
Почему так:
- Windows Defender Firewall по умолчанию позволяет исходящие соединения. Если вы просто создадите правило Allow для приложения и перечислите нужные remote IP — это разрешит соединения к этим адресам, но ничего не помешает приложению подключаться к любым другим адресам (потому что политика по умолчанию — Allow).
- Попытка сделать «для этого приложения запрещено всё, кроме…» путём создания общего блокирующего правила для этого приложения и затем отдельных allow‑правил для нужных IP не сработает: explicit Block rules имеют приоритет над Allow, т.е. общий блок «перебьёт» любые allow‑правила.
- Можно изменить глобальную политику исходящих соединений на Block и потом «открывать» всё, что нужно — но это затронет все приложения и потребует прописать много разрешений.
Варианты решения и рекомендации
1) Если хотите остаться на штатном брандмауэре:
- Можно установить для соответствующего профиля DefaultOutboundAction = Block (Set-NetFirewallProfile -DefaultOutboundAction Block) и затем вручную создать Allow‑правила для всех приложений/сервисов, которым нужен доступ. Работает, но требует много правил и затрагивает систему в целом.
- Для одного приложения можно создать Allow‑правило с перечислением remote IP/prefix (через GUI или PowerShell), но без глобального блока это будет только допускать эти адреса дополнительно — не запрещать всё остальное.
Пример PowerShell‑команды для разрешения приложения к нескольким подсетям:
New-NetFirewallRule -DisplayName "Allow MyApp to allowed IPs" -Direction Outbound -Program "C:\Path\MyApp.exe" -Action Allow -RemoteAddress "1.2.3.4,5.6.7.0/24" -Profile Private,Domain
2) Более практичные альтернативы (рекомендую):
- Использовать сторонний файрвол на базе WFP, который поддерживает per‑application whitelist/blacklist и умеет делать «deny by default» для конкретного процесса. Примеры: SimpleWall (бесплатный, open source), TinyWall, NetLimiter (платно, с управлением по приложениям), Comodo / GlassWire и т.п. Такие утилиты реализуют свою логику поверх WFP и позволяют легко сделать «только эти адреса» для конкретного приложения.
- Использовать перехват/прокси: запустить приложение через локальный SOCKS/HTTP‑прокси (или заставить через Proxifier), настроить прокси/ACL так, чтобы он пускал только нужные IP. Подходит, если приложение поддерживает прокси или вы можете принудительно направить трафик.
- Поместить приложение в изолированную среду (VM, контейнер) и контролировать исходящий трафик на уровне хоста/маршрутизатора/VM‑файрвола. Это хорошо для жёсткой сегрегации.
- Для корпоративной инфраструктуры — использовать сторонние сетевые устройства/UTM, прокси, или политики через SCCM/MDM, которые позволяют гибко задавать правила.
Итого
Если нужна простая и удобная реализация «для этого приложения — только эти адреса, всё остальное запрещено», лучший путь — сторонний инструмент (SimpleWall / TinyWall / NetLimiter и др.) либо прокси/VM. Встроенный брандмауэр Windows либо потребует глобального блокирования исходящих соединений (и большой работы по созданию разрешений), либо множества «инвертированных» блокирующих правил — оба варианта неудобны.