Vai al contenuto

Inventario Macchine, Risorse e Servizi

Questo documento descrive in dettaglio la dotazione hardware/virtuale, i container in esecuzione, i servizi di rete e le porte di ciascun nodo che compone l'infrastruttura MDM.


1. Mappa Globale delle Macchine Virtuali (Host Netsons "la 229")

Tutte le VM sono ospitate sull'hypervisor Proxmox VE (185.31.66.229:8006).

VMID Nome VM OS / Tipo vCPU RAM Disco IP LAN (vmbr1) IP VPN / WAN Ruolo Principale
101 pFSense FreeBSD 4 8 GB 10 GB 170.10.0.1 WAN 185.31.66.187 + Alias Firewall perimetrale, router NAT, terminatore VPN WireGuard
500 ServerIT Ubuntu Linux 16 16 GB 200 GB 170.10.0.108 VPN 172.16.16.253 / WAN .185 PRODUZIONE CORE: Midserver API, Database, MQTT, Video OME, eWeLink
200 MidServerDEV Ubuntu Linux 4 8 GB 100 GB 170.10.0.107 VPN 172.16.16.252 / WAN .187 SVILUPPO / STAGING: Coolify 4.5.0, Traefik, stack Monitoring
102 FreePBXnew Linux Asterisk 4 8 GB 100 GB 170.10.0.101 WAN 185.31.66.186 Centralino VoIP SIP per trombe acustiche e annunci audio
105 OP4 Windows 8 8 GB 50 GB 170.10.0.204 — Postazione di servizio remota per client proprietari
400 Server Linux 16 32 GB 300 GB 170.10.0.100 (disatt.) VPN 172.16.16.254 SPENTA / INUTILIZZATA: Ex VM dev da eliminare per liberare risorse

2. Dettaglio VM 101 — pfSense (Firewall & Gateway)

  • Versione: pfSense Community Edition 2.8.1 (FreeBSD).
  • Interfaccia di Gestione: WebGUI HTTP su http://172.16.16.1/ (raggiungibile solo da VPN).
  • Pacchetti Attivi: pfBlockerNG, WireGuard.
  • Interfacce Assegnate:
  • vtnet0 → vmbr0 (WAN, IP 185.31.66.187 con Virtual IP 185.31.66.185 e 185.31.66.186).
  • vtnet1 → vmbr1 (LAN, IP 170.10.0.1/24, router di default per le VM).
  • tun_wg0 → Interfaccia WireGuard WG_VPN (172.16.16.1/24, porta UDP 51420).
  • tun_wg1 → Interfaccia WireGuard WG_STS_CAVA (171.16.16.1/24, porta UDP 51421).
  • Servizi e Daemon:
  • dpinger (monitoraggio gateway).
  • pf (packet filtering e NAT table).
  • wireguard-go / kernel module (terminazione tunnel VPN).

3. Dettaglio VM 500 — ServerIT (Midserver di Produzione)

  • Sistema Operativo: Ubuntu Server, utente di riferimento bsqsecurity.
  • Risorse Impegnate: Risorse ampiamente sovradimensionate (16 vCPU, 16 GB RAM di cui solo ~2 GB utilizzati, load average costantemente prossimo a 0.00; disco da 200 GB con ~80 GB occupati).
  • Networking:
  • LAN: 170.10.0.108 (interfaccia ens18).
  • VPN: Mappata 1:1 come 172.16.16.253 (tutte le porte aperte verso la VPN).
  • WAN: Raggiungibile da internet via NAT sull'IP pubblico 185.31.66.185.

Stack Software Docker Compose

I servizi sono raggruppati principalmente in due stack Docker Compose:

Stack 1: qalarm_internal_new (~/mdm_mid_server/docker-compose.yml)

Nome Container Immagine Docker Porta Host Esposizione WAN (.185) Esposizione VPN (.253) Funzione Sistemistica
nginx_proxy_manager jc21/nginx-proxy-manager:latest 80, 81, 443 80, 443 Sì (tutte) Reverse proxy SSL pubblico; interfaccia admin su porta 81.
midserver mid-server:2.2.0 (Flask locale) 5000 No Sì (utilizzata dai box) API di gestione stato e registrazione box impianti.
panel ECR mdm_panel:1.8.0 3000 Via NPM (80/443) Sì Web application di controllo accessibile dagli operatori.
celery_worker build locale — No No Worker asincrono per task di background.
msql_container mysql:8.0.32 3306 No Sì (aperta su VPN) Database MySQL q_alarm_mid (tabelle installations, new_installations).
qalarm_internal_new-redis-1 redis:latest 6379 No Sì (aperta su VPN) Cache e stream eventi (event_stream). Volume anonimo su /data.
mosquitto eclipse-mosquitto:latest 1883 No Sì (utilizzata dai box) Broker MQTT per la telemetria e i comandi dei box clienti.
ome airensoft/ovenmediaengine:latest Host network 3333, 3334, 3478, 9999, 9000-10004 Sì Server di ingest e streaming video a bassissima latenza WebRTC.
qalarm_internal_new-phpmyadmin-1 phpmyadmin:latest 7070 No Sì (aperta su VPN) Interfaccia web di gestione database MySQL.
Nome Container Immagine Docker Porta Host Esposizione WAN Esposizione VPN Funzione Sistemistica
ewelink_integration-ewelink-1 build locale 8080 No Sì (aperta su VPN) Server di integrazione e watchdog con i relè domotici Sonoff (apertura cancelli, luci, reset apparati).

4. Dettaglio VM 200 — MidServerDEV (Coolify di Sviluppo)

  • Sistema Operativo: Ubuntu Server, IP LAN 170.10.0.107, IP WAN 185.31.66.187, IP VPN 172.16.16.252.
  • Piattaforma: Coolify 4.5.0 con reverse proxy Traefik v3.6 e certificati automatici Let's Encrypt (HTTP challenge).
  • Dashboard: https://coolify.dev.bsqdev.uk.
  • Servizi Ospitati:
  • MDM Midserver v3 (FastAPI, porta interna 5005, esposta come mdm.dev.midserver.bsqdev.uk).
  • MDM Midpanel Dev (porta 3000 esposta come mdm.dev.midpanel.bsqdev.uk).
  • qAlarm Backend & Worker (FastAPI, Socket.IO, esposto come mdm.dev.qalarm.backend.bsqdev.uk).
  • qAlarm Frontend (React Vite, esposto come mdm.dev.qalarm.panel.bsqdev.uk).
  • Stack Monitoring Dev (repository monitoring):
    • Grafana: https://mdm.dev.monitoring.bsqdev.uk
    • Loki: Ingest dei log applicativi
    • Tempo: Distributed tracing
    • Prometheus & Redis Exporter: Raccolta metriche prestazionali
    • Alertmanager: Notifiche Telegram (attivo solo per l'ambiente di dev)

5. Dettaglio VM 102 — FreePBXnew (Centralino Trombe Acustiche)

  • Sistema Operativo: Linux PBX (Asterisk engine + GUI FreePBX).
  • Networking: IP LAN 170.10.0.101, esposto su WAN tramite NAT su 185.31.66.186.
  • Porte VoIP:
  • SIP Signaling: TCP/UDP 5060, 5160, 5161.
  • WebRTC / WS: TCP 8088, 8089.
  • RTP Media Stream: UDP 10000-40000.
  • Funzione Operativa:
  • Gestisce 106 interni telefonici SIP (ciascuno associato a un altoparlante IP o tromba installata presso un cliente).
  • Consente agli operatori della centrale di parlare in tempo reale presso l'impianto in caso di allarme o intrusione ("piano B" vocale in caso di guasto dei flussi dati/video).
  • Tutte le comunicazioni vocali sono forzate alla registrazione locale (Force recording).
  • Uno script cron giornaliero esegue la sincronizzazione e il salvataggio dei file audio WAV verso il bucket AWS S3 videosorveglianzasync/registrazioni-audio/.

6. Dettaglio Box Impianti Clienti (Edge Mini PC)

Presso ciascuno dei circa 66 impianti attivi è installato un Mini PC industriale con sistema operativo Ubuntu Linux, collegato alla LAN locale del cliente e interconnesso alla sede centrale tramite WireGuard.

Componenti di Rete e Servizi Attivi sul Box

  1. Client WireGuard (wg-quick@MyVPN):
  2. Indirizzo IP fisso assegnato nel blocco 172.16.16.x/24.
  3. Connesso verso receiver1.protexia24.com:51420.
  4. Script di watchdog in crontab ogni 5 minuti (/var/www/html/controls/vpn.sh).
  5. Listener TCP di Presenza (Porta 2000):
  6. Servizio systemd port-2000-listener.service basato su socat.
  7. Mantiene una porta di ascolto passiva aperta per consentire agli script di monitoraggio della centrale di verificare che il box sia operativo e raggiungibile.
  8. Nginx Proxy Manager Locale (Docker):
  9. GUI locale sulla porta 81 (raggiungibile via VPN).
  10. Inoltro stream TCP (porte 10101-10105) verso la porta dati (tipicamente 8000 per Hikvision/Safire o 80/554 per Uniview) dell'NVR/DVR locale del cliente, per consentire alla centrale di prelevare i flussi video.
  11. Modulo di Rilevamento Video (Detector Docker):
  12. Istanza Frigate o modulo software GANZ. Elabora i flussi RTSP locali delle telecamere, applica modelli di computer vision (rilevamento persone/veicoli) e invia gli eventi allarme verso il midserver o via webhook verso la centrale.
  13. API Box (Porta 5005):
  14. Espone endpoint REST per l'inserimento/disinserimento dell'impianto e per la lettura dello stato operativo da parte della centrale e dell'app mobile.

7. Apparati della Sede Centrale (Cava de' Tirreni)

  • Firewall Perimetrale Ufficio: IP VPN 171.16.16.100. Termina il tunnel site-to-site WG_STS_CAVA e fa da gateway per tutte le postazioni operative, i PC del personale tecnico e i server locali.
  • NAS QNAP (10,8 TB): Condivisione NFS montata direttamente dall'host Proxmox a Milano per il deposito dei backup completi delle macchine virtuali.
  • Raspberry Pi "Michele" (192.168.200.220):
  • Ospita il database MySQL system_controls.
  • Esegue script periodici di polling ICMP/TCP su 18 endpoint (server Netsons, servizi critici, connettività degli impianti).
  • Invia alert di stato sul gruppo Telegram dedicato "Controllo Infrastrutture".
  • Gestisce il pulsante/relè di sicurezza "uomo a terra" per la vigilanza notturna dell'operatore di centrale.