4f3adc9429
Security Alert Center — документация без кода приложения. - TZ, архитектура, интеграция агентов (UseSAC) - JSON Schema событий v1, deployment Ubuntu 24.04 - План работ, roadmap, multi-root workspace
5.1 KiB
5.1 KiB
Развёртывание на Ubuntu 24.04
Руководство для эксплуатации SAC. Реализация deploy/ — в фазе 1; здесь — целевая архитектура развёртывания.
1. Требования к серверу
| Параметр | Минимум | Рекомендуется |
|---|---|---|
| ОС | Ubuntu 24.04 LTS | Ubuntu 24.04 LTS |
| CPU | 2 vCPU | 4 vCPU |
| RAM | 4 GB | 8 GB |
| Диск | 50 GB SSD | 100+ GB SSD (отдельный том для PostgreSQL) |
| Сеть | Статический IP или DNS | TLS-сертификат (Let's Encrypt / внутренний CA) |
Порты:
| Порт | Назначение |
|---|---|
| 443 | HTTPS (UI + API ingest) |
| 80 | Редирект на 443 (опционально) |
PostgreSQL не публикуется наружу.
2. Сетевые правила
Исходящие с агентов:
- Linux (ssh-monitor) →
https://sac.example.com:443 - Windows (RDP-monitor) → тот же URL
Исходящие с SAC:
api.telegram.org(если Telegram)- SMTP-сервер организации
Входящие на SAC:
- 443 от сетей, где расположены агенты и админы UI
3. Вариант A: Docker Compose (рекомендуется)
Целевая структура (фаза 1):
deploy/
docker-compose.yml
.env.example
nginx/
sac.conf
Сервисы:
postgres:16api(FastAPI)worker(тот же образ, другая command)nginx(static + proxy)
3.1. Установка Docker
sudo apt update
sudo apt install -y ca-certificates curl
# Официальная инструкция Docker CE для Ubuntu 24.04
3.2. Конфигурация
sudo mkdir -p /etc/security-alert-center
sudo cp deploy/.env.example /etc/security-alert-center/.env
sudo chmod 600 /etc/security-alert-center/.env
# Заполнить: POSTGRES_PASSWORD, JWT_SECRET, TELEGRAM_*, SAC_PUBLIC_URL
3.3. Запуск
cd /opt/security-alert-center/deploy
sudo docker compose up -d
sudo docker compose exec api alembic upgrade head
3.4. Обновление
git pull
sudo docker compose build
sudo docker compose up -d
sudo docker compose exec api alembic upgrade head
4. Вариант B: Native systemd
Пакеты:
sudo apt install -y postgresql nginx python3.12 python3.12-venv
- PostgreSQL: БД
sac, пользовательsac - venv в
/opt/security-alert-center/.venv - Units:
sac-api.service,sac-worker.service - Static UI в
/var/www/sac/ - nginx site
/etc/nginx/sites-available/sac
Детальные unit-файлы — при реализации фазы 1.
5. TLS
- Публичный: certbot + nginx
- Внутренний: корпоративный CA, полный chain в nginx
Агенты должны доверять CA (или SAC_TLS_SKIP_VERIFY=1 только для dev — запрещено в prod).
6. Резервное копирование
6.1. Ежедневный pg_dump
# /etc/cron.d/sac-backup (пример)
0 3 * * * postgres pg_dump -Fc sac > /var/backups/sac/sac_$(date +\%Y\%m\%d).dump
Ротация: 14 daily + 4 weekly.
6.2. Восстановление (тест раз в месяц)
pg_restore -d sac_restored /var/backups/sac/sac_YYYYMMDD.dump
7. Обслуживание
| Задача | Периодичность |
|---|---|
unattended-upgrades security |
автоматически |
| Проверка диска PostgreSQL | еженедельно |
| Ротация логов nginx/app | logrotate |
Проверка /health |
каждые 5 мин (Uptime Kuma / cron) |
| Review Problems «хост мёртв» | ежедневно |
| Тест restore БД | ежемесячно |
8. Мониторинг самого SAC
GET https://sac.example.com/health→200,"database": "ok"- Алерт если нет ingest с активного хоста > 90 мин (настраивается)
- Диск > 85% — алерт ОС
9. Создание API key для хоста
(После реализации UI)
- Войти как admin → Hosts → Add / Generate API key.
- Скопировать ключ в
/etc/ssh-monitor.confили RDP-конфиг. UseSAC=exclusive, перезапуск агента.--check-sacна хосте.
10. Чеклист первого prod-развёртывания
- Ubuntu 24.04, hostname, DNS A-record
- TLS работает
- PostgreSQL backup настроен
.envне в git, chmod 600- Создан admin-пользователь
- Telegram test notification
- Тестовый ingest с одного Linux и одного Windows
- Firewall: только нужные порты
См. также
- TZ.md §5, §9
- agent-integration.md