Files
for-servers/cockpit/README.md

97 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`.
- Доступ в интернет для установки пакетов.
## Использование
```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 --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>: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`. Если он уже занят, скрипт завершится с ошибкой.
- После входа сохраните пароль в надежном месте и удалите файл:
```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`.