197 lines
5.6 KiB
Markdown
197 lines
5.6 KiB
Markdown
Export des sauvegardes BackupPC sur disques externes USB chiffrés
|
||
=================================================================
|
||
|
||
Installation
|
||
---------------
|
||
|
||
* Installer les dépendances :
|
||
|
||
```bash
|
||
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* :
|
||
|
||
```bash
|
||
mkdir /mnt/backuppcfs /mnt/usb
|
||
```
|
||
|
||
* créer le fichier */etc/udev/rules.d/99-bkp-usb.rules* :
|
||
|
||
```bash
|
||
# 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 :
|
||
|
||
```bash
|
||
udevadm control --reload-rules
|
||
```
|
||
|
||
* ajouter les lignes suivantes dans le fichier */etc/rc.local* :
|
||
|
||
```bash
|
||
# 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
|
||
------------------------------------------
|
||
|
||
```bash
|
||
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 :
|
||
|
||
```bash
|
||
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é :
|
||
|
||
```bash
|
||
cryptsetup luksOpen /dev/sdg bkp-usb --key-file /root/.luks.key
|
||
```
|
||
|
||
- Formater le disque chiffré en ext4 :
|
||
|
||
```bash
|
||
mkfs.ext4 /dev/mapper/bkp-usb
|
||
tune2fs -i0 -c0 -m0 /dev/mapper/bkp-usb
|
||
```
|
||
|
||
- Fermer le disque chiffré :
|
||
|
||
```bash
|
||
cryptsetup close bkp-usb
|
||
```
|
||
|
||
- Récupérer l'identifiant UUID du disque :
|
||
|
||
```bash
|
||
udevadm info -q all /dev/sdg|grep 'ID_FS_UUID='
|
||
```
|
||
|
||
Exemple :
|
||
|
||
```bash
|
||
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* :
|
||
|
||
```bash
|
||
# 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 :
|
||
|
||
```bash
|
||
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 :
|
||
|
||
```bash
|
||
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 :
|
||
|
||
```bash
|
||
run-bkp-usb /dev/sdc
|
||
```
|
||
|
||
Voir l'état actuel d'un export
|
||
------------------------------
|
||
|
||
Vous pouvez utiliser le paramètre *-s* du script *backup-usb* pour voir l'état actuel d'un export :
|
||
|
||
```bash
|
||
# backup-usb -s
|
||
2017-04-21 - 10h52m54s -- [INFO] Fichier de lock present
|
||
2017-04-21 - 10h52m54s -- [INFO] Un export de sauvegarde est en cours (commande rsync détectée)
|
||
2017-04-21 - 10h52m54s -- [INFO] Disque LUKS ouvert
|
||
2017-04-21 - 10h52m54s -- [INFO] Disque LUKS monté
|
||
Filesystem Size Used Avail Use% Mounted on
|
||
/dev/mapper/bkp-usb 3.6T 1.2T 2.5T 31% /mnt/usb
|
||
2017-04-21 - 10h52m54s -- [INFO] BackupPC-FS monté
|
||
```
|
||
|
||
Ouvrir et monté un disque USB chiffré manuellement
|
||
--------------------------------------------------
|
||
|
||
Si vous avez besoin de voir ce qu'un de vos disques USB chiffrés contient, vous pouvez utiliser le paramètre *-o* du script *backup-usb* :
|
||
|
||
```bash
|
||
backup-usb -o -u /dev/sdc
|
||
```
|
||
|
||
Le disque chiffré USB sera ouvert et monté dans son point de montage habituel (*/mnt/usb* par défaut). Le fichier de *lock* sera positionné et vous pourrez démonter et fermer le disque USB chiffré une fois fini à l'aide du paramètre *-c* du script *backup-usb* :
|
||
|
||
```bash
|
||
backup-usb -c
|
||
```
|
||
|
||
Lancer une vérification du système de fichiers d'un disque USB chiffré
|
||
----------------------------------------------------------------------
|
||
|
||
En cas de doute ou de problème avec le système de fichier d'un disque USB, vous pouvez utiliser le paramètre *-f* du script *backup-usb* :
|
||
|
||
```bash
|
||
backup-usb -f -u /dev/sdc
|
||
```
|
||
|
||
Le disque USB chiffré sera ouvert et un *fsck* sera lancé sur le système de fichiers qu'il contient. Une fois terminé et si le *fsck* s'est bien terminé, le disque USB chiffré sera fermé.
|