Export des sauvegardes BackupPC sur disques externes USB chiffrés
backup-usb | ||
backuppcfs | ||
README.md | ||
run-bkp-usb | ||
udev-bkp-usb |
Export des sauvegardes BackupPC sur disques externes USB chiffrés
Installation
- Installer les dépendances :
apt-get install inoticoming cryptsetup beep libfuse-perl util-linux
-
mettre les fichiers suivant dans /usr/local/sbin :
-
backup-usb
-
backuppcfs
-
udev-bkp-usb
-
run-bkp-usb
-
créer les dossiers /mnt/backuppcfs et /mnt/usb :
mkdir /mnt/backuppcfs /mnt/usb
- créer le fichier /etc/udev/rules.d/99-bkp-usb.rules :
# A l'insertion du disque, lancement du script de backup
# Rechargement des regles udev manuellement si necessaire : `udevadm control --reload-rules`
# Exemple :
# Disk 1
# ACTION=="add", ENV{DEVTYPE}=="disk", ENV{ID_FS_UUID}=="41fc79d3-25fd-4424-9fc8-92479deead27", RUN+="/usr/local/sbin/udev-bkp-usb"
- lancer la commande :
udevadm control --reload-rules
- ajouter les lignes suivantes dans le fichier /etc/rc.local :
# Run backup on USB device detection (trigger by udev rule)
inoticoming --logfile /var/log/bkp-usb.log /var/run/ --stderr-to-log --stdout-to-log --regex '^bkp-usb-detected$' /usr/local/sbin/run-bkp-usb {} \;
-
lancer manuellement la commande inoticoming du fichier précédent (ou rebooter)
-
mettre en place la rotation du fichier de log en créant le fichier /etc/logrotate.d/backup-usb :
/var/log/bkp-usb.log {
rotate 7
weekly
compress
missingok
notifempty
}
Création du mot de passe de et la clé LUKS
pwgen -1 -y 40 > /root/.luks.pwd
dd if=/dev/urandom of=/root/.luks.key bs=1024 count=4
chmod 0600 /root/.luks.pwd /root/.luks.pwd
Creation d'un disque USB
- brancher le disque sur le serveur puis se connecter en tant que root au serveur
- détecter le nom qu'a pris le disque (en regardant le résultat de la commande dmesg par exemple), par exemple /dev/sdg
- formater le disque :
cryptsetup -q --use-urandom luksFormat /dev/sdg /root/.luks.pwd
cryptsetup luksAddKey /dev/sdg /root/.luks.key --key-file /root/.luks.pwd
- "Ouvrir" le disque chiffré :
cryptsetup luksOpen /dev/sdg bkp-usb --key-file /root/.luks.key
- Formater le disque chiffré en ext4 :
mkfs.ext4 /dev/mapper/bkp-usb
tune2fs -i0 -c0 -m0 /dev/mapper/bkp-usb
- Fermer le disque chiffré :
cryptsetup close bkp-usb
- Récupérer l'identifiant UUID du disque :
udevadm info -q all /dev/sdg|grep 'ID_FS_UUID='
Exemple :
root@bkphost:~# udevadm info -q all /dev/sdg|grep 'ID_FS_UUID='
E: ID_FS_UUID=41fc79d3-25fd-4424-9fc8-92479deead27
- Ajouter l'exécution automatique de l'export des backups pour ce disque dans le fichier le règle udev /etc/udev/rules.d/99-bkp-usb.rules :
# Disk X
ACTION=="add", ENV{DEVTYPE}=="disk",
ENV{ID_FS_UUID}=="41fc79d3-25fd-4424-9fc8-92479deead27",
RUN+="/usr/local/sbin/udev-bkp-usb"
- Recharger les règles UDEV :
udevadm control --reload-rules
- Débrancher puis re-brancher le disque une première fois pour vérifier qu'il est bien détecter et que le premier export (long) soit lancé.
Note : A des fins de tests, il est possible de simuler l'exécution du script /usr/local/sbin/udev-bkp-usb par UDEV de la manière suivante :
ACTION=add DEVTYPE=disk DEVNAME=/dev/sdg /usr/local/sbin/udev-bkp-usb
Lancer manuellement l'export des sauvegardes sur un disque USB déjà branché
Vous pouvez utiliser le script run-bkp-usb pour lancer manuellement l'export des sauvegardes sur un disque USB déjà branché :
Usage : /usr/local/sbin/run-bkp-usb [device]
device To manually run export, provide the USB Drive device path
Exemple :
run-bkp-usb /dev/sdc