QMClient: команды, задачи и least-privilege на хосте
Формальный чеклист для runbook (аудит «остатка» из обзора экосистемы).
Поверхность агента
- Бинарь
qmclientобычно устанавливается под/opt/qmclientс конфигомqmclient.conf(см. README QMClient). - Агент выполняет команды, запрошенные с QMServer / QMAdmin (супервизия, установка ядра, SteamCMD и т.д.). Каждая новая команда в продукте должна сопровождаться оценкой: нужны ли root, сетевой доступ, запись вне каталога инстанса.
Политика на хосте
| Практика | Зачем |
|---|---|
| Отдельный UNIX-пользователь для игрового сервера | Ограничить ущерб при компрометации мода/плагина. |
| Firewall только необходимые порты (Minecraft, SSH с allowlist) | Снижение сканирования и латерального движения. |
| Не хранить enrollment и токены в world-доступных каталогах | Конверт только в root-only конфиге. |
| Регулярные обновления ОС и ограничение sudo | Базовая гигиена для долгоживущих нод. |
Операционный аудит
- Перечислите сценарии:
--supervise,--upgrade, установка NeoForge/Vanilla, отчёты. - Для каждого: какие пути на диске, какие внешние URL, требуется ли root.
- Зафиксируйте в внутренней wiki минимально необходимые права и процедуру отзыва доступа (ротация enrollment).
Подробности конверта и границ доверия — в README репозитория QMClient и в SECURITY смежных сервисов.