# Стартовые скрипты для настройки серверов Этот репозиторий содержит скрипт `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`. - Требуется подключение к интернету для установки пакетов. ## Использование Запуск осуществляется одной командой: ```bash curl -fsSL https://raw.githubusercontent.com/deadcxap/init_scripts/main/setup.sh | \ sudo bash -s -- --user --sshkey "" \ [--ssh-ip ] [--monitor-ip ] \ [--vector ] \ [--role ] \ [--netbird-key [--netbird-ip --netbird-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` — имя роли из [репозитория](https://github.com/deadcxap/init_scripts); перед запуском проверяется наличие папки, после чего её содержимое копируется в `/opt/` и при наличии выполняется `init.sh`; если папка отсутствует, выводится предупреждение и шаг пропускается; - `-n, --netbird-key` — ключ настройки Netbird; - `-i, --netbird-ip` — IP центрального сервера Netbird (если указан вместе с портом, добавляется правило UFW); - `-p, --netbird-port` — порт центрального сервера Netbird (используется вместе с IP). Логи выполнения сохраняются в `/var/log/core_setup.log`, по завершении выводится краткая сводка по каждому шагу. ## Примечание Перед запуском рекомендуется ознакомиться с содержимым скрипта и адаптировать его под свои требования.