fix(ipsec): учитывать уникальный DNS SAN в активных сессиях

This commit is contained in:
Denozordec committed 2026-10-11 02:18:09 +07:00
1 parent b4e56d1998
commit d4f5746325
12 files changed
+308 -19

No files matched your search

+16 -2
View File
@@ -1,6 +1,6 @@
# UX/UI: журнал реализации
Актуальное продолжение 2026-10-11: завершён12.5.120 — шесть Linux IKE ID вариантов. Certificate-derived/exact DER DN и FQDN SAN подключаются/Ping3/3; ручной DN и тот же DER с PrintableString отвергнуты. При явном remote-id FQDN API online=true, без него SAN-клиент ошибочно offline. Cleanup16×2/Docker/credentials passed. Backend118/frontend116 прежние. Следующий121 — безопасное сопоставление SAN/сессий, профильные проверки и live приёмка.12.5 открыт.
Актуальное продолжение 2026-10-11: завершён12.5.121 — исправлен implicit DNS SAN offline для прямо привязанного сертификата. Уникальный SAN/без explicit remote-id → online; DN+SAN две real sessions/Ping3/3×2 → один online без случайного VIP/uptime.127 state checks/8 IPsec scripts/build/ESLint, live UI1280/320 passed. Backend ux-san121/frontend ux-bound116; hash equality/cleanup16×2 passed. Следующий122 — реальный IKE/CHILD rekey и восстановление соединения.12.5 открыт.
Общий план: [UX/UI по этапам и пятичасовым окнам](ux-ui-plan.md). План задаёт объём, этот журнал фиксирует выполненные блоки и ограничения. Записи расположены от новых к старым; подробная история этапа12 также сохранена в [ux-ui-stage-12.md](ux-ui-stage-12.md).
@@ -36,7 +36,21 @@
| 10 | Маршрутизация, диагностика, карта и терминал | Завершён в границах локальной приёмки 2026-10-01; блоки 10.1–10.71, внешние ограничения в 10.71 |
| 11А | Пользователи, контейнеры, сертификаты и резервные копии | Завершён в границах локальной приёмки 2026-10-01; 11А.1–11А.33, внешние ограничения в 11А.33 |
| 11Б | Оповещения, сбор данных, интеграции, релизы и настройки | Завершён в границах локальной приёмки 2026-10-03; ограничения и evidence в11Б.7 |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–120 и ограничения ниже. Runtime backend ux-export118/frontend ux-bound116. |
| 12 | Итоговая доступность, адаптивность, производительность и регрессия | Локальная приёмка завершена в границах12.3.83; внешняя12.5 в работе, выполненные блоки1–121 и ограничения ниже. Runtime backend ux-san121/frontend ux-bound116. |
## 12.5.121 — подтверждённый онлайн по DNS SAN и нескольким IKE ID (2026-10-11)
Исправлен обнаруженный120 дефект: RouterOS принимает FQDN SAN, но API сопоставлял только DN/CN/явный remote-id. Теперь точный DNS SAN учитывается при прямой привязке сертификата к identity и отсутствующем/auto remote-id. SAN должен быть уникален среди всех native certificates; DNS wildcard/IP/email/чужие namespaces и конфликты DN/CN не угадываются. Явный иной remote-id не подменяется SAN. Общие claims проверяются по каждой native session, поэтому пересечение с PSK или другой identity остаётся sessionAmbiguous, без присвоения её адреса.
Все наблюдаемые DN/CN/explicit ID/SAN сессии одного principal объединяются: online подтверждён, но при нескольких сессиях не выбираются произвольные VIP/uptime. Добавлены13 state scenarios: unique/duplicate SAN, explicit/auto, DN+SAN с перестановкой, PSK collision, неподдерживаемые SAN, CN shadow и отсутствие привязки. Прошли127 state checks и8 профильных scripts, backend production build и scoped ESLint. Общая регрессия117 не повторялась; DTO/frontend/vendor не менялись.
Backend ux-san121/version1.0.0-test.san121 собран из контекста118 с одним source override. Локальный и серверный SHA256 source/compiled ipsec-live совпали. Frontend116 сохранён; backup pre-san121.env/предыдущий image оставлены. Backend healthy. Первый native helper остановился на regex старого диапазона VIP; finally восстановил baseline, затем regex исправлен. Повторение: один certificate-derived DN и один FQDN SAN одного cert одновременно established, Ping3/3 каждый. Catalog online1, activeAddress/activeSince отсутствуют. Два live UI1280/320 без mocks/write/pageerrors, mobile screenshot просмотрен.
Все свои Docker clients/network/credentials/native configs удалены после ownership preflight; baseline16 коллекций×2 совпал, default/public/metadata/195.195.195.195/32 сохранены. Оба CHR доступны, пароли прежние. [Native/build/проверки](ux-ui/acceptance/ipsec-san-matching-2026-10-11.json), [live UI](ux-ui/acceptance/browser-ipsec-san-2026-10-11.json). Следующий122 — IKE/CHILD rekey/reconnect; клиентские ОС/длительные нагрузки/физические WAN/integrations остаются открыты.
| Референс | Схема |
| --- | --- |
| [ReUI Filtering2](https://reui.io/preview/base/data-grid-filtering-2?ref=mcp) | Native DN+SAN → один клиент online → несколько сессий без случайного VIP |
## 12.5.120 — кодирование DN и FQDN SAN в реальном IKE (2026-10-11)