111 lines
3.1 KiB
Python
111 lines
3.1 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
"""
|
||
|
|
ARGOS SOC — Generatore argos.json
|
||
|
|
Legge le variabili d'ambiente impostate dall'installer e genera /opt/argos/config/argos.json
|
||
|
|
"""
|
||
|
|
import json
|
||
|
|
import os
|
||
|
|
from datetime import datetime, timezone
|
||
|
|
|
||
|
|
def e(key, default=""):
|
||
|
|
return os.environ.get(key, default)
|
||
|
|
|
||
|
|
config = {
|
||
|
|
"_version": "1.0",
|
||
|
|
"_cliente": e("CLIENTE"),
|
||
|
|
"_domain": e("DOMAIN"),
|
||
|
|
"_installed": datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ"),
|
||
|
|
|
||
|
|
"cliente": {
|
||
|
|
"name": e("CLIENTE"),
|
||
|
|
"full_name": e("CLIENTE_FULL"),
|
||
|
|
"domain": e("CLIENTE_DOMAIN"),
|
||
|
|
"type": e("CLIENTE_TYPE", "enterprise"),
|
||
|
|
"sharepoint_tenant": e("SP_TENANT")
|
||
|
|
},
|
||
|
|
|
||
|
|
"system": {
|
||
|
|
"secret_key": e("SECRET_KEY"),
|
||
|
|
"internal_api_key": e("INTERNAL_KEY"),
|
||
|
|
"anthropic_key": e("ANTHROPIC_KEY"),
|
||
|
|
"ai_context": e("AI_CONTEXT", "ARGOS SOC"),
|
||
|
|
"tz": "Europe/Rome"
|
||
|
|
},
|
||
|
|
|
||
|
|
"paths": {
|
||
|
|
"data_dir": "/opt/argos/data",
|
||
|
|
"feeds_dir": "/opt/argos/feeds",
|
||
|
|
"logs_dir": "/opt/argos/logs",
|
||
|
|
"config_dir": "/opt/argos/config",
|
||
|
|
"analytics_db": "/opt/argos/data/analytics.db",
|
||
|
|
"analytics_exclude_entities": ""
|
||
|
|
},
|
||
|
|
|
||
|
|
"ports": {
|
||
|
|
"backend": 8080,
|
||
|
|
"sync": 8081,
|
||
|
|
"ops": 8082,
|
||
|
|
"analytics": 8083
|
||
|
|
},
|
||
|
|
|
||
|
|
"opensearch": {
|
||
|
|
"url": e("OS_URL"),
|
||
|
|
"user": e("OS_USER", "admin"),
|
||
|
|
"password": e("OS_PASS")
|
||
|
|
},
|
||
|
|
|
||
|
|
"wazuh": {
|
||
|
|
"api_url": e("WAZUH_API_URL"),
|
||
|
|
"api_user": e("WAZUH_API_USER", "wazuh"),
|
||
|
|
"api_pass": e("WAZUH_API_PASS"),
|
||
|
|
"manager_name": e("WAZUH_MANAGER", "wazuh")
|
||
|
|
},
|
||
|
|
|
||
|
|
"entra": {
|
||
|
|
"tenant_id": e("ENTRA_TENANT"),
|
||
|
|
"client_id": e("ENTRA_CLIENT"),
|
||
|
|
"client_secret": e("ENTRA_SECRET")
|
||
|
|
},
|
||
|
|
|
||
|
|
"eset": {
|
||
|
|
"region": "eu",
|
||
|
|
"api_user": e("ESET_USER"),
|
||
|
|
"api_pass": e("ESET_PASS")
|
||
|
|
},
|
||
|
|
|
||
|
|
"fortigate": {
|
||
|
|
"hosts": e("FGT_HOSTS"),
|
||
|
|
"port": e("FGT_PORT", "443"),
|
||
|
|
"tokens": e("FGT_TOKENS"),
|
||
|
|
"names": e("FGT_NAMES")
|
||
|
|
},
|
||
|
|
|
||
|
|
"smtp": {
|
||
|
|
"host": e("SMTP_HOST"),
|
||
|
|
"port": int(e("SMTP_PORT", "587")),
|
||
|
|
"user": e("SMTP_USER"),
|
||
|
|
"password": e("SMTP_PASS"),
|
||
|
|
"from_email": e("FROM_EMAIL")
|
||
|
|
},
|
||
|
|
|
||
|
|
"threat_intel": {
|
||
|
|
"abuseipdb_key": e("ABUSEIPDB_KEY"),
|
||
|
|
"maltiverse_key": e("MALTIVERSE_KEY")
|
||
|
|
},
|
||
|
|
|
||
|
|
"pdf": {
|
||
|
|
"org_name": e("PDF_ORG_NAME"),
|
||
|
|
"author": e("PDF_AUTHOR", "Tecnotel Servizi SRL"),
|
||
|
|
"motto": e("PDF_MOTTO", "Controllo totale. Difesa continua."),
|
||
|
|
"classification": e("PDF_CLASS", "RISERVATO - USO INTERNO"),
|
||
|
|
"app_logo": "/opt/argos/app/frontend/dist/logo_argos_bianco.png",
|
||
|
|
"client_logo": "/opt/argos/data/logo_cliente_pdf.png"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
out = "/opt/argos/config/argos.json"
|
||
|
|
with open(out, "w") as f:
|
||
|
|
json.dump(config, f, indent=2, ensure_ascii=False)
|
||
|
|
|
||
|
|
print(f"argos.json generato: {out}")
|