Files
security-alert-center/deploy/env.native.example
T
PapaTramp 563b836acc feat: Seaca mobile API, enrollment, FCM push and admin UI (0.9.0)
Adds mobile device registration by admin codes, refresh tokens, push channel
in notification policy, and Settings section for managing Seaca clients.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-10 13:19:14 +10:00

98 lines
3.3 KiB
Plaintext

# Native: /opt/security-alert-center/config/sac-api.env
# sudo chown sac:sac ... && sudo chmod 600 ...
# Пароль в URL — в двойных кавычках. Символ # в пароле допустим только внутри кавычек.
# systemd НЕ парсит этот файл — читает приложение (SAC_CONFIG_FILE).
DATABASE_URL=postgresql+psycopg2://sac:CHANGE_ME_POSTGRES_PASSWORD@127.0.0.1:5432/sac
SAC_PUBLIC_URL=https://sac.kalinamall.ru
JWT_SECRET=CHANGE_ME_openssl_rand_hex_32
# API key для агентов: Authorization: Bearer <ключ>
# python3.12 -c "import secrets; print('sac_'+secrets.token_urlsafe(32))"
SAC_BOOTSTRAP_API_KEY=sac_replace_with_generated_key
EVENT_SCHEMA_PATH=/opt/security-alert-center/schemas/event-schema-v1.json
SAC_ADMIN_USERNAME=admin
SAC_ADMIN_PASSWORD=
# Telegram notifications from SAC (phase 1C.4)
# При UseSAC=exclusive на агентах — основной канал для оператора; см. docs/agent-integration.md §1.3.1
TELEGRAM_ENABLED=false
TELEGRAM_BOT_TOKEN=
TELEGRAM_CHAT_ID=
# exclusive: warning (failed login, problems); prod noise-only: high
TELEGRAM_MIN_SEVERITY=high
# Generic webhook (JSON POST), F-NOT-01
WEBHOOK_ENABLED=false
WEBHOOK_URL=
WEBHOOK_SECRET_HEADER=
WEBHOOK_SECRET=
WEBHOOK_MIN_SEVERITY=high
# SMTP email (F-NOT-01)
SMTP_ENABLED=false
SMTP_HOST=
SMTP_PORT=587
SMTP_USER=
SMTP_PASSWORD=
SMTP_FROM=
SMTP_TO=
SMTP_STARTTLS=true
SMTP_SSL=false
SMTP_MIN_SEVERITY=high
# Глобальное правило: severity ≥ NOTIFY_MIN_SEVERITY → каналы из NOTIFY_CHANNELS
NOTIFY_MIN_SEVERITY=warning
NOTIFY_CHANNELS=telegram,webhook,email
# Cooldown оповещений SAC (секунды; 0 = выкл. для kind)
SAC_NOTIFY_COOLDOWN_ENABLED=true
SAC_NOTIFY_EVENT_COOLDOWN_SEC=90
SAC_NOTIFY_PROBLEM_COOLDOWN_SEC=300
# Суточные отчёты из SAC (F-NOT-05; systemd sac-daily-report.timer)
SAC_DAILY_REPORT_ENABLED=true
SAC_DAILY_REPORT_HOUR=9
SAC_DAILY_REPORT_TIMEZONE=Europe/Moscow
SAC_DAILY_REPORT_SKIP_IF_AGENT_SENT=true
SAC_DAILY_REPORT_REQUIRE_ACTIVITY=true
# Статус хоста по agent.heartbeat
SAC_HEARTBEAT_STALE_MINUTES=780
# Проактивный алерт host_silence (без ожидания нового события с хоста)
SAC_HOST_SILENCE_SCAN_ENABLED=true
SAC_HOST_SILENCE_SCAN_INTERVAL_MINUTES=5
# Корреляция Problems: host + type + rule в одном open Problem (минуты)
SAC_PROBLEM_CORRELATION_WINDOW_MINUTES=60
# rule:brute_force_burst (ssh.login.failed / rdp.login.failed)
SAC_BRUTE_FORCE_WINDOW_MINUTES=15
SAC_BRUTE_FORCE_THRESHOLD=30
# rule:privilege_spike (privilege.sudo.command)
SAC_PRIVILEGE_SPIKE_WINDOW_MINUTES=10
SAC_PRIVILEGE_SPIKE_THRESHOLD=10
# Retention (systemd sac-retention.timer)
SAC_EVENTS_RETENTION_DAYS=90
SAC_PROBLEMS_RETENTION_DAYS=180
# UI login: блокировка IP после N неудачных попыток (окно в минутах) + алерт в Telegram
SAC_LOGIN_MAX_FAILURES=3
SAC_LOGIN_FAILURE_WINDOW_MINUTES=15
SAC_LOGIN_ALERT_TELEGRAM=true
# Seaca mobile push (FCM HTTP v1)
SAC_FCM_ENABLED=false
SAC_FCM_PROJECT_ID=
# Путь к JSON service account Firebase (chmod 600, владелец sac)
SAC_FCM_SERVICE_ACCOUNT_JSON=
SAC_MOBILE_REFRESH_EXPIRE_DAYS=90
CORS_ORIGINS=*