Рецидив вчерашнего ES-инцидента вскрыл истинную причину. Вчерашняя гипотеза «оператор в cutover попал на canonical» опровергнута. Root cause: ES (stack 33) публиковал 0.0.0.0:9200 мимо traefik. Free-ES 7.10 без auth → порт открыт всему интернету. Ransom-бот сносил индексы by-name (мимо Control #1 destructive_requires_name), оставлял read_me с BTC-выкупом. accessLog (Control #2) пуст — бот шёл прямо в порт, не через traefik. firewalld бесполезен (docker-publish обходит INPUT-зоны). Fix (Control #3): убрана публикация host-порта из stack 33 (Portainer PUT), дыра закрыта; re-restore epz/products/artmone из daily-2026-05-25. Отдельный баг: epz-поиск падал у ОБОИХ тенантов — getTenantIdSeller( config.get("tenant")) через node-config, а tenant не задан ни в default.json, ни в env-маппинге (TENANT env = мёртвый груз). Добавлен tenant в overlay default.json (slovo/bookva). products работал — отдельный код-путь. accessLog откатан (сторожил не ту дверь). - wiki concept: correction-блок + секция «Рецидив 2026-05-29» + exposure-audit - tasks: restore-es reopened+reclosed; new ⚪ harden-books-vds-exposed-ports - NEXT_SESSION handoff Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7.1 KiB
7.1 KiB
Wiki Index
Catalog of all wiki pages. One line per page, organized by type. Updated on every ingest / new page.
Overview
- overview.md — project overview
Entities
- books-vds — Books VDS (89.253.255.133 — host4g.ru, client server hosting books app + shared mongo/minio/elasticsearch)
- dead-synology-diskstation — мёртвая Synology DiskStation (source NAS)
- kreknin-synology — Kreknin Synology (backup target + DDNS)
- openwrt-router — OpenWRT Router (192.168.1.1)
- ruvds-iis-host — RUVDS IIS Host (Win Server 2025 Core, 80.64.31.36) — CMS catch-all destination
- snolla-recovery-vm — Snolla Recovery VM (VirtualBox, savestate'нута 2026-05-21 после 36h soak)
- vds-kzntsv — VDS kzntsv (Rusonyx 160 NVMe cloud server)
- windows-recovery-host — Windows Recovery Host (рабочий PC пользователя)
Concepts
- admin-infra-project — design + migration plan для OpeItcLoc03/admin (canonical)
- vds-kzntsv-ssh-access — SSH access audit на vds-kzntsv (infra VDS), retained keys + add/revoke processes (was misnamed
books-ssh-accessдо 2026-05-25 — content всегда был про vds-kzntsv) - compose-bcrypt-escape-trap — Docker Compose ест
$в bcrypt hashes - db-tls-self-signed-via-traefik-raw-tcp — DB TLS через traefik raw TCP с self-signed certs
- docker-host-loopback-detect — Docker host-loopback detection — как доказать что host.docker.internal не петля
- es-destructive-delete-incident-2026-05-26 — ES indices wiped on canonical — true root cause (2026-05-29): ransom-бот через открытый
0.0.0.0:9200мимо traefik, free-ES без auth; гипотеза operator-error опровергнута. Fix = убрать публикацию host-порта (Control #3) + restore. Exposure-audit: mongo/mariadb/minio тоже exposed (credentialed) - future-resilient-architecture-goals — fault-tolerance roadmap placeholder (расширяется через
[resilience-roadmap-design]) - hyper-backup-structure-and-recovery — Hyper Backup — структура репо и стратегия восстановления
- iis-migration-2026-05-19-postmortem — post-mortem миграции CMS на нативный IIS, 2026-05-19
- minio-imgproxy-on-vds — MinIO+imgproxy stack на VDS, миграция с upgrade 2020→2025 + DNS swap pending
- mssql-container-data-restore — MSSQL контейнер с восстановленными production data — паттерн
- mssql-on-vds — MSSQL Express 2022 Linux на VDS — миграция + login orphan fix + traefik TCP gotchas
- ocis-on-vds-deploy-recipe — oCIS на VDS — deploy recipe + non-obvious gotchas (UID 1001 vs 1000, basic auth, LibreGraph user-create)
- portainer-2.21-admin-password-regression — Portainer 2.21
--admin-passwordregression + min 12-char policy - portainer-stack-management-books-vds — Portainer-managed stacks на books VDS — pattern application + migration log 2026-05-25
- portainer-stack-management-vds — Portainer-managed stacks на VDS — canonical pattern + migration script + gotchas
- recovery-architecture-snapshot — текущая recovery architecture (2026-05-19/21, attempt 2)
- registry-gc-mount-and-modify-flag — Docker Registry GC mount layout +
-mflag - rusonyx-vps-onboarding-quirks — Rusonyx VPS onboarding quirks (Astra Облако / myvm.rusonyx.ru)
- traefik-acme-json-to-iis-cert-import — Экспорт LE certs из traefik acme.json в IIS (PFX + SNI bindings)
- traefik-file-watch-wsl2-broken — Traefik file-watch broken под Docker Desktop Windows (WSL2 9p mount)
- traefik-on-windows-docker-desktop — Traefik на Windows Docker Desktop — нюансы
- traefik-tcp-passthrough-vs-starttls — Traefik TCP passthrough vs STARTTLS-protocols
- vbox-windows-stability-tuning — VirtualBox + Windows-гость — нюансы стабильности cross-hypervisor миграции
- vds-kzntsv-dhcp-outage-2026-05-28 — DHCP outage 2026-05-28 на vds-kzntsv — диагностика + recovery runbook (link UP но без IPv4 → статика + тикет хостеру)
- verdaccio-prune-semantics — Verdaccio prune semantics — proxied vs locally-published
- wd40efax-smr-cascade — WD40EFAX SMR Cascade — root cause NAS failure 2026-05-18
- windows-server-2025-core-bootstrap — Win Server 2025 Core (RUVDS) — bootstrap для IIS-хоста: default-blockers + transfer-методов матрица
Packages
Sources
- iis-host-migration-2026-05-19 — IIS Host Migration Session 2026-05-19 chronology
- iis-migration-to-ruvds-2026-05-23 — IIS migration to RUVDS — session 2026-05-23/24 (SSH/scp pivot, 25 SNI bindings, partial DNS cutover)
- nas-recovery-session-2026-05-18 — NAS Recovery Session 2026-05-18/19 chronology
- books-vds-backup-daily-kreknin-2026-05-25 — books VDS daily backup → kreknin pipeline standup 2026-05-25 (ES file-snapshot repo + DB dumps + curl SMTP)
- ruvds-backup-daily-kreknin-2026-05-24 — RUVDS daily backup → kreknin pipeline standup 2026-05-24 (rclone+SFTP, SYSTEM task)
- vds-kzntsv-bootstrap-2026-05-20 — VDS bootstrap session 2026-05-20 chronology
- vds-kzntsv-incident-2026-05-28 — DHCP outage incident session 2026-05-28 — chronology + ticket text