diff --git a/.tasks/STATUS.md b/.tasks/STATUS.md index 9be9dc4..38f098b 100644 --- a/.tasks/STATUS.md +++ b/.tasks/STATUS.md @@ -1,5 +1,6 @@ # Admin Task Board -_Updated: 2026-06-05 — заведена ⚪ `fix-nl-vds-reality-pq-dest`. Новый NL VDS (213.176.64.253, 3x-UI/Xray 26.6.1): диагностирован (read-only, сервер не тронут) отказ Reality-инбаунда 443 — **ML-DSA-65 (PQ) × dest `www.intel.com` (Akamai шлёт HRR)**; plain VLESS 32030 работает. Fix (intel→microsoft симметрично server+client) НЕ применён, ждёт команды user. Узел+root-cause в вики (`nl-vds-3xui`, `reality-pq-mldsa65-dest-incompatibility`, commit `4fc7cbf6`); креды в `pass nl-vds-3xui/full-env`._ +_Updated: 2026-06-05 (вечер) — 🟡 `fix-nl-vds-reality-pq-dest`: по команде user применён server-side fix + ротация кредов. Reality dest intel→microsoft (x-ui.db + restart), сквозной тоннель через реальный :443 = HTTP 204; 32030 жив. Креды ротированы (root SSH / panel user+pass / panel secret-JWT — светились в плейнтексте; новые в `pass nl-vds-3xui/full-env`, старые отклоняются, БД-бэкап на сервере). Остался client-side: user меняет SNI в v2rayN (`pqmkayaxo2`→microsoft) + подтверждает → close._ +_Updated: 2026-06-05 — заведена `fix-nl-vds-reality-pq-dest`. Новый NL VDS (213.176.64.253, 3x-UI/Xray 26.6.1): диагностирован отказ Reality-инбаунда 443 — **ML-DSA-65 (PQ) × dest `www.intel.com` (Akamai шлёт HRR)**; plain VLESS 32030 работает. Узел+root-cause в вики (`nl-vds-3xui`, `reality-pq-mldsa65-dest-incompatibility`); креды в `pass nl-vds-3xui/full-env`._ _Updated: 2026-05-31 — 🟢 `vehicles-loader-progress-deploy` **closed**: live-verify прогона Sun 31.05 06:21→07:53 MSK прошёл — progress-logging показывает движение по всем фазам (▶/батчи/✓/delete-sweep), НЕ тишина; exit 0; `importRun id=4 ok`, `reportJson errors:[]`. **Попутно найден+починен email-баг:** `STOSTAYER_MAIL_TO=site@stostayer.ru` (слалось само себе) → `vitya.kuznetsov@gmail.com` в host env (бэкап `.bak.20260531`); доставка на gmail подтверждена тест-письмом (`250 queued`). Follow-up'ы (не блокеры): units-фаза 1h31m на 100k rows = узкое место; generation `unmatched:51`; репо `config/default.json` дефолт `to` всё ещё site@ (прод перекрыт env)._ _Updated: 2026-05-30 — 🟡 `vehicles-loader-progress-deploy`: деплой 0.4.0 ВЫПОЛНЕН (build здесь → push `docker.stostayer.ru` → host pull + re-tag `:latest`=0.4.0, 0.3.0 retained). Acceptance #1 ✅. Verify-окно = natural (user-выбор, не форсим baseline → клиент без внепланового email). timer next trigger Sun 2026-05-31 06:21 MSK → live-verify journalctl в след. сессию. Open Q #1 (push кода) снят: `a74ef73` уже в origin/master._ _Updated: 2026-05-30 — заведена ⚪ `vehicles-loader-progress-deploy` (handoff из stostayer.new). Progress-logging 0.4.0 зашипан в коде (stostayer.new `a74ef73`, 24/24 теста); ops-follow-up — rebuild образа той же схемой (build здесь → push `docker.stostayer.ru` → host pull+re-tag) и снять `journalctl` с боевого прогона (закрывает не-верифицированный 5-й критерий «journalctl показывает движение»). Попутно добивает остаток email-SEND из `vehicles-loader-image-distribution`._ @@ -26,10 +27,10 @@ _Updated: 2026-05-26 — заведена `bookva-tenant-cutover-prep` ⚪ (7-st _Updated: 2026-05-25 (`iis-migration-to-ruvds` 🟢 closed Phase 1 per user decision — 9/24 hostnames live на RUVDS, source IIS оставлен running. `migrate-elasticsearch-to-books-vds` 🟢 closed ранее сегодня. 16 IIS hostnames + LE renewal pipeline + decommission — descoped в Closure note, не отдельные tracker tasks.)_ -## ⚪ [fix-nl-vds-reality-pq-dest] — Reality-инбаунд 443 на NL VDS (213.176.64.253) не коннектится -**Status:** ready (awaiting user «чини») -**Where I stopped:** диагностика завершена read-only, сервер не тронут. Root cause: ML-DSA-65 (PQ) × dest `www.intel.com` (Akamai не умеет PQ key-exchange → HRR → REALITY handshake fail). Plain VLESS 32030 работает. Доказано изоляционной матрицей на replica-паре. -**Next action:** по команде user — сменить dest/SNI `www.intel.com`→`www.microsoft.com` симметрично (инбаунд 443: target+serverNames; v2rayN профиль pqmkayaxo2: SNI). См. [fix-nl-vds-reality-pq-dest.md](fix-nl-vds-reality-pq-dest.md) + `.wiki/concepts/reality-pq-mldsa65-dest-incompatibility.md`. +## 🟡 [fix-nl-vds-reality-pq-dest] — Reality-инбаунд 443 на NL VDS (213.176.64.253): server-side done, ждёт client-side +**Status:** 🟡 server-side fix + cred-rotation применены и проверены 2026-06-05; остался один client-side шаг (user меняет SNI в v2rayN) + подтверждение → закрыть. +**Where I stopped:** ✅ dest `www.intel.com`→`www.microsoft.com` на инбаунде 443 (x-ui.db + restart), сквозной тоннель через реальный :443 (SNI microsoft) = HTTP 204; 32030 жив. ✅ Креды ротированы (root SSH pass / panel user+pass / panel secret-JWT — оригиналы светились в плейнтексте), всё в `pass nl-vds-3xui/full-env`, БД-бэкап на сервере. Root cause: ML-DSA-65 (PQ) × intel/Akamai (HRR), разбор в `.wiki/concepts/reality-pq-mldsa65-dest-incompatibility.md`. +**Next action:** user в v2rayN профиль `pqmkayaxo2`: SNI → `www.microsoft.com`, reconnect. Подтвердит, что Reality поднялся → 🟢 close. См. [fix-nl-vds-reality-pq-dest.md](fix-nl-vds-reality-pq-dest.md). **Branch:** n/a (admin ops) diff --git a/.tasks/fix-nl-vds-reality-pq-dest.md b/.tasks/fix-nl-vds-reality-pq-dest.md index d1a966b..866a1e7 100644 --- a/.tasks/fix-nl-vds-reality-pq-dest.md +++ b/.tasks/fix-nl-vds-reality-pq-dest.md @@ -1,6 +1,6 @@ # fix-nl-vds-reality-pq-dest -**Status:** ready (awaiting user "чини") +**Status:** 🟡 server-side done 2026-06-05 — awaiting client-side SNI change + user confirm **Created:** 2026-06-05 ## Проблема @@ -22,6 +22,13 @@ ML-DSA-65 (post-quantum REALITY) × dest/SNI `www.intel.com` (Akamai, не по - v2rayN профиль `pqmkayaxo2` (Reality 443) подключается, трафик идёт. - Plain VLESS 32030 продолжает работать. +## Done 2026-06-05 (server-side, по команде user "и то и другое") +- ✅ Reality dest `www.intel.com:443`→`www.microsoft.com:443` + serverNames→`["www.microsoft.com"]` (правка `x-ui.db` id=1 + `x-ui restart`). Проверено сквозным тоннелем (temp-клиент → реальный `:443`, SNI microsoft, uuid 5da48418+vision+mldsa65Verify) → **HTTP 204**. 32030 жив. +- ✅ Креды ротированы (оригиналы были в плейнтексте): root SSH pass (новый работает, старый Access denied), panel username+password (CLI `x-ui setting`, bcrypt в БД), panel `secret` JWT (убил install API token/сессии). Всё в `pass nl-vds-3xui/full-env`. БД-бэкап `/root/x-ui.db.bak.20260605_083658`. + +## ⏳ Остаётся (client-side, делает user) +В v2rayN профиль `pqmkayaxo2`: **SNI** `www.intel.com` → `www.microsoft.com`, save, переподключиться → должно подняться. (Не правил guiNDB.db: v2rayN держит активное соединение.) После подтверждения — закрыть таску 🟢. + ## Where I stopped -Диагностика завершена (read-only, сервер не тронут). Жду команды user на применение fix. +Server-side fix + ротация применены и проверены. Жду от user: смену SNI в v2rayN + подтверждение, что профиль Reality поднялся. diff --git a/.wiki/entities/nl-vds-3xui.md b/.wiki/entities/nl-vds-3xui.md index 5a7c600..aa116f9 100644 --- a/.wiki/entities/nl-vds-3xui.md +++ b/.wiki/entities/nl-vds-3xui.md @@ -26,7 +26,7 @@ updated: 2026-06-05 - **SSH:** `root@213.176.64.253` (password auth включён). Host-key (ed25519): `SHA256:XR2+0PCVUoEMrFHOoIu7IPXb4xP2JnYkqFr1uqs8YrA`. - С Windows non-interactive: `plink -ssh -batch -hostkey "SHA256:XR2+0PCVUoEMrFHOoIu7IPXb4xP2JnYkqFr1uqs8YrA" -pw root@213.176.64.253 ""`. PowerShell-пайп `y` в `plink` для приёма host-key **не работает** (plink читает промпт с консоли, не stdin) — передавать `-hostkey` явно. - **Панель 3x-UI:** `https://213.176.64.253:49251/aTKt95PPgt9y2dUHi8` (port 49251, webBasePath `aTKt95PPgt9y2dUHi8`, sub-port 2096). -- **Креды:** `pass show nl-vds-3xui/full-env` (root SSH pass, panel user/pass, API token, все UUID/ключи/seed Reality-инбаунда). +- **Креды:** `pass show nl-vds-3xui/full-env` (root SSH pass, panel user/pass, panel JWT secret, все UUID/ключи/seed Reality-инбаунда). **Все логин-креды ротированы 2026-06-05** (оригиналы засветились в плейнтексте при заведении): root SSH pass, panel username+password, panel `secret` (JWT-ключ — убил install-time API token и сессии). Reality privateKey/UUID/seed НЕ ротировались (не были экспонированы, на них завязан клиентский профиль). ## Software stack @@ -46,22 +46,27 @@ updated: 2026-06-05 | Tag | Порт | Протокол | Security | Статус | |---|---|---|---|---| | `in-32030-tcp` | 32030 | VLESS / tcp | none | 🟢 работает (рабочее соединение) | -| `in-443-tcp` | 443 | VLESS / tcp | **Reality + ML-DSA-65 (PQ)**, flow `xtls-rprx-vision` | 🔴 не коннектится | +| `in-443-tcp` | 443 | VLESS / tcp | **Reality + ML-DSA-65 (PQ)**, flow `xtls-rprx-vision` | 🟢 fixed 2026-06-05 (dest→microsoft, server-side verified 204); v2rayN SNI update pending | - **32030 (plain VLESS):** uuid `a6fa7965-…` (email `sx9l9csam3`). Без TLS — поэтому работает даже когда Reality лежит. - **443 (Reality, PQ):** два клиента — `5da48418-…`/`pqmkayaxo2` (flow vision, его использует v2rayN) и `7941887a-…`/`0h5rzrsex3`. publicKey `zWTp-3dPfB78…`, shortId (клиент) `795fc9`, mldsa65Seed `E9zFSoOd…`. dest/SNI `www.intel.com`. -## ⚠️ Открытый дефект: Reality 443 не работает +## Reality 443 — дефект устранён 2026-06-05 (server-side) -Reality-инбаунд на 443 включает **пост-квантовый ML-DSA-65** с dest/SNI `www.intel.com`. Эта комбинация -несовместима: Akamai-фронтящий `www.intel.com` не поддерживает PQ-обмен ключами (`X25519MLKEM768`) и шлёт -HelloRetryRequest → borrowed-TLS рукопожатие REALITY не достраивается → `REALITY: handshake did not complete`. -Plain VLESS на 32030 не затронут (там нет TLS). Полный разбор + изоляционная матрица + -fix — [`reality-pq-mldsa65-dest-incompatibility`](../concepts/reality-pq-mldsa65-dest-incompatibility.md). +Был: Reality-инбаунд на 443 (ML-DSA-65 PQ) с dest/SNI `www.intel.com` не коннектился — Akamai-фронтящий +intel не поддерживает PQ-обмен ключами (`X25519MLKEM768`), слал HelloRetryRequest → borrowed-TLS рукопожатие +REALITY не достраивалось (`REALITY: handshake did not complete`). Полный разбор + изоляционная матрица: +[`reality-pq-mldsa65-dest-incompatibility`](../concepts/reality-pq-mldsa65-dest-incompatibility.md). -**Fix (НЕ применён, ждёт команды user):** сменить dest/`target` + `serverNames` инбаунда и SNI клиентского -профиля `www.intel.com` → `www.microsoft.com` (PQ-совместим, проверен 2026-06-05). ML-DSA-65 сохраняется. +**Применённый fix (2026-06-05):** dest/`target` инбаунда `www.intel.com:443` → `www.microsoft.com:443`, +`serverNames` → `["www.microsoft.com"]` (правка `stream_settings` в `x-ui.db` id=1 + `x-ui restart`). +ML-DSA-65 сохранён. Проверено сквозным тоннелем (temp-клиент → реальный `127.0.0.1:443`, SNI microsoft, +client uuid `5da48418` + vision + mldsa65Verify) → **HTTP 204**. + +**⏳ Остаётся (client-side, делает user в v2rayN):** в профиле `pqmkayaxo2` сменить **SNI** `www.intel.com` +→ `www.microsoft.com`, переподключиться. (Правил не я: v2rayN держит активное соединение, внешняя правка +`guiNDB.db` ненадёжна.) ## Заметки по диагностике (read-only методология)