Se hai mai usato MySQL, è probabile che tu abbia eseguito dei backup del tuo database. Se hai eseguito i backup del tuo database, è probabile che almeno una volta abbia pensato a come proteggerli. In questo post del blog ti diremo come fare esattamente questo.
Perché dovresti proteggere i tuoi backup MySQL?
Prima di dirti come proteggere i tuoi backup MySQL, dovremmo probabilmente dirti perché dovresti proteggerli in primo luogo. Cosa intendiamo anche per "proteggere" i tuoi backup MySQL? I backup MySQL dovrebbero essere sicuri per impostazione predefinita, giusto? Sfortunatamente, non tutto è così semplice come sembra. Per eseguire e mantenere backup MySQL sicuri, dovresti considerare quanto segue:
-
Fai i tuoi backup MySQL in modo sicuro
-
Archivia in modo sicuro i tuoi backup MySQL
-
Trasferisci in modo sicuro i tuoi backup MySQL
Ora ovviamente è più facile a dirsi che a farsi, ma forniremo alcuni consigli generali che possono guidarti nella giusta direzione.
Protezione dei backup MySQL
-
Per eseguire in modo sicuro i backup di MySQL utilizzando, ad esempio, mysqldump, considera di inserire il nome utente e la password del tuo Utente MySQL all'interno di my.cnf. Puoi persino creare un file .my.cnf nella tua home directory, memorizzare lì il nome utente e la password, quindi utilizzare l'opzione --defaults-extra-file per dire a MySQL di leggere questo file dopo il file delle opzioni globali:
[mysqldump] user=demo_user password=demo_password
In questo modo non è più necessario fornire la tua password MySQL durante l'esecuzione di mysqldump:inserendo il tuo nome utente e password all'interno di my.cnf rendi la tua password non osservabile a chiunque altro tranne che ai DBA.
-
Considera di dare un'occhiata a mysqldump-secure:è uno script wrapper conforme a POSIX per mysqldump con funzionalità di crittografia. Lo strumento può eseguire il backup dei database come file separati. I database possono anche essere inseriti nella lista nera dal backup. Lo strumento può anche crittografare i tuoi database MySQL ed è anche autovalidante, il che significa che se qualcosa va storto, ti dirà cosa è successo e come risolverlo, quindi se stai cercando un'alternativa a mysqldump, considera sicuramente di dargli un prova.
-
Dopo aver eseguito un backup delle istanze del database MySQL o MariaDB, considera la crittografia. È probabile che i dati siano una delle risorse più preziose per la tua organizzazione e crittografandoli puoi assicurarti che siano protetti correttamente. Per fortuna, la crittografia dei backup MySQL non è molto complessa e può essere eseguita in un paio di modi, inclusa la crittografia del file locale e la crittografia del backup al volo. Per crittografare una copia locale del backup, è sufficiente eseguire un backup dei dati archiviati in MySQL, quindi crittografarlo utilizzando, ad esempio, OpenSSL (sostituisci la password con la password che desideri utilizzare):
$ openssl enc -aes-256-cbc -salt -in backup.tar.gz -out backup.tar.gz.enc -k password
Il tuo backup può essere decrittografato eseguendo:
$ openssl aes-256-cbc -d -in backup.tar.gz.enc -out backup.tar.gz -k password
Puoi anche considerare di crittografare i tuoi backup al volo. Per fare ciò, in generale è necessario implementare la crittografia durante la generazione del backup (ovvero generare il backup, comprimerlo e crittografarlo). Ecco come farlo per MySQL usando mysqldump (il tuo backup si chiamerebbecrypt_backup.xb.enc):mysqldump --all-databases --single-transaction --triggers --routines | gzip | openssl enc -aes-256-cbc -k password > encrypted_backup.xb.enc
Puoi anche crittografare i tuoi backup utilizzando ClusterControl:seleziona semplicemente le caselle "Usa compressione" e (o) "Abilita crittografia" nell'ultima fase del backup e il gioco è fatto . Sì, è così facile!
Potresti anche dare un'occhiata a uno script di shell chiamato mysql_secure_installation (o mariadb_secure_installation se stai usando MariaDB). Lo script ti consente di:
-
Imposta una password per gli account root di MySQL.
-
Rimuovi gli account root accessibili dall'esterno del localhost.
-
Rimuovi eventuali account utente anonimi e il database di test a cui possono accedere utenti anonimi.
Se stai implementando MySQL o MariaDB utilizzando ClusterControl, cosa che puoi fare liberamente con la Community Edition, il processo di distribuzione si occupa automaticamente di queste misure di sicurezza.
Riepilogo
Quando si tratta di proteggere i backup di MySQL, l'elenco delle cose che puoi fare è piuttosto lungo. Ci auguriamo che questo post del blog ti abbia dato alcune idee su cosa puoi fare per proteggere i tuoi backup MySQL o MariaDB:in generale, i backup possono essere protetti rendendo la tua password non osservabile quando viene invocato mysqldump, anche quando crittografa i tuoi backup localmente o su- al volo.