CHANGELOG 1.1: короче, серьёзный заголовок
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
66fcdeee91
commit
06432e234c
+14
-72
@@ -1,84 +1,26 @@
|
|||||||
# Что нового
|
# Что нового
|
||||||
|
|
||||||
## v1.1: kit сходил к аудитору, сдал анализы и теперь не доверяет никому, даже GitHub
|
## v1.1: безопасность, автообновление и переезд на новый сервер
|
||||||
|
|
||||||
Подписчик прислал нам полноценный аудит безопасности. Мы почитали, покраснели и всё починили.
|
**Новое**
|
||||||
Спасибо: такие письма лучше любых звёзд на GitHub (но звёзды тоже ставьте).
|
|
||||||
|
|
||||||
**Безопасность**
|
* Обновления приходят сами. Раз в сутки ночью сервер проверяет подпись автора и обновляет `kit`, а пользователи и ссылки остаются прежними. «Мам, удали старый VPN, вот новый» больше не нужно. Подпись не сошлась или подписка замолчала – откат. Не любите сюрпризы: `kit update --manual`.
|
||||||
|
* Переезд за 5 минут. `kit backup` складывает сервер в один файл, `--restore` поднимает его на новом VPS. Хостер поднял цены или IP попал в немилость? Клиенты на домене даже не заметят.
|
||||||
|
* Маскировка на выбор. Установщик спрашивает: стандартный чужой сайт (работает сразу) или свой домен (надёжнее: настоящая страница и сертификат Let's Encrypt). Без вопросов: `--domain vpn.example.com`. Теперь «под кого косим» решаете вы, а не скрипт за вас.
|
||||||
|
* Заглушка с характером. На случайный заход сервер показывает кофейню, фотографа или блог про Linux. Тысячи серверов 3X-UI KIT больше не выглядят как близнецы.
|
||||||
|
|
||||||
- **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).
|
|
||||||
|
|
||||||
**Для тех, кто хочет проверить сам**
|
* Установщик 3X-UI сверяется по SHA256. Если его кто-то подменит, скрипт посмотрит на него как на незнакомца в чате с «выгодным предложением» и запускать не станет. Файлы теперь берём из тега версии, а не из `main`.
|
||||||
|
* Hysteria больше не проверяется по справке, которую сама же принесла. Контрольная сумма записана в скрипте. Проверять человека по его же рекомендательному письму – так себе идея.
|
||||||
|
* Hysteria2 перестала исполнять почту. Особо изобретательный адрес раньше мог выполниться как команда. Теперь `me@gmail.com;rm -rf` получит вежливый отказ.
|
||||||
|
* Подписка больше не root. Даже если `kit-sub` взломают, ключей от сервера у него нет. Пусть попробует открыть хоть одну дверь.
|
||||||
|
|
||||||
- В README появилась установка с проверкой: скачать, прочитать, сверить SHA256, запустить.
|
**Как обновиться с 1.0** (один раз, дальше само)
|
||||||
- `SECURITY.md`: как сообщить об уязвимости, не публикуя её на весь интернет.
|
|
||||||
- Проверка кода на каждый коммит: ShellCheck, Python, тесты генераторов.
|
|
||||||
|
|
||||||
**Обновления приходят сами, но только с нашей печатью**
|
`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`. Новые установки получают всё сразу.
|
||||||
«Мам, удали старый 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 больше
|
|
||||||
не выглядят как близнецы. Всё лежит внутри скрипта, ничего не качаем со сторонних сайтов.
|
|
||||||
|
|
||||||
**Маскировка: чужой сайт или свой домен**
|
|
||||||
|
|
||||||
- Установщик теперь спрашивает, под какой сайт прятать сервер. Стандартный вариант работает
|
|
||||||
сразу, ничего готовить не нужно. Свой домен надёжнее: сервер притворяется вашим собственным
|
|
||||||
сайтом с настоящим сертификатом Let's Encrypt, и IP с именем совпадают.
|
|
||||||
- Для своего домена нужна A-запись на IP сервера и свободный порт 80, остальное установщик
|
|
||||||
делает сам, включая продление сертификата. Без вопросов: `--domain vpn.example.com`.
|
|
||||||
- `kit backup` запоминает домен, а при переезде `--restore` просит сначала направить домен
|
|
||||||
на новый сервер, потому что сертификат выпускается заново.
|
|
||||||
|
|
||||||
**Как обновиться**
|
|
||||||
|
|
||||||
- Сервер 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
|
## v1.0
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user