Add firewall script for managing inbound rules; support for domain profiles and interface aliases

This commit is contained in:
2026-09-10 08:56:22 +03:00
parent 369c0347a7
commit e9931cb941
5 changed files with 108 additions and 6 deletions
+37
View File
@@ -36,6 +36,43 @@ powershell -NoProfile -ExecutionPolicy Bypass -File "$env:LOCALAPPDATA\Programs\
Правила брандмауэра установщик не меняет. Для подключения из домашней сети
потребуется разрешённый доступ к TCP-порту агента и UDP 5353 в частной сети.
## Брандмауэр
Установленный `Firewall.ps1` создаёт два входящих правила для конкретного exe:
TCP 8765 (HTTPS/WSS) и UDP 5353 (mDNS). Только профиль Private и адреса
LocalSubnet; Edge Traversal запрещён. Профили сети и чужие правила не меняются.
По умолчанию в доменной или публичной сети эти правила не разрешат подключение.
Если домашний Ethernet имеет доменный профиль, можно явно передать
`-Profile Domain -InterfaceAlias Ethernet`. Для Domain обязательно точное имя
интерфейса; маски и `Any` запрещены. Адреса остаются ограничены LocalSubnet.
Профиль Public не поддерживается. Повторное применение заменяет профиль и
интерфейс собственных правил для этого exe, а не добавляет ещё одну пару правил.
Просмотр без изменений:
```powershell
& "$env:LOCALAPPDATA\Programs\MusicBridge\Firewall.ps1" -Action Preview
```
Применение из PowerShell администратора:
```powershell
& "$env:LOCALAPPDATA\Programs\MusicBridge\Firewall.ps1" -Action Apply
```
Для нестандартной установки указать абсолютный `-ProgramPath` к exe;
для другого порта — `-Port`. `-Action Apply -WhatIf` показывает план без изменений.
Повторное применение обновляет собственные правила этого пути, включая порт.
Скрипт не сужает доступ, который уже разрешён другими правилами Windows.
Перед удалением приложения можно удалить его правила из PowerShell администратора:
```powershell
& "$env:LOCALAPPDATA\Programs\MusicBridge\Firewall.ps1" -Action Remove
```
Удаление правил выполняется отдельно: установщик и деинсталлятор не запрашивают
административные права. Для нестандартной установки передать тот же `-ProgramPath`.
## Для разработчика
Собрать пакет: `powershell -NoProfile -File Packaging/Publish.ps1`.