mirror of
https://github.com/deadcxap/init_scripts.git
synced 2026-07-02 05:43:40 +03:00
47637f0f0d7d83c8593c7b24f5423c9458c6ebd2
Стартовые скрипты для настройки серверов
Этот репозиторий содержит скрипт 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, по завершении выводится краткая сводка по каждому шагу.
Примечание
Перед запуском рекомендуется ознакомиться с содержимым скрипта и адаптировать его под свои требования.
Description
Languages
Shell
98.8%
Dockerfile
1.2%