deadcxap 4d9039a081 Я
НЕНАВИЖУ
ЭКРАНИРОВАНИЕ
2025-08-24 08:17:31 +03:00
2025-08-24 07:32:29 +03:00
Я
2025-08-24 08:17:31 +03:00

Стартовые скрипты для настройки серверов

Этот репозиторий содержит скрипт setup.sh для базовой подготовки Ubuntu/Debian сервера. Скрипт автоматизирует установку полезных пакетов, создание пользователя, настройку сетевой безопасности и журналирования.

Возможности setup.sh

  • обновление пакетов и установка базового софта;
  • создание нового пользователя с sudo без пароля;
  • настройка SSH‑доступа только по указанному ключу;
  • настройка межсетевого экрана UFW;
  • установка Docker и разрешение работы без root;
  • установка и настройка Fail2Ban для защиты SSH;
  • включение автоматических обновлений unattended-upgrades;
  • установка часового пояса Europe/Moscow;
  • ротация логов и их отправка через Vector, включая логи Docker;
  • установка и запуск Netbird по ключу с добавлением правила UFW для центрального сервера;
  • проверка наличия роли в репозитории, копирование её в /opt/ и запуск init.sh (если есть) для старта первого Docker Compose стека; если роль не найдена, выводится предупреждение.
  • проверки запуска UFW, Docker, Vector, Netbird и конфигурации SSH.

Требования

  • Скрипт должен запускаться от root.
  • Требуется подключение к интернету для установки пакетов.

Использование

Запуск (или из-под root, или sudo sh):

Так как репозиторий приватный, надо сперва автризоваться на github:

  • сгенерировать PAT (personal access token) с правами Contents: Read ТОЛЬКО НА НУЖНЫЙ РЕПОЗИТОРИЙ!
  • добавить токен в окружение:
export GITHUB_TOKEN='ghp_...'
export CURL_HOME="$(mktemp -d)"
printf 'header = "Authorization: Bearer %s"\n' "$GITHUB_TOKEN" > 
"$CURL_HOME/.curlrc"
  • после выполнения настройки - удалить авторизацию для безопасности
rm -rf "$CURL_HOME"
unset CURL_HOME GITHUB_TOKEN
bash <(curl -sL https://raw.githubusercontent.com/deadcxap/init_scripts/main/setup.sh) \
   --user <username> --sshkey "<ssh_pubkey>" \
  [--ssh-ip <ssh_allowed_ip>] \
  [--monitor-ip <monitor_ip>] \
  [--vector <vector_endpoint>] \
  [--role <name>] \
  [--netbird-key <key> [--netbird-ip <ip> --netbird-port <port>]]

Параметры:

  • -u, --user — имя создаваемого пользователя;
  • -k, --sshkey — строка публичного SSH‑ключа (например "ssh-rsa AAAA...");
  • -s, --ssh-ip — IP‑адрес, с которого разрешён SSH‑доступ (если не указан — порт открыт всем);
  • -m, --monitor-ip — IP‑адрес сервера мониторинга для порта 45876/tcp (если не указан — порт не открывается);
  • -v, --vector — URL приёмника логов Vector (если не указан — Vector не устанавливается);
  • -r, --role — имя роли из репозитория; перед запуском проверяется наличие папки, после чего её содержимое копируется в /opt/ и при наличии выполняется init.sh; если папка отсутствует, выводится предупреждение и шаг пропускается;
  • -n, --netbird-key — ключ настройки Netbird;
  • -i, --netbird-ip — IP центрального сервера Netbird (если указан вместе с портом, добавляется правило UFW);
  • -p, --netbird-port — порт центрального сервера Netbird (используется вместе с IP).

Логи выполнения сохраняются в /var/log/core_setup.log, по завершении выводится краткая сводка по каждому шагу.

Примечание

Перед запуском рекомендуется ознакомиться с содержимым скрипта и адаптировать его под свои требования.

S
Description
No description provided
Readme 468 KiB
Languages
Shell 98.8%
Dockerfile 1.2%