ARGOS SOC — Installer e Web Setup Wizard
Go to file
tecnotel f5aee30d2a setup: copia config glob-driven + rimozione riferimenti ASREM (placeholder + commento) 2026-06-25 18:40:07 +02:00
.gitignore feat(phase6): wizard licenza + bootstrap one-liner 2026-04-20 14:27:10 +02:00
README.md docs: guida deploy a due VM (Wazuh + ARGOS) su VNet privata 2026-06-25 18:20:22 +02:00
bootstrap.sh rebrand: argos-update.tecnotelsrl.com -> repo.argosdefense.io + license.argosdefense.io. SETUP_REPO_URL aggiornato in bootstrap.sh (variabile critica per primo install), setup_server.py template vendor_heartbeat aggiornato, README install instructions aggiornate. 2026-05-19 15:43:12 +02:00
first-setup.sh feat: installa sudoers argos-update per bottone UI 'Esegui update.sh'. 2026-05-16 14:55:36 +02:00
setup.html setup: copia config glob-driven + rimozione riferimenti ASREM (placeholder + commento) 2026-06-25 18:40:07 +02:00
setup_server.py setup: copia config glob-driven + rimozione riferimenti ASREM (placeholder + commento) 2026-06-25 18:40:07 +02:00

README.md

ARGOS SOC — Setup & Installer

Tecnotel Servizi SRL — www.tecnotelsrl.com

Repository pubblico contenente l'installer di prima fase e il Web Setup Wizard di ARGOS SOC.


Architettura di riferimento: due VM sulla stessa VNet

ARGOS è la console SOC; Wazuh/OpenSearch è il SIEM che fa da normalizzatore e store degli eventi. Il deployment standard è su due VM Ubuntu 24.04 LTS nella stessa VNet: ARGOS interroga l'indexer Wazuh esclusivamente sull'IP privato, nessun traffico SIEM transita su Internet.

                 VNet privata (es. 172.25.0.0/16)
   ┌────────────────────────────┐      ┌────────────────────────────┐
   │  VM ARGOS                   │      │  VM WAZUH (SIEM)            │
   │  172.25.0.5                 │ 9200 │  172.25.0.4                │
   │  Flask + React + analytics  │─────▶│  Indexer/OpenSearch        │
   │  console SOC :443           │ https│  Manager :1514/1515        │
   │  web installer :8888 (temp) │      │  Syslog :514               │
   └────────────────────────────┘      └────────────────────────────┘
            ▲                                     ▲
            │ :443 (console)                      │ :514 / :1514 (log apparati/agenti)
        tuo ufficio / VPN                    firewall, switch, endpoint

ARGOS si connette all'indexer in HTTPS + Basic auth e tollera il certificato self-signed di Wazuh (verifica TLS disattivata lato client): non serve importare alcuna CA per il primo bring-up.

Matrice porte

Servizio VM Porta Sorgente consentita
Indexer / OpenSearch Wazuh 9200/tcp solo IP privato ARGOS
Manager (agenti) Wazuh 1514/1515/tcp VNet interna
Syslog (firewall/switch) Wazuh 514/udp+tcp sorgenti interne / VNet
API Wazuh Wazuh 55000/tcp localhost (ARGOS non la usa)
Dashboard Wazuh (opzionale) Wazuh 443/tcp tuo IP ufficio (o disabilitata)
Console ARGOS ARGOS 443/tcp tuo IP ufficio / VPN
Web installer ARGOS (temporaneo) ARGOS 8888/tcp tuo IP ufficio (chiusa a fine setup)
SSH entrambe 22/tcp solo IP admin

Prerequisiti

  • Due VM Ubuntu 24.04 LTS (24.04 o 26.04 supportate), accesso root (sudo).
  • Sizing minimo per VM: 2 vCPU / 8 GB RAM / 50 GB disco. Per la VM Wazuh sono consigliati 4 vCPU / 16 GB e un disco da 128256 GB (il DB vulnerabilità si espande a ~7,5 GB in import: sotto i 50 GB l'installazione si corrompe).
  • IP privati statici su entrambe le NIC (in Azure: allocazione Static).
  • Connettività in uscita verso repo.argosdefense.io (codice/aggiornamenti) e license.argosdefense.io (licenze/heartbeat) dalla VM ARGOS.
  • Una licenza ARGOS valida emessa da Tecnotel per il machine_id della VM ARGOS.

In tutta la guida si usano come esempio: Wazuh 172.25.0.4, ARGOS 172.25.0.5, VNet 172.25.0.0/16. Sostituisci con i tuoi valori reali.


Parte A — Installazione Wazuh (VM 172.25.0.4)

A.1 Network Security Group (Azure)

Apri l'indexer solo verso l'IP privato di ARGOS, mai pubblico. Le altre porte SIEM restano interne alla VNet. SSH/dashboard solo dal tuo IP ufficio.

RG=il-tuo-resource-group
NSG=nsg-wazuh
ARGOS_PRIV_IP=172.25.0.5
VNET_CIDR=172.25.0.0/16
MY_OFFICE_IP=203.0.113.5          # il tuo IP pubblico ufficio

# Indexer 9200: SOLO da ARGOS
az network nsg rule create -g $RG --nsg-name $NSG -n allow-indexer-argos \
  --priority 200 --access Allow --protocol Tcp --direction Inbound \
  --source-address-prefixes ${ARGOS_PRIV_IP}/32 --destination-port-ranges 9200

# Agenti/syslog: dalla VNet interna
az network nsg rule create -g $RG --nsg-name $NSG -n allow-siem-vnet \
  --priority 210 --access Allow --protocol Tcp --direction Inbound \
  --source-address-prefixes $VNET_CIDR --destination-port-ranges 1514 1515 514

# SSH dal solo IP admin
az network nsg rule create -g $RG --nsg-name $NSG -n allow-ssh-admin \
  --priority 220 --access Allow --protocol Tcp --direction Inbound \
  --source-address-prefixes $MY_OFFICE_IP --destination-port-ranges 22

A.2 Installazione (all-in-one Wazuh 4.14)

sudo timedatectl set-timezone Europe/Rome
sudo apt update && sudo apt -y upgrade
sudo hostnamectl set-hostname wazuh

# Verifica la serie corrente su packages.wazuh.com se il download dà 404
curl -sO https://packages.wazuh.com/4.14/wazuh-install.sh
sudo bash ./wazuh-install.sh -a

L'assistente (1015 min) installa indexer + manager + dashboard + filebeat, genera i certificati con l'IP privato già nel SAN e stampa a fine corsa User: admin / Password: ….

A.3 Tuning per 8 GB di RAM

L'installer assegna 4 GB di heap all'indexer: su una VM da 8 GB è troppo. Abbassa a 2 GB:

sudo sed -i 's/^-Xms4g/-Xms2g/; s/^-Xmx4g/-Xmx2g/' /etc/wazuh-indexer/jvm.options
sudo systemctl restart wazuh-indexer

La dashboard Wazuh non è necessaria in un deployment ARGOS (la console SOC è ARGOS, che interroga OpenSearch direttamente). Su 8 GB conviene disabilitarla:

sudo systemctl disable --now wazuh-dashboard

A.4 Credenziali e verifica servizi

sudo tar -xf wazuh-install-files.tar
sudo grep -E "indexer_(username|password)" wazuh-install-files/wazuh-passwords.txt
sudo systemctl --no-pager status wazuh-indexer wazuh-manager filebeat | grep -E "●|Active:"

A.5 Verifica binding indexer

L'all-in-one imposta di norma network.host sull'IP privato. Controlla:

grep -E "network.host|network.publish_host" /etc/wazuh-indexer/opensearch.yml
sudo ss -ltnp | grep 9200

Solo se NON è l'IP privato né 0.0.0.0, correggi e riavvia:

sudo sed -i 's/^network.host:.*/network.host: "172.25.0.4"/' /etc/wazuh-indexer/opensearch.yml
sudo systemctl restart wazuh-indexer

Se UFW è attivo (su Azure di norma è spento, il controllo è l'NSG):

sudo ufw allow from 172.25.0.5 to any port 9200 proto tcp

Parte B — Installazione ARGOS (VM 172.25.0.5)

B.1 Network Security Group (Azure)

RG=il-tuo-resource-group
NSG=nsg-argos
MY_OFFICE_IP=203.0.113.5

# Console ARGOS :443 dal tuo IP ufficio
az network nsg rule create -g $RG --nsg-name $NSG -n allow-console \
  --priority 200 --access Allow --protocol Tcp --direction Inbound \
  --source-address-prefixes $MY_OFFICE_IP --destination-port-ranges 443

# Web installer :8888 TEMPORANEO (il setup la richiude da solo a fine wizard)
az network nsg rule create -g $RG --nsg-name $NSG -n allow-installer-temp \
  --priority 210 --access Allow --protocol Tcp --direction Inbound \
  --source-address-prefixes $MY_OFFICE_IP --destination-port-ranges 8888

# SSH dal solo IP admin
az network nsg rule create -g $RG --nsg-name $NSG -n allow-ssh-admin \
  --priority 220 --access Allow --protocol Tcp --direction Inbound \
  --source-address-prefixes $MY_OFFICE_IP --destination-port-ranges 22

B.2 Bootstrap (one-liner)

Su Ubuntu 24.04/26.04 LTS vergine:

curl -fsSL https://repo.argosdefense.io/tecnotel/argos-setup/raw/branch/main/bootstrap.sh | sudo bash

Il bootstrap scarica il repository, esegue first-setup.sh (pacchetti, utente argos, cartelle /opt/argos, firewall, nginx temporaneo) e avvia il Web Installer su http://172.25.0.5:8888.

Installazione manuale equivalente:

sudo apt update && sudo apt install -y git
git clone https://repo.argosdefense.io/tecnotel/argos-setup.git /opt/argos-setup-pkg
cd /opt/argos-setup-pkg && sudo bash first-setup.sh

B.3 Web Installer — wizard in 6 step

Apri http://172.25.0.5:8888 e segui:

  1. Licenza ARGOS — il wizard mostra il machine_id della VM. Invialo a Tecnotel, ricevi license.json, caricalo.
  2. Informazioni cliente (nome, dominio, logo, contesto AI opzionale).
  3. Rete & SSL (hostname/FQDN, certificato: Let's Encrypt / caricamento / autofirmato — per una VM in VNet senza DNS pubblico usa autofirmato).
  4. SIEM (OpenSearch) — punta all'indexer Wazuh sull'IP privato:
    • URL: https://172.25.0.4:9200
    • Utente: admin
    • Password: quella recuperata in A.4
  5. Utente admin della console ARGOS.
  6. Riepilogo & Installazione — il wizard clona il repository privato tecnotel/argos con il token della licenza, crea il virtualenv, configura i servizi systemd (argos-backend/sync/ops/analytics/updater) e avvia ARGOS.

Al termine il Web Installer si disattiva da solo e la porta 8888 viene chiusa. Puoi rimuovere la regola NSG temporanea allow-installer-temp.


Verifica end-to-end

Dalla VM ARGOS, prima del wizard puoi già validare la rete verso il SIEM:

curl -k -u admin:'LA_PASSWORD' https://172.25.0.4:9200
curl -k -u admin:'LA_PASSWORD' "https://172.25.0.4:9200/_cat/indices/wazuh-alerts-*?v"

La prima deve restituire il JSON con cluster_name; la seconda elenca gli indici wazuh-alerts-* (o segnala che non ce ne sono ancora — normale su un SIEM appena nato).

A ARGOS installato, la console su https://172.25.0.5 deve mostrare i conteggi eventi dal SIEM: è la conferma che backend ↔ indexer comunicano.


Opzioni certificato SSL (console ARGOS)

  • Let's Encrypt — automatico, richiede DNS pubblico già puntato alla VM.
  • Certificato esistente — caricamento .crt + .key (es. wildcard aziendale, CA interna).
  • Autofirmato — RSA 4096, validità 10 anni, consigliato per VM in VNet senza DNS pubblico. I browser segnaleranno il certificato come non attendibile (atteso).

Hardening consigliato (post bring-up)

  • Utente OpenSearch dedicato ad ARGOS con permessi limitati (read su wazuh-alerts-*, write su argos-alerts-enriched-*) al posto dell'admin globale.
  • Normalizzazione data.argos.* sul Wazuh manager (decoder + regole canoniche) per i log dei tuoi apparati (FortiGate, Cisco, ESET): è il cuore dell'architettura ARGOS lato SIEM.
  • Backup di /opt/argos/config e /opt/argos/data (la console ARGOS include Backup & Restore dei file di configurazione).

Contenuto del repository

File Scopo
bootstrap.sh One-liner installer: scarica il repo e avvia first-setup.sh
first-setup.sh Installer ambiente base: sistema, utenti, firewall, nginx temp, avvia wizard web
setup_server.py Backend Python del Web Installer (porta 8888, self-contained)
setup.html Frontend del Web Installer — wizard in 6 step

Repository correlati

  • tecnotel/argos — codice runtime di ARGOS SOC (privato, accessibile solo con licenza).

Requisiti (sintesi)

  • Ubuntu 24.04 LTS o 26.04 LTS (verificato dallo script).
  • Accesso root (sudo).
  • VM ARGOS: connettività in uscita verso repo.argosdefense.io e license.argosdefense.io; raggiungibilità dell'indexer Wazuh su :9200 (IP privato, VNet).
  • Wazuh: serie corrente su packages.wazuh.com (4.14 al momento).

Versioning

Questo repository segue lo stesso schema di versioning di argos (SemVer tag vX.Y.Z).