Afin de déchiffrer les backups de Proxmox chiffrées, un script est présent sur Bob et Alice appelé unencrypt_backup.py.
Il est codé en Python et utilisable avec Python3 ou version supérieure.
Ce script nécessite l’installation du module Python Python-Gnupg en version 0.42 ou au dessus.
pip install python-gnupg
Gnupg doit également être installé.
Afin de pouvoir déchiffrer les snapshots, il est nécessaire d’exporter la clé privée correspondante à la clé publique qui a permis de chiffrer le snapshot. Cette étape devrait être faite avant même de commencer à chiffrer les snapshots. En effet, en cas de crash de l’hyperviseur avec une impossibilité de récupérer les données dessus, la clé privée serait alors rendue illisible et il ne sera alors plus possible de restaurer une machine virtuelle à partir d’un snapshot chiffré.
Pour pouvoir exporter la clé privée, il faut récupéré l’ID de la paire de clés. On utilise pour cela la commande :
gpg --list-keys
L’identifiant de la clé correspond à la deuxième ligne de la section “pub”. Dans la capture d’écran ci-dessus, il vaut : 14C48AF5EB27C44FFB32BDA5251A2C40F37D5633
On récupère donc cette identifiant, et on l’insère dans la commande :
gpg --export-secret-keys -a 14C48AF5EB27C44FFB32BDA5251A2C40F37D5633 > private.key
Le fichier private.key contient la privée. On peut maintenant l’importer sur la machine où va s’effectuer le déchiffrement :
gpg --import private.key
Le script prend un paramètre en entrée le chemin relatif vers une archive .tar contenant la backup chiffrée, telle que produite par le hook-script de Proxmox
python3 unencrypt_backup.py backups/Bob-vzdump-qemu-105-2018_05_23-04_03_16.vma.gz.tar
Une fois lancé, le script demande aussi à l’utilisateur de rentrer la passphrase utilisée pour chiffrer la backup.
Afin de restaurer une VM chiffrée par Proxmox, il est nécessaire de se connecter par SSH à la machine dont on veut restaurer une VM. Si elle est déchiffrée, il n’est pas nécessaire de se connecter, et tout peut s’effectuer depuis l’interface de Proxmox : https://alice.picasoft.net:8006 ou https://bob.picasoft.net:8006
Les étapes suivantes ne sont nécessaires que dans le cas de l’utilisation d’une backup chiffrée.
Cette étape n’est nécessaire que dans le cas où la backup à restaurer est chiffrée. Copiez si nécessaire le backup chiffré de votre machine à la machine concernée par la restauration de backup.
scp ~/backup_chiffree root@alice.picasoft.net:/SAVE/dump
Les backups récupérables depuis Alice et Bob sont chiffrées, et nécessitent d’être déchiffrées avant de pouvoir être utilisées. Le script de déchiffrement unencrypt_backup.py est disponible sur chacune des machines à l’emplacement ~/scripts.
Afin de déchiffrer le backup, utilisez-le comme ceci :
./unencryptbackup.py cheminverslebackup_chiffré
Déplacez la VM de son emplacement actuel vers le dossier suivant :
mv backup /SAVE/dump/
Renommez le fichier pour correspondre au format suivant : vzdump-qemu-<Numéro VM>-<ANNEE><MOIS><JOUR>-<HEURE><MINUTES><SECONDES>.vma.gz (retirez le nom de la machine inclue en début du nom du fichier)
mv Bob-vzdump-qemu-105-20180613-040338.vma.gz . vzdump-qemu-105-20180613-040338.vma.gz
Cette étape est nécessaire pour que Proxmox interprète correctement le fichier traité comme une backup effectuée par Proxmox.
Connectez-vous à Proxmox à l’URL https://alice.picasoft.net:8006 (pour Alice) ou https://bob.picasoft.net:8006 (pour Bob)
Sélectionnez la backup à restaurer dans la liste. Si elle n’apparaît pas, vérifiez que le nom du backup sur la machine soit localisée dans le dossier suivant : /SAVE/dump et avec le format de nom suivant : vzdump-qemu-<Numéro VM>-<ANNEE><MOIS><JOUR>-<HEURE><MINUTES><SECONDES>.vma.gz