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
This commit is contained in:
@@ -13,7 +13,7 @@ jobs:
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: ShellCheck
|
||||
run: shellcheck -S warning -e SC1090,SC2034,SC2211 scripts/*.sh
|
||||
run: shellcheck -S warning -e SC1090,SC2034,SC2211 scripts/*.sh tools/release.sh
|
||||
- name: Python
|
||||
run: python3 -m py_compile scripts/kit-sub.py
|
||||
- name: Генераторы
|
||||
@@ -24,3 +24,14 @@ jobs:
|
||||
grep -q "^KIT_VERSION=\"$v\"" scripts/3x-ui.sh
|
||||
grep -q "^KIT_VERSION=\"$v\"" scripts/hysteria2.sh
|
||||
grep -q "^KIT_VERSION=\"$v\"" scripts/kit.sh
|
||||
- name: Ключ подписи одинаковый в kit и hy2
|
||||
run: |
|
||||
signers() { awk '/^KIT_SIGNERS=\(/ {on = 1; next} on && /^\)/ {exit} on' "$1"; }
|
||||
diff <(signers scripts/kit.sh) <(signers scripts/hysteria2.sh)
|
||||
- name: Подпись релиза совпадает с файлами
|
||||
run: |
|
||||
[ -f SHA256SUMS ] || { echo "SHA256SUMS нет – релиз ещё не подписан"; exit 0; }
|
||||
grep -qx "# 3X-UI KIT $(cat VERSION)" SHA256SUMS
|
||||
grep -v '^#' SHA256SUMS | sha256sum -c -
|
||||
awk '/^KIT_SIGNERS=\(/ {on = 1; next} on && /^\)/ {exit} on && /^ *"/ {gsub(/^ *"|"$/, ""); print "releases@3x-ui-kit namespaces=\"3x-ui-kit-release\" " $0}' scripts/kit.sh >allowed_signers
|
||||
ssh-keygen -Y verify -f allowed_signers -I releases@3x-ui-kit -n 3x-ui-kit-release -s SHA256SUMS.sig <SHA256SUMS
|
||||
|
||||
Reference in New Issue
Block a user