Un backup protegge da tutto ciò con cui non condivide la sorte. Sullo stesso disco sopravvive a un file cancellato ma non a un disco guasto. Sullo stesso server sopravvive a un disco guasto ma non a un account violato. La domanda è sempre: con che cosa condivide la sorte questa copia?

Tre-due-uno, detto chiaro

  • Tre copie — quella in servizio e due backup.
  • Due tipi di supporto — non due cartelle sullo stesso disco.
  • Una altrove — un'altra macchina, e possibilmente un altro fornitore.

«Altrove», in ordine di quanto protegge

  • Un altro disco dello stesso server — da un disco guasto, e da nient'altro.
  • Un altro server dello stesso fornitore — da un server guasto. Non da una sospensione dell'account, non da un errore commesso con un accesso che copre l'intero fornitore.
  • Un fornitore del tutto diverso — tutto quanto sopra, più il giorno in cui è l'account stesso il problema.
Se la violazione del tuo server può cancellare anche i backup, quei backup non sono una difesa contro una violazione. La destinazione dei backup dovrebbe essere di sola scrittura dal server: può aggiungere, non può togliere.

La sola scrittura, in pratica

# object storage with an append-only policy, or
# a pull model: the BACKUP server connects to the site and takes a copy,
# so the site never holds credentials that can delete anything

Il modello in cui è la destinazione ad andare a prendere è il più solido e il meno usato: nulla sul server web raggiunge i backup, quindi nulla di ciò che accade lì può toccarli.

Cifrala, e tieni la chiave altrove

gpg --symmetric --cipher-algo AES256 backup.tar.gz
Una chiave conservata soltanto sul server che è morto non è una chiave. Scrivila e tienila in un posto che non abbia nulla a che vedere con quel server.
Prova espressamente la copia fuori sede. Quella locale di solito funziona; quella remota è quella da cui non ha mai ripristinato nessuno.