← Tutte le competenze

06

Infrastruttura e sicurezza

Dove vivono i vostri dati, chi può vederli e cosa succede se qualcosa si rompe

La domanda che usiamo come metro è sempre la stessa: se questa macchina sparisse stanotte, quanto ci mettiamo a rifarla identica? Se la risposta è «dipende da cosa ci ricordiamo», l’infrastruttura non è finita.

Dal codice alla produzione
  1. Ricette versionateL’host nasce da un file nel repository, non da una sessione al terminale
  2. Reti separateUn cliente non vede la rete di un altro, e l’ingresso passa da un tunnel
  3. Credenziali in cassaforteGenerate al momento, a scadenza breve, mai copiate in un file
  4. RilascioStaccato dalla sessione remota e verificato subito dopo
  5. MonitoraggioPrima il rimedio automatico leggero, poi quello pesante, poi una persona
  6. Prova di ripristinoPeriodica, su un database usa e getta, con le protezioni ricontrollate

Macchine che si rifanno uguali

Ogni server nasce da ricette versionate, non da una sessione al terminale andata bene. Le procedure stanno nel repository accanto al codice che governano, e ogni scelta strutturale lascia scritto il perché.

Le operazioni distruttive hanno un comportamento dichiarato e ripetibile: rieseguire non deve fare danni, e questo va provato, non sperato.

Il confine è la rete, non la buona fede

Separare i clienti a livello di rete costa più fatica che filtrarli nel codice, ma è l’unico livello che regge quando il codice sbaglia: reti dedicate per ogni cliente e ingresso attraverso un tunnel invece che con porte aperte su internet.

Le credenziali stanno in una cassaforte con certificati a scadenza breve: l’applicazione riceve chiavi generate al momento, non stringhe copiate in un file di configurazione.

Accorgersene prima del cliente

Metriche, controlli che sanno distinguere «acceso» da «funzionante», allarmi che scattano su sintomi utili invece che su ogni sfarfallio. Un allarme che suona sempre è un allarme spento.

Dove ha senso la reazione è automatica e graduale: prima il rimedio leggero, poi quello pesante, e se il problema si ripete si smette di insistere e si chiama una persona. Ogni tentativo resta scritto.

Backup che sappiamo ripristinare, prove che reggono

Un backup non verificato è un file. La prova di ripristino va automatizzata su un database usa e getta e deve controllare anche che le protezioni tornino su davvero — non che esistano, che funzionino.

Gli obiettivi di ripristino (quanto tempo, quanti dati) sono dichiarati per servizio e misurati con esercitazioni periodiche: un numero mai verificato è un desiderio, un numero uscito da una prova è un impegno.

Le stesse cose che tengono in piedi il sistema producono le prove per un audit: registro eventi in sola aggiunta, storico degli incidenti, report periodico. Se per fare una prova serve una persona che esporta a mano, quella prova arriverà tardi.

Dove mettiamo le macchine, e perché

Non esiste una risposta valida per tutti, ed è il motivo per cui non vendiamo una piattaforma sola. Il carico prevedibile di un gestionale usato da quaranta persone non ha bisogno dell’elasticità del cloud pubblico, e la paga comunque ogni mese. Un negozio online con picchi stagionali, invece, ne guadagna davvero.

La configurazione che vediamo funzionare più spesso è mista: posta e strumenti di collaborazione su servizi gestiti, gestionale e dati su macchine controllate, copie di sicurezza in un terzo posto che non dipende dai primi due. L’importante è che ogni pezzo sia una scelta consapevole e non un’eredità.

E che ci sia scritto perché sta lì: la maggior parte delle infrastrutture che troviamo non è stata progettata, si è stratificata.

Aggiornare senza fermare

I sistemi non aggiornati sono la porta d’ingresso più comune dopo le credenziali rubate. Ma aggiornare fa paura perché ogni volta qualcosa si rompe — e la paura, dopo un po’, produce macchine ferme a tre anni fa.

La strada è renderlo noioso: ambienti di prova identici alla produzione, aggiornamenti coordinati in una finestra dichiarata, una macchina alla volta con verifica dopo ciascuna, e la possibilità di tornare indietro in pochi minuti. Quando tornare indietro è facile, aggiornare smette di essere una scommessa.

Cosa vi consegniamo, oltre alle macchine

Un inventario di cosa esiste e a cosa serve. Le procedure operative per le cose che capitano: un disco pieno, un servizio che non riparte, un ripristino. Il piano di risposta agli incidenti con nomi e numeri, non ruoli generici.

E le credenziali, in una cassaforte che è vostra. È il punto su cui insistiamo di più: un’infrastruttura di cui non avete le chiavi non è vostra, per quanto bene sia costruita.

Con cosa la teniamo in piedi

Strumenti standard del settore, scelti perché altri sanno usarli. Ogni pezzo esiste per rispondere a una domanda precisa che vi verrà fatta il giorno di un problema.

  • Macchine

    • Proxmox
    • Docker
    • Kubernetes
    • colocazione o cloud

    Virtualizzazione su hardware dedicato dove il carico è stabile, contenitori per far girare le applicazioni sempre allo stesso modo, orchestrazione dove le istanze si moltiplicano davvero — e non prima, perché la complessità comprata in anticipo peggiora tutto.

  • Provisioning

    • Ansible
    • script versionati
    • cloud-init
    • decisioni scritte (ADR)

    Ogni host nasce da un file nel repository, non da una sessione al terminale andata bene. Se sparisce stanotte, domani ne esiste uno identico — ed è una cosa che proviamo, non che dichiariamo.

  • Rete e segreti

    • EVPN/VXLAN
    • tunnel Zero Trust
    • Vault
    • PKI interna
    • Consul

    I clienti sono separati a livello di rete e non solo di applicazione, l’ingresso passa da un tunnel invece che da porte aperte, e le credenziali sono generate al momento con scadenza breve invece di vivere in un file di configurazione.

  • Sorveglianza

    • Prometheus
    • Grafana
    • Wazuh
    • controlli di salute
    • riparazione automatica

    Metriche e allarmi su sintomi utili, agente di sicurezza su ogni macchina, e una reazione graduale: prima il rimedio leggero, poi quello pesante, poi una persona. Un allarme che suona sempre è un allarme spento.

  • Continuità

    • backup verificati
    • prove di ripristino
    • obiettivi dichiarati per servizio
    • alta disponibilità dove serve

    Le copie si ripristinano per prova su un ambiente usa e getta, e la prova verifica anche che le protezioni tornino attive — non solo che i dati ci siano. Gli obiettivi di tempo e di dati sono scritti per servizio e misurati.

Portfolio

Cosa abbiamo fatto, progetto per progetto, su questa competenza.

Orbitas

Cloud privato multi-cliente su hardware dedicato

  • Cluster Proxmox a tre nodi con reti separate per ogni cliente e ingresso via tunnel: nessuna porta di gestione aperta su internet.
  • Cassaforte delle credenziali con certificati interni, scoperta dei servizi e DNS interno; ricette Ansible per nodi di calcolo, uscita, cassaforte e aggiornamenti coordinati mensili.
  • Agente di sicurezza su ogni macchina virtuale con isolamento per cliente, rilevamento vulnerabilità e integrità dei file.
  • Riparazione automatica su tre livelli con interruttore di sicurezza, PostgreSQL in alta disponibilità, inventario della rete come fonte di verità.
  • Controlli ISO 27001 e misure NIS2 mappati su componenti reali, matrice degli obiettivi di ripristino, esercitazioni programmate e cruscotto cliente con punteggio, uptime e storico incidenti.
  • Proxmox
  • Ansible
  • PostgreSQL
  • Vault
  • Consul
  • Wazuh
  • Grafana

CocoonServer

Odoo multi-istanza su Kubernetes

  • Istanze isolate su Kubernetes con pacchetto di rilascio dedicato e instradamento gestito.
  • Volumi separati per moduli e template, così un aggiornamento del contenitore non porta via il lavoro fatto.
  • Raccolta periodica delle metriche e cruscotti per consumo e salute delle istanze.
  • Kubernetes
  • Helm
  • Traefik
  • PostgreSQL
  • Grafana

SOS Bollette

Continuità di un CRM multi-azienda

  • Prova di ripristino settimanale automatica: ricostruisce l’ultima copia su un database temporaneo, ne verifica l’impronta prima di toccare qualsiasi cosa e la cancella.
  • La prova non conta le protezioni: si collega come farebbe l’applicazione e verifica che non arrivi nessuna riga — l’unico controllo che smaschera un ripristino andato storto in silenzio.
  • Nessun comando può sovrascrivere il database in uso: il ripristino ne crea uno nuovo.
  • PostgreSQL
  • cron
  • verifica dell’impronta
  • prove di ripristino

BigFishIta

Questo sito, in produzione su server dedicato

  • Contenitori per applicazione, database, proxy con certificati automatici e automazioni sulla stessa macchina.
  • Rilascio staccato dalla sessione remota e verificato subito dopo; backup notturni di database e allegati con conservazione a scadenza.
  • Docker
  • Caddy
  • PostgreSQL
  • cron

Ti serve questo?

Raccontaci il problema e vi diciamo come lo affronteremmo — e se non è il caso di farlo, ve lo diciamo lo stesso.

Parliamone