Add firewall script for managing inbound rules; support for domain profiles and interface aliases
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# MusicBridge — план проекта
|
||||
|
||||
Обновлено: 2026-09-09. Репозиторий находится в `MusicBridge.Agent/`.
|
||||
Обновлено: 2026-09-10. Репозиторий находится в `MusicBridge.Agent/`.
|
||||
|
||||
## Цель
|
||||
|
||||
@@ -86,6 +86,9 @@ Windows Core Audio → системная громкость устройств
|
||||
- [x] Автозапуск текущего пользователя через меню трея; скрытый старт `--minimized`.
|
||||
- [x] Самостоятельный Windows x64 пакет со встроенными Runtime, ZIP-установка,
|
||||
ярлык в меню Пуск и скрипт удаления. Это не MSI и не подписанный установщик.
|
||||
- [x] Скрипт брандмауэра: просмотр, применение и удаление собственных правил;
|
||||
только конкретный exe, Private + LocalSubnet, TCP порта агента и UDP 5353.
|
||||
- [x] Восстановление опроса после ошибок чтения; освобождение WSS после обрывов.
|
||||
|
||||
### 4. Нативное приложение iPhone — отложено пользователем
|
||||
|
||||
@@ -112,8 +115,40 @@ Windows Core Audio → системная громкость устройств
|
||||
|
||||
## Проверки и следующий шаг
|
||||
|
||||
2026-09-10:
|
||||
|
||||
- Пользователь подтвердил: Ethernet подключён к домашней сети. В `Firewall.ps1`
|
||||
добавлены `-Profile Domain -InterfaceAlias Ethernet`; по умолчанию Private.
|
||||
Domain требует точный интерфейс, Public и маски запрещены. LocalSubnet,
|
||||
привязка к exe и порты сохранены. Preview/WhatIf и проверки ограничений прошли.
|
||||
- После повторного запроса пользователя правила применены через Windows UAC.
|
||||
В ActiveStore проверены оба правила: включены, Inbound Allow, Domain,
|
||||
интерфейс Ethernet, LocalSubnet, EdgeTraversal Block, TCP 8765 и UDP 5353.
|
||||
Привязаны к `bin/Release/net10.0-windows10.0.19041.0/MusicBridge.Agent.exe`;
|
||||
имена `MusicBridge-0F2EC7194BF18EBC-HTTPS` и `MusicBridge-0F2EC7194BF18EBC-mDNS`.
|
||||
Агент во время проверки не запущен. При установке в другой каталог нужны
|
||||
правила для нового пути. Подключение со второго устройства ещё не проверено.
|
||||
|
||||
2026-09-09:
|
||||
|
||||
- Последний этап — устойчивость: **112 проверок прошли**, сборка без ошибок и
|
||||
предупреждений. Конфигурация `Resilience`, параметры `--desktop-smoke
|
||||
--qr-window-smoke --mdns-smoke --live-read`. Работающий Release-агент не остановлен.
|
||||
Проверены ошибки первого и последующих чтений, восстановление состояния,
|
||||
очистка устаревших данных при ошибке и 12 последовательных обрывов WSS.
|
||||
Чтение получает отмену через 5 секунд; отправка WSS ограничена 5 секундами,
|
||||
keepalive — 20 секунд с ожиданием ответа 10 секунд. После длинного перерыва
|
||||
mDNS пересоздаёт объявления. Реальный сон/пробуждение ещё не проверен.
|
||||
- `Packaging/Test-Firewall.ps1` проверил Preview и Apply -WhatIf без изменения
|
||||
системы. Правила ещё не применены: Ethernet имеет профиль DomainAuthenticated,
|
||||
Tailscale — Private, tun2 — Public. Правила Private не откроют доступ через
|
||||
Ethernet. Категории сети не менять автоматически; доступ для Domain требует
|
||||
отдельного решения пользователя.
|
||||
- ZIP пересобран с изменениями устойчивости и `Firewall.ps1`. Повторная проверка
|
||||
установки, запуска со встроенным Runtime, обновления, защиты занятого exe и
|
||||
удаления прошла. Проверка правил в режиме WhatIf также прошла; реальных
|
||||
изменений брандмауэра и установки в рабочую папку пользователя не выполнялось.
|
||||
|
||||
- Последний этап — автозапуск и упаковка: **107 проверок прошло** с
|
||||
`-c Packaging --no-build -- --desktop-smoke --qr-window-smoke --mdns-smoke --live-read`.
|
||||
Проверены запись/удаление тестовой записи автозапуска и скрытый старт окна.
|
||||
@@ -194,7 +229,8 @@ Windows Core Audio → системная громкость устройств
|
||||
объявляется на домашних IPv4-адаптерах с multicast. Автоизменения брандмауэра нет.
|
||||
|
||||
Следующий шаг: проверка с другого устройства и устойчивости при смене сети,
|
||||
проверка входа Windows с автозапуском и подготовка правил частного брандмауэра.
|
||||
проверка входа Windows с автозапуском. Правила для домашнего Ethernet применены
|
||||
и проверены для текущего пути Release-сборки (см. запись от 2026-09-10).
|
||||
Трей, автозапуск и ZIP-упаковка реализованы. iPhone-клиент пока не начинать.
|
||||
Точные границы реализации и следующие шаги — в `CONNECTION-ROADMAP.md`.
|
||||
Начать разработку iOS только после новой команды пользователя.
|
||||
@@ -221,6 +257,9 @@ Windows Core Audio → системная громкость устройств
|
||||
- `Desktop/DesktopHost.cs`: STA-поток, значок/меню трея и жизненный цикл окна.
|
||||
- `Desktop/StartupSettings.cs`: HKCU Run, экранированная команда автозапуска.
|
||||
- `Packaging/`: сборка standalone ZIP, установка/удаление и изолированный smoke-тест.
|
||||
- `Packaging/Firewall.ps1`: Preview/Apply/Remove правил LocalSubnet; Private по
|
||||
умолчанию, Domain только с явно указанным интерфейсом домашней сети.
|
||||
- `Packaging/Test-Firewall.ps1`: проверка определений правил без изменения системы.
|
||||
- `INSTALL.md`: установка, автозапуск, обновление и удаление.
|
||||
- `Network/LocalAddresses.cs`: подходящие домашние IPv4-адреса.
|
||||
- `Network/DiscoveryDescriptor.cs`: публичные поля DNS-SD.
|
||||
|
||||
Reference in New Issue
Block a user