Commit Graph
6 Commits
Author SHA1 Message Date
itsnotkubrickandClaude Opus 5.5 fdae4588ea 1.1: исправления по аудиту безопасности
- hysteria2.sh: строгая проверка --email/--host/--sni, install.env через printf %q,
  SHA256 бинарника в самом скрипте, hy2 update из тега релиза
- 3x-ui.sh: SHA256 установщика 3X-UI, проверка --sni/--host, kit и kit-sub из тега,
  kit-sub без root (DynamicUser + LoadCredential), без cron для меню x-ui
- VERSION, CHANGELOG, SECURITY.md, CI (ShellCheck, Python, тесты генераторов),
  установка с проверкой в README

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7GrBSRPVXhrz3RAprWDnt
2026-09-30 18:11:43 +00:00
itsnotkubrick de2a3e10c9 Репозиторий переименован в 3X-UI_KIT — новые ссылки 2026-09-27 19:45:34 +03:00
itsnotkubrick c39fe19b08 Всё TCP через порт 443: nginx разводит по SNI и путям
- nginx stream на 443: по SNI — REALITY, XHTTP REALITY (свой сайт маскировки), MTProto
  (свой FakeTLS-домен); остальное — HTTPS-сервер nginx
- HTTPS-сервер: VLESS WS, VMess WS, Trojan gRPC, подписка (kit-sub) и панель по секретным
  путям, сайт-заглушка на всё прочее
- Подключения слушают только localhost, ссылки ведут на 443 через External Proxy 3X-UI;
  настоящие IP клиентов доходят через proxy protocol (лимит устройств работает)
- Снаружи открыты только 443/tcp, 80, SSH, Shadowsocks и UDP-порты
- Режим для новых установок с доверенным сертификатом; --multi-port — прежняя схема;
  старые многопортовые установки не переделываются автоматически

Проверено: Mihomo по подписке 10/10 у двух пользователей, официальный AmneziaWG,
матрица Xray/Mihomo/sing-box, панель и заглушка, пробы REALITY и MTProto без ключа.
2026-09-27 19:16:09 +03:00
itsnotkubrick e13ae7f42f Пользователи: kit — один пользователь сразу на всех протоколах
- scripts/kit.sh (команда kit на сервере): user add/list/link/limit/off/on/del;
  общие трафик, лимит, срок и число устройств на все протоколы
- Установщик создаёт подключения без клиентов и первого пользователя сразу во все,
  имя подписки случайное (чужую подписку не угадать по имени)
- AmneziaWG: у записи 3X-UI одна пара ключей WireGuard, поэтому ко второму AmneziaWG
  подключается запись-«двойник» с подпиской «-awg»; kit работает с обеими как с одной
- kit-sub фильтрует по содержимому: Clash-приложениям без AmneziaWG он вырезается,
  приложениям со ссылками не отдаются vpn:// и tg://

Проверено: три пользователя — Mihomo по подписке 10/10 у каждого, официальный клиент
AmneziaWG — оба варианта у каждого; выключение, лимиты и удаление действуют на все записи.
2026-09-27 19:00:32 +03:00
itsnotkubrick 8ff22e1239 kit-sub: AmneziaWG только приложениям на Mihomo
Karing запрашивает формат Clash, но работает на sing-box и AmneziaWG не умеет —
на телефоне AmneziaWG вернулся с ошибкой. Теперь Karing, Hiddify, NekoBox, Happ, Stash
и похожие получают Clash-конфиг без AmneziaWG. В журнал kit-sub пишется User-Agent
и выбранный вариант (без IP) — чтобы видеть, чем представляются приложения.
2026-09-27 18:17:11 +03:00
itsnotkubrick 0ce96f08e1 Подписка с учётом приложения: kit-sub перед подпиской 3X-UI
- scripts/kit-sub.py — посредник на публичном порту подписки (HTTPS), 3X-UI только на 127.0.0.1
- Clash/Mihomo (Clash Verge, FlClash…) получают конфиг 3X-UI плюс AmneziaWG
- Happ, v2rayN, Karing, Hiddify — ссылки без AmneziaWG, которого они не умеют
- expire=0 убирается из Subscription-Userinfo — больше нет «01.01.1970»
- Сертификат перечитывается после продления Let's Encrypt, TLS в потоках, тайм-ауты
- Установщик ставит kit-sub сам (systemd, ограничения безопасности); адрес подписки не меняется

Проверено: Mihomo по итоговому Clash-конфигу — все 10 прокси, включая оба AmneziaWG;
обновление поверх существующей установки на сервере в России.
2026-09-27 18:13:46 +03:00