J'ai un script qui crée une sauvegarde nocturne de plusieurs répertoires.
Il est créé à l'aide de tar -czf
et le chemin du fichier tar.gz de destination se trouve sur un répertoire réseau monté. Le fichier résultant est d'environ 1,2 Go de grande taille.
La vitesse du réseau est relativement rapide (la copie du lecteur réseau vers le local se produit à environ 28 Mo / s).
Maintenant, je souhaite utiliser le chiffrement à clé publique pour chiffrer le fichier tar.gz avant de le transférer sur le lecteur réseau. J'aimerais également savoir quel est le meilleur moyen de le faire.
Dois-je d'abord créer le fichier localement, le chiffrer puis le copier? Ou existe-t-il un moyen de "diffuser" la sortie de tar via un processus de cryptage et d'écrire les résultats directement sur le lecteur réseau?
la source
tar xz
dans le deuxième ensemble de commandes devrait être à latar -xz
place?-
z
option ajoute beaucoupLe processus suivant chiffre d’abord le fichier sur le disque local et peut ensuite être envoyé sur le réseau (ou stocké selon les besoins)
Commencez par générer des clés publiques et privées (une seule fois):
Ensuite, à chaque sauvegarde:
Générer une phrase de passe longue et aléatoire, enregistrer dans un fichier
echo -n "Tl4R6dnvWXiDeXr1LtpCNkyLG1" > key.txt
crypter le fichier avec passephase
openssl enc -aes-256-cbc -pass file:key.txt < UNENCRYPTED_FILE > encrypted.dat
chiffrer la phrase secrète avec la clé publique
openssl rsautl -encrypt -pubin -inkey key-public.pem < key.txt > enc.key.txt
Enregistrez ensuite encrypted.dat AND enc.key.txt où vous le souhaitez.
Décrypter:
Déchiffrer la phrase secrète chiffrée avec une clé privée
openssl rsautl -decrypt -inkey key.pem < enc.key.txt > key.txt
Déchiffrer le fichier
openssl enc -aes-256-cbc -d -pass file:key.txt < encrypted.dat > UNENCRYPTED_FILE
C'est beaucoup plus long que la réponse de Florian, mais j'ai décidé de l'utiliser pour mieux comprendre le processus, sans dépendre de variables de configuration GPG dépendantes du serveur, etc. Je n'ai pas trouvé non plus de documentation GPG utile.
la source
openssl rand 32 -out key.txt
Je le fais avec un cryptage à clé asymétrique. Cela signifie que j'ai une clé publique (que je peux partager avec tous ceux que je souhaite envoyer, des paquets chiffrés) qui me permet de chiffrer le paquet. J'ai aussi une clé privée (que je ne partage pas) qui me permet de déchiffrer le paquet.
Mes commandes pour chiffrer le répertoire de travail actuel: le -e pour chiffrer, le -r pour spécifier un "destinataire" ou une clé à utiliser, le -o pour spécifier le fichier de sortie.
Et pour déchiffrer le répertoire de travail actuel:
Ou pour déchiffrer un fichier tgz standard pour un décompactage ultérieur:
Bien sûr, cela ne fonctionne que si j'ai déjà généré une paire de clés public-privé et que je l'ai installée avec gpg. Dans mon cas, je l'ai fait en utilisant le guide de Digital Ocean à l' adresse https://www.digitalocean.com/community/tutorials/how-to-use-gpg-to-encrypt-and-sign-messages-on-an-ubuntu -12-04-vps . Le code ABCD1234 dans la commande de chiffrement fait référence à l’une des clés publiques installées sur mon système. Ce guide explique également comment partager votre clé publique et installer les clés publiques d'autres utilisateurs pour envoyer et recevoir des fichiers cryptés.
la source
GnuPG est ce que j'ai choisi d'utiliser pour ce processus et parce que vous avez déclaré que les étapes de déchiffrement étaient opaques (je suis d'accord avec cette instance d'utilisation), j'ai également travaillé sur ce côté du problème. Consultez les journaux de génération Travis-CI des projets pour connaître les fonctionnalités qui fonctionnent actuellement telles que conçues et le fichier travis.yml à suivre, ainsi que la sortie des journaux. Fondamentalement, vous aurez besoin de trois scripts de ce projet; le script keygen, le script d'assistance au déchiffrement et le script d'écoute de canal nommé. Le script keygen script & assistant de décryptage doit être utilisé sur le périphérique qui effectuera le décryptage et le script d'écoute de canal nommé doit figurer sur le périphérique effectuant le cryptage.
Le script d’écoute de canal nommé de chiffrement accepte les chaînes, les chemins de fichier ou les chemins de répertoire une fois l’installation terminée et génère les résultats chiffrés de manière prévisible.
Vous trouverez ci-dessous des exemples de commandes pouvant être placées dans votre script de sauvegarde nocturne pour le chiffrement et la compression de répertoires + le chiffrement.
Pour le décryptage, vous voudrez vérifier comment les scripts de génération
.travis-ci/script_decrypt.sh
et.travis-ci/test_search_script_decrypt.sh
comment les chaînes de données cryptées ajoutées sont récupérées et comment les fichiers / répertoires en bloc sont restaurés.Bien sûr, avec ce matériel expérimental, il est préférable de ne pas utiliser de clé primaire (ce qui explique pourquoi le script keygen a été écrit) et il ne devrait pas être utilisé sur des données importantes tant que vous ne saurez pas comment le restaurer sous forme lisible.
la source