Files
for-servers/cockpit/README.md

98 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.
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 <port>`: порт Cockpit (по умолчанию `12345`).
- `--user <username>`: имя пользователя (по умолчанию `user`).
- `--password <password>`: пароль пользователя (по умолчанию генерируется автоматически).
- `--timezone <tz>`: часовой пояс (по умолчанию `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://<SERVER_IP>:<PORT>`
- Создан/обновлен пользователь с `sudo`.
- Пароль сохранен во временный файл:
- `/root/<user>_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/<user>_password.txt
```
- Рекомендуется ограничить доступ к порту Cockpit по IP (через firewall/cloud security group).
## Обновление сертификата
Скрипт создает:
- `/usr/local/bin/selfcert-renew.sh`
- `/etc/cron.d/selfcert-renew`
Cron запускает обновление ежедневно в `03:00`.