# Cockpit Installer Скрипт `cockpit-installer.sh` автоматически подготавливает сервер Debian/Ubuntu и устанавливает Cockpit с базовыми настройками безопасности. ## Что делает скрипт 1. Проверяет, что запуск выполнен от `root` и доступен `apt`. 2. Валидирует и настраивает порт Cockpit. 3. Настраивает системный часовой пояс. 4. Обновляет систему (`apt update && apt upgrade -y`). 5. Устанавливает и включает `ufw`. 6. Открывает `22/tcp` (SSH) и выбранный порт Cockpit. 7. Устанавливает и настраивает `fail2ban` (SSH + Cockpit). 8. Создает (или обновляет) пользователя с правами `sudo`. 9. Устанавливает Cockpit и переводит его на указанный порт. 10. Создает самоподписанный TLS-сертификат. 11. Добавляет ежедневное обновление сертификата через cron. 12. Пишет лог установки в `/var/log/setup.log`. ## Требования - Debian/Ubuntu (или совместимая система с `apt`). - Запуск от `root`. - Доступ в интернет для установки пакетов. ## Использование ```bash chmod +x cockpit-installer.sh sudo ./cockpit-installer.sh [options] ``` ## Наиболее успешный запуск из URL Рекомендуемый вариант для быстрого и стабильного запуска напрямую из репозитория: ```bash curl -fsSL https://gitea.creative-tg1.ru/CREATIVE_tg1/for-servers/raw/branch/main/cockpit/cockpit-installer.sh | sudo bash ``` С параметрами (важно использовать `-s --` после `bash`): ```bash curl -fsSL https://gitea.creative-tg1.ru/CREATIVE_tg1/for-servers/raw/branch/main/cockpit/cockpit-installer.sh | sudo bash -s -- --port 12345 --user admin --timezone Europe/Moscow ``` ## Опции - `--port `: порт Cockpit (по умолчанию `12345`). - `--user `: имя пользователя (по умолчанию `user`). - `--password `: пароль пользователя (по умолчанию генерируется автоматически). - `--timezone `: часовой пояс (по умолчанию `UTC`, пример: `Europe/Moscow`). - `--help`: показать справку. ## Примеры ```bash sudo ./cockpit-installer.sh sudo ./cockpit-installer.sh --port 12345 sudo ./cockpit-installer.sh --port 12345 --user admin sudo ./cockpit-installer.sh --port 12345 --user admin --password MySecret123! sudo ./cockpit-installer.sh --port 12345 --timezone Europe/Moscow ``` ## Результат после установки - Cockpit доступен по адресу: - `https://:` - Создан/обновлен пользователь с `sudo`. - Пароль сохранен во временный файл: - `/root/_password.txt` - Сертификаты: - `/etc/ssl/selfcert/cert.pem` - `/etc/ssl/selfcert/key.pem` - Логи: - `/var/log/setup.log` - `/var/log/selfcert-renew.log` ## Важно по безопасности - Скрипт использует самоподписанный сертификат, браузер покажет предупреждение. - После входа сохраните пароль в надежном месте и удалите файл: ```bash rm -f /root/_password.txt ``` - Рекомендуется ограничить доступ к порту Cockpit по IP (через firewall/cloud security group). ## Обновление сертификата Скрипт создает: - `/usr/local/bin/selfcert-renew.sh` - `/etc/cron.d/selfcert-renew` Cron запускает обновление ежедневно в `03:00`.