Add Windows SSH monitoring MVP #1
5 changed files with 14 additions and 14 deletions
10
README.md
10
README.md
|
|
@ -9,7 +9,7 @@
|
|||
- SSH-терминал и сохранённые подключения без передачи приватных ключей серверу управления;
|
||||
- группы серверов, теги, избранное и сводные предупреждения;
|
||||
- явное включение и ручное отключение защищённых связей между серверами;
|
||||
- ограниченный доступ автоматизированных инструментов, например Hermes, к выбранному серверу разработки;
|
||||
- ограниченный доступ любого AI-агента к выбранному серверу разработки;
|
||||
- маленький Linux-агент без тяжёлой панели, Docker и отдельной базы данных на каждом узле.
|
||||
|
||||
## Архитектура
|
||||
|
|
@ -19,10 +19,10 @@ Windows client -- ограниченный SSH --> главный WireGuard Hub
|
|||
^
|
||||
| исходящие WireGuard-соединения
|
||||
|
|
||||
Hermes / Home / другие серверы
|
||||
AI-агент / Home / другие серверы
|
||||
```
|
||||
|
||||
Hub объединяет узлы в приватной подсети, но по умолчанию запрещает транзит между ними. Каждая связь `источник → цель` включается и отключается отдельно. Поэтому можно оставить `Hermes → Home`, отключив только `Hermes → Server2`. Обратное направление не появляется автоматически.
|
||||
Hub объединяет узлы в приватной подсети, но по умолчанию запрещает транзит между ними. Каждая связь `источник → цель` включается и отключается отдельно. Поэтому можно оставить `AI-агент → Home`, отключив только `AI-агент → Server2`. Обратное направление не появляется автоматически.
|
||||
|
||||
Подробности: [архитектура](docs/architecture.md), [модель безопасности](docs/security-model.md), [план разработки](docs/roadmap.md) и [контракт Linux-установщика](docs/installer-contract.md).
|
||||
|
||||
|
|
@ -59,7 +59,7 @@ sudo ./ochenstarik-server-monitor-manager.sh hub
|
|||
3. Откройте выбранный UDP-порт WireGuard (по умолчанию `51820`) и создайте коды узлов:
|
||||
|
||||
```bash
|
||||
sudo ochenstarik-smm node-code hermes
|
||||
sudo ochenstarik-smm node-code ai-agent
|
||||
sudo ochenstarik-smm node-code home
|
||||
sudo ochenstarik-smm node-code server2
|
||||
```
|
||||
|
|
@ -80,7 +80,7 @@ sudo ochenstarik-smm node-code server2
|
|||
- отдельный ключ мониторинга и pinned `known_hosts`; код регистрации Node передаётся один раз вручную;
|
||||
- отдельная идентичность для пользователя, устройства, агента и автоматизации;
|
||||
- опасные действия требуют повторного подтверждения и попадают в неизменяемый аудит;
|
||||
- доступ Hermes выдаётся отдельному Unix-пользователю и SSH-ключу с минимальными правами;
|
||||
- доступ AI-агенту выдаётся отдельному Unix-пользователю и SSH-ключу с минимальными правами;
|
||||
- отключение Link сразу удаляет разрешённую пару из nftables на Hub, не затрагивая другие связи узла.
|
||||
|
||||
## Лицензия и секреты
|
||||
|
|
|
|||
|
|
@ -61,12 +61,12 @@ Active -> Expired -> Disabled
|
|||
|
||||
Control node передаёт каждому узлу только его часть конфигурации. Приватный WireGuard-ключ никогда не покидает узел. `Disconnect` удаляет peer и маршруты с обеих сторон; при недоступности одного узла команда остаётся обязательной и применяется при его следующем подключении.
|
||||
|
||||
## 3. Сценарий Hermes
|
||||
## 3. Сценарий AI-агента
|
||||
|
||||
1. На домашнем сервере создаётся отдельный пользователь, например `hermes-dev`, без root-доступа.
|
||||
1. На домашнем сервере создаётся отдельный пользователь, например `ai-agent-dev`, без root-доступа.
|
||||
2. Рабочие каталоги и разрешённые команды ограничиваются Unix-правами, группами, контейнером или sandbox-профилем.
|
||||
3. В Server Monitor Manager создаётся Link от сервера с Hermes к домашнему серверу только для адреса домашнего узла и SSH-порта.
|
||||
4. Hermes использует собственный SSH-ключ или короткоживущий SSH-сертификат.
|
||||
3. В Server Monitor Manager создаётся Link от сервера с AI-агентом к домашнему серверу только для адреса домашнего узла и SSH-порта.
|
||||
4. AI-агент использует собственный SSH-ключ или короткоживущий SSH-сертификат.
|
||||
5. Пользователь нажимает `Connect`; после разработки — `Disconnect`.
|
||||
6. Отключение Link разрывает сетевую достижимость, а отзыв SSH-сертификата/ключа остаётся вторым независимым барьером.
|
||||
|
||||
|
|
|
|||
|
|
@ -36,13 +36,13 @@
|
|||
- [ ] типизированные безопасные действия с аудитом;
|
||||
- [ ] экспорт диагностики без секретов.
|
||||
|
||||
## Этап 4 — Links и Hermes
|
||||
## Этап 4 — Links и AI-агенты
|
||||
|
||||
- [ ] WireGuard peer helper с минимальными привилегиями;
|
||||
- [ ] policies по CIDR, протоколу, порту и TTL;
|
||||
- [ ] connect/disconnect с подтверждением обоих узлов;
|
||||
- [ ] обязательное отключение после reconnect;
|
||||
- [ ] отдельная automation identity для Hermes;
|
||||
- [ ] отдельная automation identity для AI-агента;
|
||||
- [ ] интеграционные тесты kill switch и частичных отказов.
|
||||
|
||||
## Этап 5 — другие платформы
|
||||
|
|
|
|||
|
|
@ -6,13 +6,13 @@
|
|||
- device, agent, SSH и WireGuard identities;
|
||||
- команды, терминальные сессии и аудит;
|
||||
- topology серверов, адреса и метрики;
|
||||
- права автоматизаций, включая Hermes.
|
||||
- права автоматизаций, включая AI-агентов.
|
||||
|
||||
## Границы доверия
|
||||
|
||||
Desktop client, control node и каждый agent считаются отдельными субъектами. Компрометация одного агента не должна выдавать ключи других узлов или право создавать новые Links. Control node координирует публичные параметры и политики, но не хранит приватные WireGuard/SSH-ключи узлов.
|
||||
|
||||
В первом SSH-MVP control node отсутствует. Windows-клиент генерирует отдельный Ed25519-ключ, а сервер привязывает его к `restrict,command`. Этот ключ предназначен только для чтения ограниченного snapshot метрик и не используется для интерактивного терминала или Hermes.
|
||||
В первом SSH-MVP control node отсутствует. Windows-клиент генерирует отдельный Ed25519-ключ, а сервер привязывает его к `restrict,command`. Этот ключ предназначен только для чтения ограниченного snapshot метрик и не используется для интерактивного терминала или AI-агента.
|
||||
|
||||
## Регистрация агента
|
||||
|
||||
|
|
|
|||
|
|
@ -278,7 +278,7 @@
|
|||
<InfoBar
|
||||
IsClosable="False"
|
||||
IsOpen="True"
|
||||
Message="Связь направленная: Hermes → Home разрешает Hermes обращаться к Home. Обратное направление включается отдельно."
|
||||
Message="Связь направленная: AI-агент → Home разрешает агенту обращаться к Home. Обратное направление включается отдельно."
|
||||
Severity="Informational" />
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
|
|
|||
Loading…
Reference in a new issue