backuppcExportOnUsbDisk/README.md

155 lines
3.9 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
```