mirror of
https://github.com/deadcxap/init_scripts.git
synced 2026-07-02 05:43:40 +03:00
c1e6a22fdc1752cafd3bd13d6a0c415fd43e80a1
Стартовые скрипты для настройки серверов
Этот репозиторий содержит скрипт 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. - Требуется подключение к интернету для установки пакетов.
Использование
Запуск осуществляется одной командой:
curl -fsSL https://raw.githubusercontent.com/deadcxap/init_scripts/main/setup.sh | \
sudo bash -s -- --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%