Files
for-servers/cockpit/README.md
T

96 lines
4.0 KiB
Markdown

# Cockpit Installer
Скрипт `cockpit-installer.sh` автоматически подготавливает сервер Debian/Ubuntu и устанавливает Cockpit с базовыми настройками безопасности.
## Что делает скрипт
1. Проверяет, что запуск выполнен от `root` и доступен `apt`.
2. Обновляет систему (`apt update && apt upgrade -y`).
3. Настраивает системный часовой пояс.
4. Устанавливает и включает `ufw`.
5. Открывает `22/tcp` (SSH) и `9090/tcp` (Cockpit).
6. Устанавливает и настраивает `fail2ban` (SSH + Cockpit).
7. Создает (или обновляет) пользователя с правами `sudo`.
8. Устанавливает Cockpit с дефолтным портом `9090`.
9. Создает самоподписанный TLS-сертификат.
10. Добавляет ежедневное обновление сертификата через cron.
11. Пишет лог установки в `/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 -- --user admin --password MySecret123! --timezone Europe/Moscow
```
## Опции
- `--user <username>`: имя пользователя (по умолчанию `user`).
- `--password <password>`: пароль пользователя (по умолчанию генерируется автоматически).
- `--timezone <tz>`: часовой пояс (по умолчанию `UTC`, пример: `Europe/Moscow`).
- `--help`: показать справку.
## Примеры
```bash
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>:9090`
- Создан/обновлен пользователь с `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 использует дефолтный порт `9090` и не переконфигурируется.
- После входа сохраните пароль в надежном месте и удалите файл:
```bash
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`.