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, IP185.31.66.187con Virtual IP185.31.66.185e185.31.66.186).vtnet1→vmbr1(LAN, IP170.10.0.1/24, router di default per le VM).tun_wg0→ Interfaccia WireGuardWG_VPN(172.16.16.1/24, porta UDP 51420).tun_wg1→ Interfaccia WireGuardWG_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(interfacciaens18). - 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. |
Stack 2: ewelink_integration (~/ewelink_integration/compose.yaml)¶
| 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 WAN185.31.66.187, IP VPN172.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)
- Grafana:
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 su185.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¶
- Client WireGuard (
wg-quick@MyVPN): - Indirizzo IP fisso assegnato nel blocco
172.16.16.x/24. - Connesso verso
receiver1.protexia24.com:51420. - Script di watchdog in crontab ogni 5 minuti (
/var/www/html/controls/vpn.sh). - Listener TCP di Presenza (Porta 2000):
- Servizio systemd
port-2000-listener.servicebasato susocat. - Mantiene una porta di ascolto passiva aperta per consentire agli script di monitoraggio della centrale di verificare che il box sia operativo e raggiungibile.
- Nginx Proxy Manager Locale (Docker):
- GUI locale sulla porta 81 (raggiungibile via VPN).
- 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.
- Modulo di Rilevamento Video (Detector Docker):
- 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.
- API Box (Porta 5005):
- 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-siteWG_STS_CAVAe 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.