96 lines
10 KiB
Markdown
96 lines
10 KiB
Markdown
# Что нового в сборке форка
|
||
|
||
Здесь записи о наших версиях. Файл автора (`CHANGELOG.md`) мы не трогаем — так обновления
|
||
автора не конфликтуют с нашими записями.
|
||
|
||
## v1.2.6: вопросы при установке
|
||
|
||
* Набор по умолчанию — **REALITY + AmneziaWG-3.1** (самый совместимый минимум); ответ «все»
|
||
ставит полный набор автора. Умолчание задаётся в одном месте (`DEFAULT_PROTOS`).
|
||
* **Сайт-заглушка переделан на ИТ-тематику:** десять правдоподобных сайтов (дата-аналитика, DevOps,
|
||
мониторинг, разработка, аудит, ИТ-поддержка, колокейшн, заметки про Linux, бэкапы, документация)
|
||
вместо авторских «кофеен и пекарен». Ставится случайный, конкретный — `kit local site 7`,
|
||
список — `kit local site --list`. Команда обновляет и файл для nginx, и копию страницы внутри
|
||
подключения Hysteria2 (`kit net masq on`): если менять файл вручную, 443/tcp и UDP-порт начнут
|
||
отвечать разными страницами — это заметно снаружи.
|
||
* Обёртка спрашивает, **какие протоколы ставить** (нумерованный список, `1,3,11` или «все»,
|
||
Enter — набор автора): невыбранные протоколы не создаются вообще — ни подключения в панели,
|
||
ни записей в nginx, ни ссылок в подписке. Список и умолчание взяты из самого установщика
|
||
(`ALL_PROTOS`/`DEFAULT_PROTOS`), передаётся его же флагом `--protocols`, так что поведение
|
||
не расходится с авторским. Свой `--protocols` можно задать флагом — тогда вопроса не будет.
|
||
* Обёртка `scripts/3x-ui-local.sh` теперь спрашивает, а не решает за вас: закрывать ли ответ на ping,
|
||
включать ли автообновления безопасности, **менять ли порт SSH** (Enter — оставить текущий,
|
||
число — перевести на него; мусор и занятый порт переспрашивает), менять ли пароль root.
|
||
Маскировку и домен, как и раньше, спрашивает установщик автора.
|
||
* Смена порта SSH никогда не закрывает прежний порт сама: сначала добавляется новый, затем скрипт
|
||
печатает две команды — проверить вход во втором окне и закрыть прежние (`kit local ssh --close-old`).
|
||
* Запуск без флагов = «одна команда, дальше вопросы». Флаг `--yes` — наоборот, ничего не спрашивать
|
||
(для автоматизации): ping закрывается, автообновления включаются, порт SSH и пароль не трогаются.
|
||
* Флаг `--harden` теперь действительно существует (раньше он уходил установщику автора неизвестным
|
||
параметром и ронял установку): закрыть ping и включить автообновления без вопросов.
|
||
* `--dry-run` показывает, что именно будет спрошено или сделано по умолчанию.
|
||
|
||
## v1.2.5: суммы релиза в формате, который понимает kit
|
||
|
||
* Исправлена ошибка нашего релизного конвейера: на Windows `sha256sum` пишет суммы как
|
||
`hash *файл`, а `kit` на сервере сверяет имя строго (`$2 == "файл"`) — то есть `kit update`
|
||
отклонил бы релизы v1.2.1–v1.2.4 как «в подписанном списке нет такого файла». Теперь
|
||
`tools/release.sh` приводит список к POSIX-виду (`hash файл`) **до** подписи.
|
||
* `scripts/3x-ui-local.sh` принимает оба формата, чтобы не спотыкаться о суммы, собранные на
|
||
другой машине.
|
||
* Проверка теперь повторяет логику самого `kit`: подпись `SHA256SUMS` + строгая сверка имени
|
||
каждого файла из подписанного списка (а не только `sha256sum -c`, который звёздочку прощает).
|
||
|
||
## v1.2.4: проверка релиза отдельной командой
|
||
|
||
* Флаг `--verify-only`: скачать релиз, проверить подпись `SHA256SUMS` и SHA256 установщика и выйти —
|
||
можно проверить канал на сервере, ничего не устанавливая.
|
||
* Порядок шагов изменён: проверка подписи теперь идёт до предполётных проверок и до любых
|
||
изменений на сервере, чтобы чужой код не запускался раньше проверки.
|
||
|
||
## v1.2.3: установка одной командой (`scripts/3x-ui-local.sh`)
|
||
|
||
* Один скрипт на чистом VPS: проверка сервера → скачивание нашего релиза → проверка подписи
|
||
`SHA256SUMS` и SHA256 самого установщика → установщик автора (панель 3X-UI, протоколы,
|
||
сайт-заглушка, маскировка, сертификат, подписка, ufw) → наши дополнения → проверка.
|
||
* По умолчанию досыпает: закрыть ответ на ping (правилом ufw), включить обновления безопасности,
|
||
`kit fix` (время и безопасные починки), в конце `kit check` и сводку `kit local hardening`.
|
||
Отключается флагами `--no-harden`, `--no-time`, `--no-check`.
|
||
* Второй порт SSH — только по явному флагу `--ssh-port N`: прежний порт продолжает работать,
|
||
закрытие — отдельным шагом `kit local ssh --close-old N`. Автоматически доступ не запираем.
|
||
* Все флаги установщика автора (`--domain`, `--sni`, `--panel-on`, `--host`, `--restore` …)
|
||
передаются как есть; есть `--dry-run` (план без изменений) и `--help`.
|
||
* Публичный ключ форка вшит в обёртку — подпись проверяется до запуска чужого кода; при смене
|
||
ключа обновляется и здесь, и в `kit`.
|
||
|
||
## v1.2.2: команды защиты сервера (поведение из StressOzz/vps-setup)
|
||
|
||
* Новые команды `kit local`: `ssh <порт>` (добавить порт SSH), `ssh --close-old` (закрыть прежние
|
||
порты), `ping off|on` (не отвечать на ICMP echo), `passwd [--generate]` (сменить пароль),
|
||
`upgrades on|off|status` (автообновления безопасности), `hardening` (сводка по защите сервера).
|
||
* Сделано безопаснее, чем в источнике: конфиг sshd проверяется через `sshd -t` **до** перезапуска,
|
||
новый порт сначала открывается в ufw, прежний порт продолжает работать до отдельного шага
|
||
`--close-old`, у правок есть `--dry-run`, а копии изменённых файлов остаются в
|
||
`/root/kit-local-backup-<дата>/` (не в `/tmp`).
|
||
* `apt full-upgrade` из источника не выполняется: вместо него включаются обновления безопасности
|
||
(только security, без самовольной перезагрузки) — это не затрагивает закреплённые версии панели
|
||
и ядра, которые ставятся не из apt.
|
||
* Учтён Ubuntu 24.04: если SSH слушает systemd (`ssh.socket`), порт добавляется socket-drop-in'ом,
|
||
а закрытие старых портов не делается автоматически — там ошибка запирает доступ к серверу.
|
||
* Ping отключается правилом ufw (`before.rules`), а не общесистемным `icmp_echo_ignore_all`:
|
||
видно в `ufw status`, отменяется одной командой и не глушит ICMP для внутренних интерфейсов.
|
||
|
||
## v1.2.1: сборка форка поверх 3X-UI KIT 1.2
|
||
|
||
* Источник файлов и обновлений — свой репозиторий Gitea: установка и `kit update` берут релиз
|
||
оттуда, а подпись релиза проверяется ключом форка. Авторский ночной апдейт приходит в наш
|
||
канал, поэтому наши доработки не стираются ночью.
|
||
* Дополнения форка живут отдельным файлом `/usr/local/lib/kit/kit-local.sh` и подключаются одной
|
||
строкой: `kit local help | version | channel | seams | masking`.
|
||
* Наш файл едет в том же подписанном релизе, что и код автора: он входит в `SHA256SUMS`,
|
||
проверяется по подписи и обновляется вместе с `kit`.
|
||
* Швы в коде автора описаны в `tools/fork_apply.py` (источник правды), синхронизация с автором и
|
||
проверки — `tools/fork-sync.sh`.
|
||
|
||
Основа — 3X-UI KIT 1.2 (панель 3X-UI v3.9.0, ядро Xray v26.6.27). Что нового у автора — в `CHANGELOG.md`.
|