Aller au contenu

[RESOLU] Fichiers de sauvegardes MySQL


Messages recommandés

Je commence à utiliser MySQL comme base de données, et je suis entrain de me rendre compte que les fichiers de sauvegardes sont en texte clair !

Est-ce qu'il y a un moyen de faire une sauvegarde "sécure" ?

Présentement j'ai essayé de faire les sauvegardes avec mysqldump et via l'interface Webmin qui me donne des cédules programmables. Au niveau du fichier de sauvegarde (*.sql) c'est pareil avec ces 2 méthodes.

Est-ce que quelqu'uyn aurait un petit script (batch) fonctionnel qui me permettrait de faire la sauvegarde et peut-être la compresser avec ZIP ou TAR/GZIP en ajoutant un mot de passe sur le fichier compressé au minimum ?

Merci

Lien vers le commentaire
Partager sur d’autres sites

Tu peux la compresser avec gzip (gzip file.dump), et ensuite la crypter avec l'utilitaire de ton choix. Par exemple GPG si tu veux faire du cryptage asymétrique (cad si tu veux l'envoyer à quelqu'un d'autre), mais tu peux utiliser blowfish si tu veux juste protéger par un mot de passe.

Allez, je suis sympa, je t'évite le man de openssl (qui est chiant, faut le dire), voilà la commande :

openssl bf-cbc -e -a -salt -in "fichier.dump"

Et pour décrypter :

openssl bf-cbc -d -a -in "fichier.dump"

Ces deux commandent envoient le résultat sur la sortie standard, donc tu peux soit le rediriger, soit utiliser l'option -out pour l'envoyer dans un fichier.

Lien vers le commentaire
Partager sur d’autres sites

Donc si j'ai plusieurs fichiers .sql à sauvegarder, je me place dans le bon dossier et je lance GZIP de cette façon:

gzip --best /serveur/backup/*

Pour ça c'est OK !

Et ensuite j'ajoute un mot de passe sur les fichiers avec Blowfish (...je ne connais pas Blowfish).

Je viens de trouver un RPM et je l'ai installé sans problème. C'est un module Perl d'après ce que je peux voir -> perl-Crypt-Blowfish-2.09-1.0.i386.rpm

Mais ça ne contient aucun fichier exécutable... ?

Est-ce que le simple fait d'avoir installé le package, OpenSSL reconnaitra le paramètre bf-cbc ?

OK désolé de mon hâte... j'ai essayé et effectivement OpenSSL reconnaît immédiatement Blowfish :cartonrouge:

Donc j'ai lancé comme cela:

openssl bf-cbc -e -a -salt -in "backup.sql.gz"

Là ça m'a demandé d'ajouter un mot de passe et de le confirmer et ensuite il est apparu une chaîne de caractère de ma clé d'encryption... Tout a bien l'air de s'être exécuté, mais si j'utilise VIM je peux très bien relire mon fichier de sauvegarde en texte clair...

Lien vers le commentaire
Partager sur d’autres sites

L'algorithme blowfish est déjà intégré à openssl. Il faut que tu rediriges la sortie de cette commande vers un autre fichier, par exemple backup.sql.gz.bf, ce qui donne

openssl bf-cbc -e -a -salt -in "backup.sql.gz" > backup.sql.gz.bf

C'est ce fichier-là qui est crypté. Ensuite tu peux virer l'ancien.

Lien vers le commentaire
Partager sur d’autres sites

Cool ! Ça marche bien.

Il ne reste qu'à me faire une petite cédule à toutes les nuits pour faire mon backup.

...et là j'ai un bug avec OpenSSL/Blowfish. Comme tu dis Gauret, les lignes de commandes de OpenSSL ne sont pas toujours évidentes. Est-ce qu'il y a moyen de passer le mot de passe en ligne de commande pour que l'exécution se fasse directement dans mon batch file ?

Merci

-----------------------------------------------

Petit résumé pour tout le monde:

1- Sauvegarde de la BD avec mysqldump

mysqldump -u user -ppassword mabasededonnee > backup.sql

2- Compression des données avec GZip pour prendre moins d'espace

gzip --best backup.sql

3- Encryption les données pour une meilleure sécurité avec OpenSSL

openssl bf-cbc -e -a -salt -in "backup.sql.gz" > backup.sql.gz.bf

*Ici faut inscrire un mot de passe qui sera encrypté

4- Décryption les données si besoin de restaurer

openssl bf-cbc -d -a -in "backup.sql.gz.bf" > backup.sql.gz

--------------------------------------------------

Lien vers le commentaire
Partager sur d’autres sites

Bon, là, lis quand même un peu les pages de man. Tu fais un man openssl, ça te donne la liste des modules, et ensuite un "man <module>" te donne toutes les infos. Dans ton cas c'est un "man enc", et la 3ème option décrite est justement "-pass"...

Par contre fais gaffe, si ton mot de passe est dans le script, tous ceux qui peuvent le lire vont pouvoir le récupérer.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...