lightweight-server/docs/readme/README.ru.md
ochenstarik-ui 9f06756cef
Some checks failed
Bash syntax / syntax (push) Failing after 11s
Bash syntax / syntax (pull_request) Failing after 2s
fix: close installer exposure and pin verified payloads
2026-10-23 12:33:19 +07:00

37 KiB
Raw Permalink Blame History

Быстрая настройка Ubuntu Server

English | Русский | Español | Deutsch | Français | Português | 中文 | 日本語 | العربية | हिन्दी

Для мониторинга и объединённого управления несколькими серверами используйте дополнительный проект Server Monitor Manager. Проект находится на ранней стадии разработки.

Набор независимых Bash-скриптов для первоначальной настройки Ubuntu Server. Можно запустить только нужные модули или выполнить их по порядку для полной настройки.

Быстрая установка

Получите полный SHA одобренного коммита и SHA-256 архива из доверенного канала релиза или ревью. Контрольная сумма зависит от источника: архивы Forgejo и GitHub могут различаться. Не используйте имя ветки и не вычисляйте «ожидаемую» сумму из самого скачанного архива. Пока проверенный релиз не опубликовал эти значения, оператор должен указать их сам.

Блок проверяет архив до запуска мастера. По умолчанию выбран Forgejo; GitHub можно выбрать отдельно:

set -e
cd "$HOME"
sudo apt-get update
sudo apt-get install -y curl ca-certificates tar
read -rp 'Reviewed full commit SHA (40 hex): ' revision
read -rp 'Trusted archive SHA-256 (64 hex): ' expected
[[ "$revision" =~ ^[0-9a-f]{40}$ && "$expected" =~ ^[0-9a-f]{64}$ ]]
read -rp 'Source: forgejo or github [forgejo]: ' source
case "${source:-forgejo}" in
  forgejo) url="https://git.ochenstarik.ru/ochenstarik/lightweight-server/archive/${revision}.tar.gz" ;;
  github) url="https://codeload.github.com/ochenstarik-ui/lightweight-server/tar.gz/${revision}" ;;
  *) exit 1 ;;
esac
archive="$(mktemp)"
trap 'rm -f "$archive"' EXIT
curl -fLsS --proto '=https' --proto-redir '=https' --tlsv1.2 \
  --retry 3 --connect-timeout 30 --max-time 300 "$url" -o "$archive"
printf '%s  %s\n' "$expected" "$archive" | sha256sum -c -
# Refuse to mix a reviewed archive with files from an earlier installation.
[[ ! -e lightweight-server ]]
mkdir -m 700 lightweight-server
tar -xzf "$archive" -C lightweight-server --strip-components=1
cd lightweight-server
chmod 700 ./*.sh
sudo ./ochenstarik-server-install.sh

Первым запросом мастер предлагает выбрать язык диалога и только затем открывает главное меню со всеми этапами 1–8. Выберите нужный этап, установите его, и после завершения мастер вернётся обратно в главное меню. В первом этапе пустой ввод устанавливает все рекомендуемые наборы программ. Во время изменения SSH-порта не закрывайте текущую сессию — сначала проверьте новый вход во втором терминале.

Мастер намеренно требует, чтобы все скрипты этапов уже лежали рядом локально. Используйте полный архив или git clone; одиночный файл мастера больше не подкачивает недостающие этапы из изменяемой ветки main.

Что входит в проект

Файл Назначение Можно запускать отдельно
ochenstarik-server-install.sh Сначала выбирает язык диалога, затем последовательно предлагает установить, пропустить или завершить каждый этап Да; рекомендуемый способ полной настройки
ochenstarik-server-1.sh Предлагает выбрать часовой пояс, язык терминала и наборы программ, создаёт swap-файл 2 ГБ Да
ochenstarik-server-2.sh Предлагает будущий SSH-порт и IPv4/IPv6, обновляет систему, ставит обязательные пакеты и настраивает UFW Да
ochenstarik-server-user-3.sh Создаёт администратора, переносит SSH на порт из этапа 2, проверяет права и включает fail2ban После установки необходимых пакетов; проще всего сначала запустить скрипт 2
ochenstarik-server-tg-4.sh Отправляет уведомления в Telegram при успешном входе по SSH После установки OpenSSH и curl; обычно после скрипта 2 или 3
ochenstarik-server-vpn-5.sh Устанавливает Xray и направляет системный трафик через VLESS + REALITY Да; зависимости устанавливаются автоматически
ochenstarik-server-panel-warp-6.sh Устанавливает 3x-ui и Cloudflare WARP, настраивает и проверяет их порты Ubuntu 22.04/24.04/26.04 или Debian 12/13
ochenstarik-server-backup-7.sh Создаёт неизменяемый первичный снимок и настраивает выбранные расписания резервного копирования Да; зависимости устанавливаются автоматически
ochenstarik-server-ai-agents-8.sh Устанавливает выбранных AI-агентов: Hermes, OpenClaw, OpenHands, OpenCode, Aider, AutoGPT или Pi Coding Agent Да; API-ключи настраиваются отдельно
ochenstarik-server-uninstall.sh Удаляет настройки, службы и данные проекта для повторной установки с начала Да; запускать только из сохранённой SSH-сессии

Файлы *.env.example являются только примерами. Не записывайте настоящие пароли, токены и приватные SSH-ключи в Git.

Требования

  • Ubuntu Server или совместимая Debian-система с systemd;
  • доступ root или пользователь с sudo;
  • подключение к интернету;
  • рекомендуется сохранить текущую SSH-сессию открытой до проверки нового входа.

Получение проекта

Используйте проверенную загрузку полного архива из раздела «Быстрая установка». Все модули и ochenstarik-server-supply-chain.sh должны оставаться рядом. Для обновления нужен новый проверенный полный SHA и соответствующая источнику сумма; распаковывайте в новый каталог. Не обновляйте установщики на рабочих серверах через изменяемую ветку.

Перед запуском любого выбранного файла можно проверить его синтаксис:

bash -n ./ИМЯ-СКРИПТА.sh

1. Часовой пояс, язык, программы и swap

Файл: ochenstarik-server-1.sh.

При запуске единого мастера самый первый запрос, ещё до выбора этапа 1, задаёт язык диалога: English, Русский, Español, Deutsch, Français, Português, 中文, 日本語, العربية или हिन्दी. Начальное меню выводится на английском, а пустой ввод оставляет English. Выбор передаётся первому этапу автоматически и не меняет системную локаль сервера.

Первый этап начинается с нумерованного меню популярных часовых поясов, включая Asia/Novosibirsk, Europe/Moscow и UTC. Нужную зону достаточно выбрать по номеру. Для остальных зон предусмотрен полный список с последовательным выбором региона и часового пояса — вводить имя вручную не требуется.

После выбора времени скрипт показывает меню языков терминала: оставить текущий, русский, английский, немецкий, французский, испанский, итальянский, португальский, польский, украинский, турецкий, китайский, японский, корейский либо выбрать другую локаль из полного системного списка. Выбранный язык применяется к новым терминальным сессиям. Исходный /etc/default/locale сохраняется для последующего восстановления.

Затем можно отметить несколько наборов программ номерами через пробел, например 1 2 4 9. Пустой ввод устанавливает все наборы, а 0 пропускает дополнительные программы:

  1. Терминал и повседневная работа — Git, wget/curl, jq/yq, ripgrep, fd, fzf, lnav, редакторы, MC, tmux/screen, htop/btop, ncdu, rsync и strace.
  2. Диагностика сети — DNS, ping, MTR, traceroute, tcpdump, nmap, netcat, HTTPie, whois, ethtool и socat.
  3. Мониторинг системы и дисков — iotop, sysstat, SMART, lm-sensors, atop, nethogs, vnStat и psmisc.
  4. Безопасность и обслуживание — auditd, AppArmor tools, Lynis, needrestart, unattended-upgrades, debsums, ACL и extended attributes.
  5. Разработка и автоматизация — компилятор, ShellCheck, Python pip/venv и pipx.
  6. Архивы и данные — 7-Zip, ZIP/RAR, SQLite, csvkit, клиенты PostgreSQL и Redis.
  7. Документы, PDF и OCR — Poppler, qpdf, Ghostscript, OCRmyPDF/Tesseract, LibreOffice, Pandoc, antiword и catdoc.
  8. Изображения, аудио и видео — ImageMagick, ExifTool, WebP, FFmpeg и MediaInfo.
  9. Резервное копирование — restic, BorgBackup и rclone.

Скрипт проверяет доступность каждого пакета в подключённых репозиториях. Недоступные для конкретной версии или набора репозиториев пакеты пропускаются с предупреждением. Список программ, которых не было до запуска, сохраняется в /etc/ochenstarik-server/step1-installed-packages.list для безопасной очистки.

Затем скрипт создаёт /swapfile размером 2 ГБ, добавляет его в /etc/fstab и устанавливает vm.swappiness=20. Повторный запуск предусмотрен.

chmod 700 ochenstarik-server-1.sh
bash -n ochenstarik-server-1.sh
sudo ./ochenstarik-server-1.sh

Проверка:

swapon --show
sysctl vm.swappiness

2. Базовые пакеты, SSH-порт и брандмауэр

Файл: ochenstarik-server-2.sh.

При каждом запуске скрипт предлагает три действия: полную установку или обновление, изменение режима IP без переустановки пакетов либо добавление открытых портов. При полной установке он запрашивает SSH-порт для этапа 3, обновляет систему и устанавливает только обязательные компоненты: OpenSSH, UFW, fail2ban, sudo, TLS-сертификаты и сетевые инструменты. Дополнительные программы выбираются на этапе 1.

Для входящих подключений можно выбрать:

  • только IPv4 — публичные входящие IPv6-порты закрываются через UFW, но IPv6-стек ядра не отключается; этот режим рекомендуется, если 3x-ui используется только по IPv4;
  • только IPv6 — управляемые скриптом порты открываются лишь для IPv6;
  • IPv4 + IPv6 — порты открываются для обоих семейств.

Выбор сохраняется в /etc/ochenstarik-server/ip-family.conf, а список управляемых портов — в /etc/ochenstarik-server/ufw-managed-ports.conf. При переходе на режим с одним семейством старые правила этих портов пересоздаются. Скрипт не разрешит отключить семейство адресов, через которое работает текущая SSH-сессия. Для режима IPv4 UFW остаётся с поддержкой IPv6, чтобы политика deny incoming продолжала закрывать публичный IPv6. Для режима IPv6 также проверяются глобальный IPv6-адрес и маршрут по умолчанию.

В режиме «только IPv6» системный IPv4 остаётся доступен для исходящих соединений и работы менеджера пакетов, но входящие управляемые порты по IPv4 закрываются UFW. Полное переносимое отключение IPv4 в Linux без привязки к конкретной сетевой конфигурации не выполняется.

По умолчанию открываются только необходимые SSH-порты на время переноса и 443/tcp. Порты 80, 2096, 40000 и 63636 автоматически не публикуются. Дополнительные порты требуют явного выбора с учётом назначения сервиса. При повторном запуске старые управляемые порты приложений выводятся отдельно: оператор явно выбирает, сохранить их или убрать.

chmod 700 ochenstarik-server-2.sh
bash -n ochenstarik-server-2.sh
sudo ./ochenstarik-server-2.sh

Проверка:

sudo ufw status verbose
cat /etc/ochenstarik-server/ip-family.conf
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
timedatectl

3. Администратор и защита SSH

Файл: ochenstarik-server-user-3.sh.

При каждом запуске скрипт предлагает два режима:

  1. новая установка или повторная настройка администратора и SSH;
  2. только добавление открытых портов в UFW без изменения пользователя и SSH.

В режиме новой установки скрипт интерактивно запрашивает имя администратора, SSH-ключ и пароль. SSH-порт автоматически читается из защищённого файла, созданного этапом 2. Если этап 2 не выполнялся, скрипт предложит выбрать порт вручную. Затем он:

  • создаёт или обновляет пользователя;
  • добавляет пользователя в группу sudo;
  • назначает пользователю его домашнюю папку и всё содержимое .ssh;
  • устанавливает права 700 для .ssh и 600 для authorized_keys и остальных файлов ключей;
  • запрещает вход root по SSH;
  • переносит SSH на выбранный порт и добавляет для него правило UFW;
  • настраивает fail2ban;
  • по выбору управляет правилами UFW.

Правила UFW добавляются с учётом режима IPv4/IPv6, сохранённого скриптом 2. Новые порты также записываются в общий список управляемых правил, поэтому последующее переключение IP-режима пересоздаст их корректно.

Для отдельного запуска сначала установите зависимости:

sudo apt-get update
sudo apt-get install -y sudo ufw fail2ban openssl openssh-server
chmod 700 ochenstarik-server-user-3.sh
bash -n ochenstarik-server-user-3.sh
sudo ./ochenstarik-server-user-3.sh

Не закрывая текущую сессию, откройте второй терминал и проверьте вход:

ssh -p ВЫБРАННЫЙ_ПОРТ ИМЯ_ПОЛЬЗОВАТЕЛЯ@IP_СЕРВЕРА

После успешного входа на новый порт подтвердите это в запросе этапа 3: скрипт сам удалит временное правило 22/tcp для IPv4/IPv6 и запись в управляемом списке. Без подтверждения порт сохраняется. Если SSH остаётся на 22 или управление UFW отключено, очистка не выполняется.

Чтобы позднее открыть дополнительные порты, повторно запустите скрипт, выберите пункт 2 и введите правила через пробел или запятую:

80 443/tcp 53/udp 40000

Для записей без протокола используется TCP. Допустимы только порты от 1 до 65535. Если UFW неактивен, правила будут сохранены, но скрипт не включит брандмауэр автоматически во избежание потери SSH-доступа.

4. Telegram-уведомления о входах по SSH

Файл: ochenstarik-server-tg-4.sh.

Создайте бота через @BotFather, отправьте ему сообщение и узнайте ID чата. Скрипт запросит токен и ID интерактивно, отправит тестовое сообщение и подключит уведомления через PAM. Hook обрабатывает только PAM_TYPE=open_session; закрытие сессии не отправляет второе «успешный вход». Отправка запускается через отсоединённый процесс с закрытым stdin/stdout/stderr и не задерживает SSH-вход при недоступности Telegram.

Для отдельного запуска:

sudo apt-get update
sudo apt-get install -y curl openssh-server logrotate
chmod 700 ochenstarik-server-tg-4.sh
bash -n ochenstarik-server-tg-4.sh
sudo ./ochenstarik-server-tg-4.sh

Журнал уведомлений:

sudo tail -f /var/log/ochenstarik-ssh-login-telegram.log

Токен сохраняется на сервере в /etc/ochenstarik-server/telegram.conf с ограниченными правами. Не добавляйте этот файл в репозиторий.

5. Системный VPN через Xray

Файл: ochenstarik-server-vpn-5.sh.

Скрипт устанавливает Xray и необходимые пакеты, принимает прямую ссылку vless:// либо HTTPS-ссылку подписки 3x-ui и настраивает маршрутизацию через nftables. Если подписка содержит VLESS-ссылки на нескольких портах, скрипт выводит доступные порты и просит выбрать нужный. Поддерживается VLESS с транспортом TCP/RAW и REALITY.

При повторном запуске появляется меню: подключить VPN с сохранёнными настройками, отключить его без удаления конфигурации, заменить подписку либо показать состояние.

chmod 700 ochenstarik-server-vpn-5.sh
bash -n ochenstarik-server-vpn-5.sh
sudo ./ochenstarik-server-vpn-5.sh

Во время запуска ссылка вводится скрыто. Скрипт сравнивает внешний IP до и после настройки и использует автоматический откат при ошибке. SSH и ответы сервисов на портах 443 и 63636 остаются на прямом маршруте.

Проверка маршрутизации:

sudo /usr/local/sbin/ochenstarik-xray-routing status
curl -4 https://api.ipify.org

Прямые команды управления:

sudo ./ochenstarik-server-vpn-5.sh --enable
sudo ./ochenstarik-server-vpn-5.sh --disable
sudo ./ochenstarik-server-vpn-5.sh --reconfigure
sudo ./ochenstarik-server-vpn-5.sh --status

Отключение удаляет правила системной маршрутизации, но сохраняет Xray и настройки для быстрого повторного подключения.

6. Панель 3x-ui и локальный proxy Cloudflare WARP

Файл: ochenstarik-server-panel-warp-6.sh.

Панель по умолчанию приватная: webListen=127.0.0.1; адрес реального слушателя проверяется через ss -ltn. Доступ — через SSH-туннель. Порт панели по умолчанию 2053.

Подписки на отдельном порту (по умолчанию 2096) выбираются независимо: приватные на loopback, полностью выключенные либо явно публичные с новым случайным секретным путём. При повторном запуске прежний достаточно случайный путь сохраняется по умолчанию; ротация требует подтверждения, поскольку старые URL перестанут работать. Храните URL подписок как секрет. Публичная панель — отдельный явный выбор. В UFW публикуются только выбранные публичные сервисы и 443/tcp; порт 80 автоматически не открывается.

3x-ui v3.10.2, установщик Xray на коммите 05aa47266c94e6fb5ca48cad96afdb4becb5891f и Xray-core v26.10.21 закреплены вместе с SHA-256 установщиков и исполняемых payload для amd64/arm64. Этапы 5 и 6 требуют комплектный ochenstarik-server-supply-chain.sh. Источник выбирается отдельно: GitHub либо подготовленное оператором HTTPS-зеркало Forgejo. Зеркало должно содержать перечисленные ниже файлы; ochenstarik-server-supply-chain-pins.txt — справочный список сумм, проверяемых helper; существование готового зеркального релиза не предполагается. Неизвестные загрузки установщика блокируются. Системные пакеты по-прежнему требуют доступных APT-репозиториев.

Файлы зеркала лежат в одном каталоге: xui-install.sh, x-ui-linux-amd64.tar.gz либо x-ui-linux-arm64.tar.gz, x-ui.sh, x-ui.service.debian, xray-install.sh, Xray-linux-64.zip либо Xray-linux-arm64-v8a.zip. Суммы закреплены в коде; файлы контрольных сумм helper создаёт локально. Для этапа 5 нужны только два файла Xray.

WARP — отдельный необязательный выбор, по умолчанию выключен. Если выбран, устанавливается из официального APT-репозитория, работает в Local proxy mode через MASQUE и проверяется по warp=on. Его proxy слушает только 127.0.0.1:40000 (либо выбранный локальный порт) и не публикуется через UFW.

bash -n ochenstarik-server-panel-warp-6.sh
sudo ./ochenstarik-server-panel-warp-6.sh

Публичные порты открываются только для семейств адресов, выбранных на этапе 2.

Поддерживаются официально доступные пакеты WARP для Ubuntu jammy, noble, resolute и Debian bookworm, trixie на amd64 и arm64.

Официальные источники: установка 3x-ui, пакеты Cloudflare WARP и режимы WARP.

7. Резервные копии сервера

Файл: ochenstarik-server-backup-7.sh.

Скрипт создаёт полный сжатый снимок корневой файловой системы с сохранением владельцев, ACL и расширенных атрибутов. Виртуальные файловые системы, временные каталоги, swap, подключённые диски и сам каталог бэкапов исключаются. Первичный снимок создаётся сразу, повторно не перезаписывается и не участвует в ротации. Если файловая система поддерживает атрибут immutable, первичный архив и его контрольная сумма дополнительно защищаются от случайного удаления.

При установке можно выбрать несколько расписаний одним вводом, например 1 3:

  • ежедневное — хранится 7 последних архивов;
  • еженедельное — хранится 4 последних архива;
  • ежемесячное — хранится 12 последних архивов;
  • только первичный снимок без автоматического расписания.
chmod 700 ochenstarik-server-backup-7.sh
bash -n ochenstarik-server-backup-7.sh
sudo ./ochenstarik-server-backup-7.sh

По умолчанию архивы сохраняются в /var/backups/ochenstarik-server, но во время установки можно указать абсолютный путь на другом диске. Незавершённые архивы имеют суффикс .partial и не попадают в ротацию. Для каждого готового архива создаётся файл .sha256.

Проверка расписаний и ручной запуск:

systemctl list-timers "ochenstarik-backup-*"
sudo /usr/local/sbin/ochenstarik-server-backup daily
sudo journalctl -u ochenstarik-backup@daily.service

Проверка целостности первичного снимка:

cd /var/backups/ochenstarik-server/initial
sha256sum -c ./*.sha256

Восстанавливайте архив только из rescue-системы или в отдельный пустой каталог, предварительно проверив контрольную сумму. Пример распаковки в подготовленный каталог /restore:

mkdir -p /restore
zstd -dc /ПУТЬ/К/АРХИВУ.tar.zst | tar --acls --xattrs --numeric-owner -xpf - -C /restore

Архив содержит секреты сервера. По умолчанию сохраняется локальный незашифрованный .tar.zst. Шифрование age включается отдельно по публичному ключу получателя: поток сразу записывается в .tar.zst.age, временного незашифрованного архива нет. Приватный ключ восстановления храните отдельно; заранее проверьте расшифровку через age --decrypt -i RECOVERY_KEY перед zstd -dc | tar.

Можно отдельно включить SCP-выгрузку готового архива и .sha256 на другой хост. Нужны выделенная учётная запись, существующий SSH-ключ и заранее проверенный known_hosts. Используются BatchMode и строгая проверка ключа хоста; ошибки передачи считаются ошибкой бэкапа. Существующий незашифрованный первичный снимок сохраняется: при выборе age скрипт явно остановится, а не объявит его зашифрованным. Перенесите прежний снимок в безопасное хранилище и определите политику первичного снимка перед продолжением. Повторный запуск initial проверяет контрольную сумму и повторяет выгрузку, в том числе после прежней ошибки SCP. Локальная ротация не настраивает удалённую ротацию. Локальная копия не защищает от потери сервера. Снимок создаётся с работающей системы; для активно изменяющихся баз данных дополнительно используйте штатный экспорт или согласованный снимок самой базы.

Полная установка

Рекомендуемый способ — единый мастер. Он показывает главное меню со всеми этапами, запускает выбранный пункт и после завершения возвращается обратно в меню. Если какой-либо этап отсутствует рядом с мастером, запуск будет остановлен: скачайте полный архив проекта или используйте git clone.

cd lightweight-server
chmod 700 ./*.sh
bash -n ./*.sh
sudo ./ochenstarik-server-install.sh

После ошибки этап можно повторить, пропустить или завершить весь мастер. Повторный запуск мастера разрешён: каждый модуль поддерживает повторную настройку.

Отдельные скрипты сохранены. При необходимости их по-прежнему можно запускать вручную по очереди:

sudo ./ochenstarik-server-1.sh
sudo ./ochenstarik-server-2.sh
sudo ./ochenstarik-server-user-3.sh
sudo ./ochenstarik-server-tg-4.sh
sudo ./ochenstarik-server-vpn-5.sh
sudo ./ochenstarik-server-panel-warp-6.sh
sudo ./ochenstarik-server-backup-7.sh
sudo ./ochenstarik-server-ai-agents-8.sh

8. AI-агенты на выбор

Файл: ochenstarik-server-ai-agents-8.sh.

На серверах VPN и узлах Telegram-клиента не устанавливайте этап 8. ИИ-агенты должны работать на отдельной машине.

Скрипт предлагает множественный выбор из Hermes Agent, OpenClaw, OpenHands, OpenCode, Aider, AutoGPT и Pi Coding Agent. Установщики запускаются от выбранного обычного пользователя, а не напрямую от root. Каждый официальный установщик сначала загружается по HTTPS во временный файл и проходит проверку bash -n.

AutoGPT — более тяжёлая Docker-платформа: её официальный установщик может запросить sudo, установить зависимости Docker и запустить локальные службы. Pi — лёгкий терминальный агент; после установки его можно запустить командой pi, а затем выполнить /login для подключения провайдера.

API-ключи скрипт не запрашивает и не сохраняет. После установки нужно войти под выбранным пользователем и выполнить показанную команду первоначальной настройки. AI-агенты могут запускать команды, изменять файлы, использовать сеть и устанавливать плагины, поэтому перед подключением рабочих данных необходимо проверить разрешения, песочницу и доступ к секретам.

chmod 700 ochenstarik-server-ai-agents-8.sh
bash -n ochenstarik-server-ai-agents-8.sh
sudo ./ochenstarik-server-ai-agents-8.sh

VPN, 3x-ui, WARP, Telegram-уведомления, автоматические расписания резервного копирования и AI-агенты являются необязательными этапами.

Удаление и повторная установка с начала

Файл: ochenstarik-server-uninstall.sh.

Скрипт удаляет управляемые правила UFW, настройки IPv4/IPv6, SSH drop-in, fail2ban-конфигурацию, Telegram-hook, Xray, 3x-ui, WARP, расписания резервного копирования, swap и служебные файлы проекта. Перед изменением SSH открывается порт 22/tcp. Правило порта, через который работает текущая SSH-сессия, сохраняется, чтобы не потерять доступ.

Удаление администратора и самих архивов резервных копий требует отдельных подтверждений. Обязательные системные пакеты второго этапа и обновления Ubuntu сохраняются, чтобы не потерять доступ к серверу. Языковые пакеты и дополнительные программы удаляются только если первый скрипт зафиксировал, что до его запуска их не было.

chmod 700 ochenstarik-server-uninstall.sh
bash -n ochenstarik-server-uninstall.sh
sudo ./ochenstarik-server-uninstall.sh

Не закрывайте текущую SSH-сессию. После очистки сначала проверьте отдельное подключение через порт 22, затем снова запускайте нужные установочные скрипты. Старое правило текущего SSH-порта можно удалить только после успешной проверки нового входа.

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

  • Всегда проверяйте скачанные скрипты перед запуском от root.
  • Не публикуйте токены Telegram, пароли, приватные SSH-ключи и ссылки VLESS.
  • Не закрывайте действующую SSH-сессию во время переноса SSH на новый порт.
  • Перед настройкой на рабочем сервере сделайте резервную копию важных данных.