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