Маруся: интеграция отменена владельцем — службы и туннель на rpi выключены; остатки на fr1 — к демонтажу

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
gilfanovr
2026-10-11 20:43:42 +03:00
co-authored by Claude Opus 5.5
parent cc363aa714
commit 3ecc432ab4
2 changed files with 2 additions and 1 deletions
+1 -1
View File
@@ -266,7 +266,7 @@ backend=systemd banaction=ufw
- `~tgclaude/.openclaw-auth-profile-secrets` — права **777** на каталоге для секретов (сейчас пуст), стоит `chmod 700`. - `~tgclaude/.openclaw-auth-profile-secrets` — права **777** на каталоге для секретов (сейчас пуст), стоит `chmod 700`.
- Не решено, нужны ли на fr1: `~rus/backups` (5.4 ГБ архивов с выведенного de1) и спящий openclaw (947 МБ дерева + 2.0 ГБ состояния + образ-снимок 1.55 ГБ). - Не решено, нужны ли на fr1: `~rus/backups` (5.4 ГБ архивов с выведенного de1) и спящий openclaw (947 МБ дерева + 2.0 ГБ состояния + образ-снимок 1.55 ГБ).
- Страховочные файлы, оставленные после работ: `~rus/imgbot-repo-pre-merge-20260908-133444.tar.gz` (369 КБ), `~rus/imgbot-legacy-archive-rows-20260908.json` (808 КБ), `~rus/gitea/docker-compose.yml.bak-20260908`. - Страховочные файлы, оставленные после работ: `~rus/imgbot-repo-pre-merge-20260908-133444.tar.gz` (369 КБ), `~rus/imgbot-legacy-archive-rows-20260908.json` (808 КБ), `~rus/gitea/docker-compose.yml.bak-20260908`.
- ⏳ **Вебхук Маруси: fr1 и туннель готовы, интеграция не завершена** (2026-10-11). Осталось за владельцем и rpi: приватный навык в VK, `MARUSIA_SKILL_ID` в env на rpi, URL `https://astra.ruzzy.dev/marusia/webhook/<секрет>` в настройках навыка, проверка в отладчике VK и на настоящей колонке (`stacks/astra-marusia/README.md`). - ⛔ **Интеграция с Марусей отменена владельцем 2026-10-11:** туннель с rpi выключен, `astra.ruzzy.dev/marusia/…` никуда не ведёт. На fr1 ещё остались: vhost `astra.ruzzy.dev` (`/etc/nginx/conf.d/marusia-webhook.conf`), `/etc/ssh/sshd_config.d/70-marusia-tunnel.conf`, `marusia-tunnel` в `AllowUsers` и сам пользователь, DNS `astra.ruzzy.dev`, `~rus/marusia-audit/` — убрать (нужен sudo). Было: **Вебхук Маруси: fr1 и туннель готовы, интеграция не завершена** (2026-10-11). Осталось за владельцем и rpi: приватный навык в VK, `MARUSIA_SKILL_ID` в env на rpi, URL `https://astra.ruzzy.dev/marusia/webhook/<секрет>` в настройках навыка, проверка в отладчике VK и на настоящей колонке (`stacks/astra-marusia/README.md`).
- Снимок `nginx -T`, `sshd -T`, `ss -lntp` до работ над вебхуком лежит в `~rus/marusia-audit/` (600) — на случай отката; удалить, когда интеграция устоится. - Снимок `nginx -T`, `sshd -T`, `ss -lntp` до работ над вебхуком лежит в `~rus/marusia-audit/` (600) — на случай отката; удалить, когда интеграция устоится.
- ⚠️ Описания **других** серверов не сверялись: `servers/de1.md` и `servers/ru1.md` датируются временем до вывода de1, так что могут врать. - ⚠️ Описания **других** серверов не сверялись: `servers/de1.md` и `servers/ru1.md` датируются временем до вывода de1, так что могут врать.
+1
View File
@@ -154,6 +154,7 @@ Docker CE 29.9 + Compose v5.6 из репо download.docker.com (в Debian ст
- Индикатор работы добавлен 2026-10-11: [astra-bot `20a8ffc`](https://git.ruzzy.dev/ruzzy/astra-bot/commit/20a8ffc). Раньше typing отправлялся один раз и пропадал через несколько секунд; теперь при распознавании голосовых и выполнении задачи отдельное тихое сообщение с машинкой 🚗 редактируется каждые 4 с, typing обновляется. Один индикатор на чат, перекрывающиеся задачи учитываются; после окончания сообщение удаляется. Проверки: 46 тестов, включая перекрытие задач, редактирование/удаление и неудачную отправку. Резервная копия `/opt/astra-bot/bot.py.bak-20261011-waiting-car`; установка выполнена, перезапуск через `restart-check.py` после ответа. - Индикатор работы добавлен 2026-10-11: [astra-bot `20a8ffc`](https://git.ruzzy.dev/ruzzy/astra-bot/commit/20a8ffc). Раньше typing отправлялся один раз и пропадал через несколько секунд; теперь при распознавании голосовых и выполнении задачи отдельное тихое сообщение с машинкой 🚗 редактируется каждые 4 с, typing обновляется. Один индикатор на чат, перекрывающиеся задачи учитываются; после окончания сообщение удаляется. Проверки: 46 тестов, включая перекрытие задач, редактирование/удаление и неудачную отправку. Резервная копия `/opt/astra-bot/bot.py.bak-20261011-waiting-car`; установка выполнена, перезапуск через `restart-check.py` после ответа.
## Разговорный навык Маруси (подготовлен 2026-10-11) ## Разговорный навык Маруси (подготовлен 2026-10-11)
- ⛔ **Отменено владельцем 2026-10-11 (вечер): интеграцию с Марусей не делаем.** `astra-marusia.service` и `astra-marusia-tunnel.service` остановлены и выключены (`disable --now`), туннель до fr1 закрыт (8788 на rpi и 18788 на fr1 не слушаются). Код, юниты, `/etc/astra-marusia.env`, ключ `~astra/.ssh/marusia_tunnel` пока на месте — полный демонтаж (rpi + fr1) по отдельному решению. Ниже — как было устроено.
- Повторная проверка безопасности 2026-10-11: [astra-bot `7294ea8`](https://git.ruzzy.dev/ruzzy/astra-bot/commit/7294ea8), 59 тестов. Секреты webhook исключены из окружения backend; HTTP максимум четыре соединения, очередь 8 и таймаут чтения 5 с; Unicode path/deep JSON обрабатываются безопасно. Установлены InaccessiblePaths для бэкапов и чужих конфигов/приложений, ProtectProc=invisible. В рабочей mount namespace от astra с NoNewPrivileges подтверждено отсутствие доступа к home/infra, backup, router.env, bot.env, marusia.env, media; sudo denied, модель работает. Публичный HTTPS: GET webhook 403, wrong secret 404, unknown skill/user 403, malformed schema 400; public /health скрыт, HTTP /marusia/ не редиректит. Порты 8788/18788 fr1 недоступны с публичного IPv4, wildcard reverse forward denied. ⚠️ Без подтверждённой подписи VK секрет URL остаётся единственным подтверждением доступа; user_id/skill_id можно подделать при утечке URL. Сейчас оба списка настройки пусты и webhook не запускает модель. Живые конфиги/логи/firewall/IPv6 fr1 доступны только его агенту, с rpi их прочитать нельзя. Детали — stacks/astra-marusia/README.md; прежний server.py — `/opt/astra-marusia/server.py.bak-before-audit`. - Повторная проверка безопасности 2026-10-11: [astra-bot `7294ea8`](https://git.ruzzy.dev/ruzzy/astra-bot/commit/7294ea8), 59 тестов. Секреты webhook исключены из окружения backend; HTTP максимум четыре соединения, очередь 8 и таймаут чтения 5 с; Unicode path/deep JSON обрабатываются безопасно. Установлены InaccessiblePaths для бэкапов и чужих конфигов/приложений, ProtectProc=invisible. В рабочей mount namespace от astra с NoNewPrivileges подтверждено отсутствие доступа к home/infra, backup, router.env, bot.env, marusia.env, media; sudo denied, модель работает. Публичный HTTPS: GET webhook 403, wrong secret 404, unknown skill/user 403, malformed schema 400; public /health скрыт, HTTP /marusia/ не редиректит. Порты 8788/18788 fr1 недоступны с публичного IPv4, wildcard reverse forward denied. ⚠️ Без подтверждённой подписи VK секрет URL остаётся единственным подтверждением доступа; user_id/skill_id можно подделать при утечке URL. Сейчас оба списка настройки пусты и webhook не запускает модель. Живые конфиги/логи/firewall/IPv6 fr1 доступны только его агенту, с rpi их прочитать нельзя. Детали — stacks/astra-marusia/README.md; прежний server.py — `/opt/astra-marusia/server.py.bak-before-audit`.
- Туннель Маруси запущен и проверен 2026-10-11 (ранее не был подключён): `astra-marusia-tunnel.service`, источник `stacks/astra-marusia/astra-marusia-tunnel.service`, автозапуск и Restart=always/10 с, SSH keepalive 30 с × 3. `~astra/.ssh/known_hosts_marusia` (600) содержит публичный ключ fr1, сверенный по отпечатку из документации; используется StrictHostKeyChecking. Вход `marusia-tunnel@fr1.ruzzy.dev:22`, reverse `127.0.0.1:18788` → rpi `127.0.0.1:8788`, отдельный ключ `marusia_tunnel`. Через `https://astra.ruzzy.dev/marusia/webhook/…` подтверждены 404 на неверный секрет и 403 на правильный секрет с посторонним skill/user; TLS проверяется штатно. Shell, другой reverse-порт 18789 и direct forwarding через этот SSH-ключ отклонены fr1. Навык/разрешённые user IDs ещё не настроены; колонка пока не подключена. Публичная часть fr1 подготовлена его агентом (infra e2bd908); ограниченный ключ не даёт читать ss/firewall/логи fr1, loopback bind там проверяет агент fr1. - Туннель Маруси запущен и проверен 2026-10-11 (ранее не был подключён): `astra-marusia-tunnel.service`, источник `stacks/astra-marusia/astra-marusia-tunnel.service`, автозапуск и Restart=always/10 с, SSH keepalive 30 с × 3. `~astra/.ssh/known_hosts_marusia` (600) содержит публичный ключ fr1, сверенный по отпечатку из документации; используется StrictHostKeyChecking. Вход `marusia-tunnel@fr1.ruzzy.dev:22`, reverse `127.0.0.1:18788` → rpi `127.0.0.1:8788`, отдельный ключ `marusia_tunnel`. Через `https://astra.ruzzy.dev/marusia/webhook/…` подтверждены 404 на неверный секрет и 403 на правильный секрет с посторонним skill/user; TLS проверяется штатно. Shell, другой reverse-порт 18789 и direct forwarding через этот SSH-ключ отклонены fr1. Навык/разрешённые user IDs ещё не настроены; колонка пока не подключена. Публичная часть fr1 подготовлена его агентом (infra e2bd908); ограниченный ключ не даёт читать ss/firewall/логи fr1, loopback bind там проверяет агент fr1.
- Ограничения Маруси усилены 2026-10-11 по решению владельца: только обычная беседа, действия подключать отдельно. [astra-bot `b39c9d5`](https://git.ruzzy.dev/ruzzy/astra-bot/commit/b39c9d5), проверки [ `52b07b8`](https://git.ruzzy.dev/ruzzy/astra-bot/commit/52b07b8). В `/etc/astra-marusia.env` добавлен пустой `MARUSIA_ALLOWED_USER_IDS`: до явного добавления проверенных идентификаторов Маруси все запросы запрещены; Telegram ID не подходит, первого неизвестного пользователя автоматически не принимать. Секрет URL и skill_id сохранены, но не доказывают происхождение от VK. Schema/Content-Type проверяются, тело до 16 KiB (было 64), вопрос до 1000 символов, TTS-разметка экранируется. Один запрос к модели одновременно (было два), 10 вопросов/мин и 60/час; приём POST ограничен 30/мин. ⚠️ Бюджеты в памяти и сбрасываются после рестарта. systemd: MemoryMax=512M, CPUQuota=100%, TasksMax=64; служба active и `/health`=200 после установки. 57 тестов прошли, в том числе отказ чужому/пустому списку до модели. Предыдущий сервер `/opt/astra-marusia/server.py.bak-before-limits`. Агент fr1 параллельно подготовил публичный vhost astra.ruzzy.dev и ограниченного пользователя туннеля (infra e2bd908); его изменения сохранены при rebase. Локальные ограничения действуют; дополнительное ужесточение nginx на fr1 до 16 KiB и 30 запросов/мин ещё не выполнено. - Ограничения Маруси усилены 2026-10-11 по решению владельца: только обычная беседа, действия подключать отдельно. [astra-bot `b39c9d5`](https://git.ruzzy.dev/ruzzy/astra-bot/commit/b39c9d5), проверки [ `52b07b8`](https://git.ruzzy.dev/ruzzy/astra-bot/commit/52b07b8). В `/etc/astra-marusia.env` добавлен пустой `MARUSIA_ALLOWED_USER_IDS`: до явного добавления проверенных идентификаторов Маруси все запросы запрещены; Telegram ID не подходит, первого неизвестного пользователя автоматически не принимать. Секрет URL и skill_id сохранены, но не доказывают происхождение от VK. Schema/Content-Type проверяются, тело до 16 KiB (было 64), вопрос до 1000 символов, TTS-разметка экранируется. Один запрос к модели одновременно (было два), 10 вопросов/мин и 60/час; приём POST ограничен 30/мин. ⚠️ Бюджеты в памяти и сбрасываются после рестарта. systemd: MemoryMax=512M, CPUQuota=100%, TasksMax=64; служба active и `/health`=200 после установки. 57 тестов прошли, в том числе отказ чужому/пустому списку до модели. Предыдущий сервер `/opt/astra-marusia/server.py.bak-before-limits`. Агент fr1 параллельно подготовил публичный vhost astra.ruzzy.dev и ограниченного пользователя туннеля (infra e2bd908); его изменения сохранены при rebase. Локальные ограничения действуют; дополнительное ужесточение nginx на fr1 до 16 KiB и 30 запросов/мин ещё не выполнено.