Files
3X-UI_autoVPS/CHANGELOG.md
T
Claude 0a19858efa 1.1: подписанное автообновление, kit backup и --restore, случайная заглушка
- kit update ставит только релизы, у которых SHA256SUMS подписан ключом автора
  (ssh-keygen -Y verify), версия внутри подписи совпадает, файлы сошлись с хешами;
  откат на старую версию запрещён; после обновления проверяется подписка, иначе возврат
- автообновление: systemd-таймер раз в сутки ночью со случайной задержкой,
  kit update --manual / --auto, журнал /var/log/kit-update.log
- hy2 update тоже проверяет подпись
- tools/release.sh: проверка версий и хеша установщика 3X-UI, SHA256SUMS и подпись
- kit backup и 3x-ui.sh --restore: архив 600, строгая проверка архива, конфиги nginx
  и kit-sub собираются заново, смена IP в подключениях
- сайт-заглушка: случайный из шести шаблонов внутри скрипта
- zashboard закреплён на v3.29.1, короткие тире и 192.168.x.x в текстах и картинках
- CI: ключ подписи одинаковый в kit и hy2, проверка подписи релиза
- CHANGELOG, README, инструкция, SECURITY.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7GrBSRPVXhrz3RAprWDnt
2026-09-30 19:15:19 +00:00

7.1 KiB

Что нового

v1.1: kit сходил к аудитору, сдал анализы и теперь не доверяет никому, даже GitHub

Подписчик прислал нам полноценный аудит безопасности. Мы почитали, покраснели и всё починили. Спасибо: такие письма лучше любых звёзд на GitHub (но звёзды тоже ставьте).

Безопасность

  • Hysteria2 больше не верит на слово. Почта, адрес сервера и сайт маскировки теперь проверяются строго, а в файл настроек пишутся с экранированием. Раньше особо изобретательная почта могла выполниться как команда. Теперь me@gmail.com;rm -rf получит вежливый отказ.
  • Установщик 3X-UI сверяем по отпечатку. Мы закрепили не только версию, но и SHA256 файла. Если на GitHub кто-то подменит установщик, скрипт посмотрит на него как на незнакомца в чате с «выгодным предложением» и запускать не станет.
  • Hysteria проверяется нашим ключом, а не чужим. Контрольная сумма бинарника теперь записана в сам скрипт, а не скачивается из того же места, что и бинарник. Проверять человека по справке, которую он же и принёс, так себе идея.
  • Всё качаем из релиза, а не из черновиков. kit, kit-sub и hy2 update берут файлы из тега версии, а не из ветки main, которая может поменяться посреди установки.
  • Подписка больше не root. kit-sub работает от временного пользователя без прав: конфиг и сертификат ему выдаёт systemd на время работы. Даже если его взломают, ключей от сервера у него нет.
  • Меню x-ui оставили в покое. Больше не переписываем чужие файлы по расписанию, только один раз при установке.
  • Строгие имена. Параметры --sni и --host у установщика 3X-UI тоже проверяются.
  • Веб-панель Mihomo на роутере закреплена. Генератор больше не ставит на роутер «последнюю» версию zashboard, а только ту, которую мы видели в лицо (v3.29.1).

Для тех, кто хочет проверить сам

  • В README появилась установка с проверкой: скачать, прочитать, сверить SHA256, запустить.
  • SECURITY.md: как сообщить об уязвимости, не публикуя её на весь интернет.
  • Проверка кода на каждый коммит: ShellCheck, Python, тесты генераторов.

Обновления приходят сами, но только с нашей печатью

  • Раньше, чтобы получить исправление, приходилось сносить всё и раздавать ссылки заново. «Мам, удали старый VPN, вот новый» больше не повторится.
  • Раз в сутки ночью сервер сам проверяет, не вышла ли новая версия, и обновляет kit и подписку. Пользователи, ссылки и подписки остаются прежними. Панель 3X-UI и Xray не трогаем.
  • Каждый релиз подписан ключом автора, а открытая часть ключа уже лежит на вашем сервере. Подпись не сошлась? Сервер вежливо отказывается. Даже если взломают GitHub, чужое обновление не встанет: для этого нужен ещё и ключ, а он не в облаке, а у автора.
  • Откатить сервер на старую версию под видом новой тоже не выйдет: номер версии внутри подписи.
  • После обновления сервер проверяет, что подписка отвечает. Не отвечает – возвращает прежнюю и пишет об этом в журнал /var/log/kit-update.log.
  • Не любите сюрпризы? kit update --manual, и обновляться будете сами, командой kit update.

Переезд без боли: kit backup

  • kit backup складывает в один файл всё, что нужно серверу: подключения, ключи, пользователей, настройки подписки. --restore поднимает из него тот же сервер на новом VPS.
  • Хостер поднял цены или IP попал в немилость? Переезжаете за 5 минут, а на домене клиенты вообще ничего не заметят.
  • Копия восстанавливается только из вашего файла и сначала проходит досмотр: лишние файлы и хитрые пути внутри архива, и восстановление не начнётся.

Заглушка с характером

  • На случайный заход сервер теперь показывает один из шести сайтов: кофейню, фотографа, блог про Linux и других. Выбирается при установке, так что тысячи серверов 3X-UI KIT больше не выглядят как близнецы. Всё лежит внутри скрипта, ничего не качаем со сторонних сайтов.

Как обновиться

  • Сервер 3X-UI KIT из версии 1.0 (там ещё нет kit update), один раз: curl -fsSL https://raw.githubusercontent.com/itsnotkubrick/3X-UI_KIT/v1.1/scripts/kit.sh -o /usr/local/bin/kit && chmod 755 /usr/local/bin/kit && kit update
  • Дальше обновления будут приходить сами.
  • Hysteria2: hy2 update (тоже проверяет подпись).
  • Новые установки получают всё сразу.

v1.0

Первая версия: 11 протоколов одной командой, всё через 443, одна подписка на все приложения, пользователи через kit user, генераторы конфигов для XKeen.