Files
for-servers/cockpit/README.md

4.1 KiB
Raw Blame History

Cockpit Installer

Скрипт cockpit-installer.sh автоматически подготавливает сервер Debian/Ubuntu и устанавливает Cockpit с базовыми настройками безопасности.

Что делает скрипт

  1. Проверяет, что запуск выполнен от root и доступен apt.
  2. Проверяет доступность фиксированного порта Cockpit 12345.
  3. Настраивает системный часовой пояс.
  4. Обновляет систему (apt update && apt upgrade -y).
  5. Устанавливает и включает ufw.
  6. Открывает 22/tcp (SSH) и фиксированный порт Cockpit 12345/tcp.
  7. Устанавливает и настраивает fail2ban (SSH + Cockpit).
  8. Создает (или обновляет) пользователя с правами sudo.
  9. Устанавливает Cockpit и настраивает его на фиксированный порт 12345.
  10. Создает самоподписанный TLS-сертификат.
  11. Добавляет ежедневное обновление сертификата через cron.
  12. Пишет лог установки в /var/log/setup.log.

Требования

  • Debian/Ubuntu (или совместимая система с apt).
  • Запуск от root.
  • Доступ в интернет для установки пакетов.

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

chmod +x cockpit-installer.sh
sudo ./cockpit-installer.sh [options]

Наиболее успешный запуск из URL

Рекомендуемый вариант для быстрого и стабильного запуска напрямую из репозитория:

curl -fsSL https://gitea.creative-tg1.ru/CREATIVE_tg1/for-servers/raw/branch/main/cockpit/cockpit-installer.sh | sudo bash

С параметрами (важно использовать -s -- после bash):

curl -fsSL https://gitea.creative-tg1.ru/CREATIVE_tg1/for-servers/raw/branch/main/cockpit/cockpit-installer.sh | sudo bash -s -- --user admin --timezone Europe/Moscow

Опции

  • --user <username>: имя пользователя (по умолчанию user).
  • --password <password>: пароль пользователя (по умолчанию генерируется автоматически).
  • --timezone <tz>: часовой пояс (по умолчанию UTC, пример: Europe/Moscow).
  • --help: показать справку.

Примеры

sudo ./cockpit-installer.sh
sudo ./cockpit-installer.sh --user admin
sudo ./cockpit-installer.sh --user admin --password MySecret123!
sudo ./cockpit-installer.sh --timezone Europe/Moscow

Результат после установки

  • Cockpit доступен по адресу:
    • https://<SERVER_IP>:12345
  • Создан/обновлен пользователь с sudo.
  • Пароль сохранен во временный файл:
    • /root/<user>_password.txt
  • Сертификаты:
    • /etc/ssl/selfcert/cert.pem
    • /etc/ssl/selfcert/key.pem
  • Логи:
    • /var/log/setup.log
    • /var/log/selfcert-renew.log

Важно по безопасности

  • Скрипт использует самоподписанный сертификат, браузер покажет предупреждение.
  • Порт Cockpit фиксирован: 12345. Если он уже занят, скрипт завершится с ошибкой.
  • После входа сохраните пароль в надежном месте и удалите файл:
rm -f /root/<user>_password.txt
  • Рекомендуется ограничить доступ к порту Cockpit по IP (через firewall/cloud security group).

Обновление сертификата

Скрипт создает:

  • /usr/local/bin/selfcert-renew.sh
  • /etc/cron.d/selfcert-renew

Cron запускает обновление ежедневно в 03:00.