2017-02-28 15:20:12 +01:00
|
|
|
|
Export des sauvegardes BackupPC sur disques externes USB chiffrés
|
|
|
|
|
=================================================================
|
|
|
|
|
|
|
|
|
|
Installation
|
|
|
|
|
---------------
|
|
|
|
|
|
|
|
|
|
* Installer les dépendances :
|
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
```bash
|
2017-04-12 16:14:15 +02:00
|
|
|
|
apt-get install inoticoming cryptsetup beep libfuse-perl util-linux
|
2017-03-06 18:16:13 +01:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
* mettre les fichiers suivant dans */usr/local/sbin* :
|
2017-02-28 15:20:12 +01:00
|
|
|
|
* backup-usb
|
|
|
|
|
* backuppcfs
|
|
|
|
|
* udev-bkp-usb
|
|
|
|
|
* run-bkp-usb
|
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
* créer les dossiers */mnt/backuppcfs* et */mnt/usb* :
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
```bash
|
|
|
|
|
mkdir /mnt/backuppcfs /mnt/usb
|
2017-02-28 15:20:12 +01:00
|
|
|
|
```
|
2017-03-06 18:16:13 +01:00
|
|
|
|
|
|
|
|
|
* créer le fichier */etc/udev/rules.d/99-bkp-usb.rules* :
|
|
|
|
|
|
|
|
|
|
```bash
|
2017-02-28 15:20:12 +01:00
|
|
|
|
# A l'insertion du disque, lancement du script de backup
|
2017-03-06 18:16:13 +01:00
|
|
|
|
# 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"
|
2017-02-28 15:20:12 +01:00
|
|
|
|
```
|
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
* lancer la commande :
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
```bash
|
|
|
|
|
udevadm control --reload-rules
|
2017-02-28 15:20:12 +01:00
|
|
|
|
```
|
2017-03-06 18:16:13 +01:00
|
|
|
|
|
|
|
|
|
* ajouter les lignes suivantes dans le fichier */etc/rc.local* :
|
|
|
|
|
|
|
|
|
|
```bash
|
2017-02-28 15:20:12 +01:00
|
|
|
|
# Run backup on USB device detection (trigger by udev rule)
|
2017-04-20 19:04:08 +02:00
|
|
|
|
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 \;
|
2017-02-28 15:20:12 +01:00
|
|
|
|
```
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
* lancer manuellement la commande *inoticoming* du fichier précédent (ou rebooter)
|
2017-02-28 15:20:12 +01:00
|
|
|
|
|
2017-04-12 16:14:59 +02:00
|
|
|
|
* 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
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
2017-02-28 15:20:12 +01:00
|
|
|
|
Création du mot de passe de et la clé LUKS
|
|
|
|
|
------------------------------------------
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
```bash
|
2017-02-28 15:20:12 +01:00
|
|
|
|
pwgen -1 -y 40 > /root/.luks.pwd
|
|
|
|
|
dd if=/dev/urandom of=/root/.luks.key bs=1024 count=4
|
2017-03-06 17:55:57 +01:00
|
|
|
|
chmod 0600 /root/.luks.pwd /root/.luks.pwd
|
2017-02-28 15:20:12 +01:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Creation d'un disque USB
|
|
|
|
|
------------------------
|
|
|
|
|
|
|
|
|
|
- brancher le disque sur le serveur puis se connecter en tant que root au serveur
|
2017-03-06 18:16:13 +01:00
|
|
|
|
- détecter le nom qu'a pris le disque (en regardant le résultat de la commande *dmesg* par exemple), par exemple **/dev/sdg**
|
2017-02-28 15:20:12 +01:00
|
|
|
|
- formater le disque :
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
```bash
|
2017-02-28 15:20:12 +01:00
|
|
|
|
cryptsetup -q --use-urandom luksFormat /dev/sdg /root/.luks.pwd
|
|
|
|
|
cryptsetup luksAddKey /dev/sdg /root/.luks.key --key-file /root/.luks.pwd
|
|
|
|
|
```
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-02-28 15:20:12 +01:00
|
|
|
|
- "Ouvrir" le disque chiffré :
|
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
```bash
|
2017-02-28 15:20:12 +01:00
|
|
|
|
cryptsetup luksOpen /dev/sdg bkp-usb --key-file /root/.luks.key
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
- Formater le disque chiffré en ext4 :
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
```bash
|
2017-02-28 15:20:12 +01:00
|
|
|
|
mkfs.ext4 /dev/mapper/bkp-usb
|
|
|
|
|
tune2fs -i0 -c0 -m0 /dev/mapper/bkp-usb
|
|
|
|
|
```
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-02-28 15:20:12 +01:00
|
|
|
|
- Fermer le disque chiffré :
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
```bash
|
2017-02-28 15:20:12 +01:00
|
|
|
|
cryptsetup close bkp-usb
|
|
|
|
|
```
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-02-28 15:20:12 +01:00
|
|
|
|
- Récupérer l'identifiant UUID du disque :
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
```bash
|
2017-02-28 15:20:12 +01:00
|
|
|
|
udevadm info -q all /dev/sdg|grep 'ID_FS_UUID='
|
|
|
|
|
```
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-02-28 15:20:12 +01:00
|
|
|
|
Exemple :
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
```bash
|
2017-02-28 15:20:12 +01:00
|
|
|
|
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* :
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
```bash
|
2017-02-28 15:20:12 +01:00
|
|
|
|
# Disk X
|
|
|
|
|
ACTION=="add", ENV{DEVTYPE}=="disk",
|
|
|
|
|
ENV{ID_FS_UUID}=="41fc79d3-25fd-4424-9fc8-92479deead27",
|
|
|
|
|
RUN+="/usr/local/sbin/udev-bkp-usb"
|
|
|
|
|
```
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
- Recharger les règles UDEV :
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-03-06 18:16:13 +01:00
|
|
|
|
```bash
|
2017-02-28 15:20:12 +01:00
|
|
|
|
udevadm control --reload-rules
|
|
|
|
|
```
|
2017-02-28 15:22:33 +01:00
|
|
|
|
|
2017-02-28 15:20:12 +01:00
|
|
|
|
- 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é.
|
2017-03-06 18:16:13 +01:00
|
|
|
|
|
|
|
|
|
**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
|
|
|
|
|
```
|
2017-04-12 16:15:26 +02:00
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
```
|