Files
security-alert-center/deploy/env.native.example
T

140 lines
5.6 KiB
Plaintext
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.
# 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
# SQLAlchemy pool (uvicorn workers × concurrent ingest). Было по умолчанию 5+10 — мало для штурма 09:00.
SAC_DB_POOL_SIZE=15
SAC_DB_MAX_OVERFLOW=25
# Uvicorn workers (ingest burst). Читает deploy/systemd/sac-api-start.sh; при >1 отключите in-process host_silence scan ниже.
SAC_UVICORN_WORKERS=4
SAC_PUBLIC_URL=https://sac.kalinamall.ru
# Опционально: другой базовый URL для WinRM-скачивания RDP bundle с ПК (LAN / split-DNS).
# SAC_AGENT_BUNDLE_BASE_URL=https://192.168.x.x
JWT_SECRET=CHANGE_ME_openssl_rand_hex_32
SAC_SECURITY_ENFORCE=true
# 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
# Порог stale для agent.heartbeat (мин). При интервале агента ~4 ч — 300 (5 ч) даёт запас.
SAC_HEARTBEAT_STALE_MINUTES=300
# Проактивный алерт host_silence (без ожидания нового события с хоста)
# Если включён systemd timer sac-host-silence-scan.timer — лучше SAC_HOST_SILENCE_SCAN_ENABLED=false
# (иначе scan идёт параллельно из каждого uvicorn worker + timer).
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
# rule:rdg_session_flap (302→303)
SAC_RDG_FLAP_WINDOW_MIN_SEC=1
SAC_RDG_FLAP_WINDOW_MAX_SEC=10
SAC_RDG_FLAP_DEDUP_SEC=30
# IP HAProxy (или другого RDG-прокси), через который виден вход: external_ip в событии 302/303
# SAC_RDG_HAPROXY_EXTERNAL_IPS=192.168.160.50,10.0.0.100
# qwinsta/logoff на Windows-хостах (доменный admin)
# SAC_WIN_ADMIN_USER=B26\\Administrator
# SAC_WIN_ADMIN_PASSWORD=
# SSH / update_ssh_monitor.sh на Linux-хостах
# SAC_LINUX_ADMIN_USER=root
# SAC_LINUX_ADMIN_PASSWORD=
# 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
# IP через запятую — не блокируются в UI (дополняет список в Настройках SAC)
SAC_LOGIN_IP_WHITELIST=192.168.160.3
# fail2ban: синхронизация белого списка из UI (нужны права записи + reload)
SAC_FAIL2BAN_SYNC_ENABLED=false
SAC_FAIL2BAN_SSH_JAIL=sshd
SAC_FAIL2BAN_IGNOREIP_FILE=/etc/fail2ban/jail.d/sac-login-whitelist.local
# 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=https://sac.kalinamall.ru
# SSH: verify host keys (RejectPolicy). Add keys to file before remote actions.
# Комментарий — только отдельной строкой с #. Нельзя: SAC_SSH_AUTO_ADD_HOST_KEY=false ← текст
# SAC_SSH_KNOWN_HOSTS_FILE=/opt/security-alert-center/config/ssh_known_hosts
# SAC_SSH_AUTO_ADD_HOST_KEY=false
# WinRM: enable HTTPS listener on clients (5986) before turning on.
# SAC_WINRM_USE_HTTPS=false
# SAC_WINRM_SERVER_CERT_VALIDATION=validate