Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:sauvegardes_nomades_securisees [Le 08/03/2024, 09:28]
livier [Udev : Déclencher la sauvegarde à la connexion du disque usb] Problème connu.
tutoriel:sauvegardes_nomades_securisees [Le 19/02/2025, 18:10] (Version actuelle)
bcag2 [Udev : Déclencher la sauvegarde à la connexion du disque usb] suppr notes qui n'apporte rien (pas de version ni contexte !)!
Ligne 30: Ligne 30:
   * Apprenez à manipulez vos partitions chiffrées vous mêmes à la main. Vous voulez être compétents pour être en mesure de les utiliser quand vous aurez besoin de vos backups et que la situation vous échappera un peu…   * Apprenez à manipulez vos partitions chiffrées vous mêmes à la main. Vous voulez être compétents pour être en mesure de les utiliser quand vous aurez besoin de vos backups et que la situation vous échappera un peu…
   * Je réalise la plupart des opérations suivantes avec les outils graphiques de KDE. Je ne suis pas en mesure de donner les lignes de commande de façon suffisamment fiable pour une documentation publique. Suivez les étapes et faites attention à ce que vous faites.   * Je réalise la plupart des opérations suivantes avec les outils graphiques de KDE. Je ne suis pas en mesure de donner les lignes de commande de façon suffisamment fiable pour une documentation publique. Suivez les étapes et faites attention à ce que vous faites.
-  * Toutes les commandes (ou presque) de ce tutoriel sont à passer en ''​%%root%%''​ (en utilisant ''​%%sudo%%''​) ​[Utiliser : ''​%%sudo !!%%''​ quand vous voulez passer ''​%%en root%%''​ la dernière commande que vous avez tenté en simple utilisateur].\\+  * Toutes les commandes (ou presque) de ce tutoriel sont à passer en ''​%%root%%''​ (en utilisant ''​%%sudo%%''​) 
 + <​note tip>Utiliser : ''​%%sudo !!%%''​ quand vous voulez passer ''​%%en root%%''​ la dernière commande que vous avez tenté en simple utilisateur.</​note>​\\
  
   * Nous utilisons des scripts qui seront appelés en tant que root, mais que j’ai édité (plusieurs fois en mode essai-erreur) en tant qu’utilisateur. Il m’a fallu faire quelques ajustements au niveau des droits pour faire tout cela (commandes chown et chmod en sudo). [Par exemple, mettre “mon utilisateur” dans le groupe “root” et utiliser des [[:​permissions|droits]] de type “root.root 760” pour que root puisse exécuter les scripts, moi pouvoir les éditer, et rien pour les autres] **Si vous n’êtes pas à l’aise avec ces manipulations,​ persévérez dans l’apprentissage de ces notions avant de configurer vos chiffrements ;-)**   * Nous utilisons des scripts qui seront appelés en tant que root, mais que j’ai édité (plusieurs fois en mode essai-erreur) en tant qu’utilisateur. Il m’a fallu faire quelques ajustements au niveau des droits pour faire tout cela (commandes chown et chmod en sudo). [Par exemple, mettre “mon utilisateur” dans le groupe “root” et utiliser des [[:​permissions|droits]] de type “root.root 760” pour que root puisse exécuter les scripts, moi pouvoir les éditer, et rien pour les autres] **Si vous n’êtes pas à l’aise avec ces manipulations,​ persévérez dans l’apprentissage de ces notions avant de configurer vos chiffrements ;-)**
-  * afin de voir les commandes qui passent quand on lance un script en console dans les phases de test : mettre ''​%%set -x%%''​ en début de script (et retirer ensuite)+ 
 +<note tip> ​afin de voir les commandes qui passent quand on lance un script en console dans les phases de test : mettre ''​%%set -x%%''​ en début de script (et retirer ensuite)</​note>​ 
 + 
 +<note tip>On peut aussi loguer des informations utiles en ajoutant quelques éléments dans les scripts :  
 + 
 +- Ajouter une ligne `echo "​$(date '​+%Y-%m-%d %H:​%M:​%S'​) étape d'​execution"​ >> /​var/​log/​cryptshot.log` ​  
 + 
 +- Ajouter `| tee -a /​var/​log/​cryptshot.log` à la suite d'un message du script ​ `echo '​message.'​ | tee -a /​var/​log/​cryptshot.log` 
 + 
 +</​note>​
  
 ==== Quelques points de repères pour comprendre le système : ==== ==== Quelques points de repères pour comprendre le système : ====
Ligne 89: Ligne 99:
 === Montage et démontages des volumes chiffés === === Montage et démontages des volumes chiffés ===
  
-Vérifiez que vous êtes vraiment capables de manipuler vos partitions chiffrées en dehors des scripts …+<note important>​Vérifiez que vous êtes vraiment capables de manipuler vos partitions chiffrées en dehors des scripts …</​note>​
  
   * Ouvrir la partition chiffrée, le mot de passe sera demandé :   * Ouvrir la partition chiffrée, le mot de passe sera demandé :
Ligne 100: Ligne 110:
 <code bash> <code bash>
 cryptsetup -v luksOpen --key-file <​chemin/​Keyfile>​ /​dev/<​target device> monVolume cryptsetup -v luksOpen --key-file <​chemin/​Keyfile>​ /​dev/<​target device> monVolume
 +</​code>​
 +
 +  * Vérifier un mot de passe et son slot, sans ouvrir la partition :
 +
 +<code bash>
 +cryptsetup -v luksOpen --test-passphrase /​dev/<​target device>
 </​code>​ </​code>​
   * Montage du mapper   * Montage du mapper
Ligne 124: Ligne 140:
 Pour approfondissements,​ voir : Pour approfondissements,​ voir :
  
-Nous aurons besoin d’au moins deux clés pour ouvrir le conteneur :+<note important>​Nous aurons besoin d’au moins deux clés pour ouvrir le conteneur :</​note>​
  
   - Un “keyfile” (qui peut être n’importe quel fichier) dans l’ordinateur pour automatiser la sauvegarde. Cette clé qui ne sera pas utilisable à qui disposerait du disque seulement : le voleur ou vous après la perte de l’ordinateur.   - Un “keyfile” (qui peut être n’importe quel fichier) dans l’ordinateur pour automatiser la sauvegarde. Cette clé qui ne sera pas utilisable à qui disposerait du disque seulement : le voleur ou vous après la perte de l’ordinateur.
Ligne 149: Ligne 165:
 </​code>​ </​code>​
 === Sauvegarder l’entête du conteneur === === Sauvegarder l’entête du conteneur ===
- +<note important>​ 
-Cet entête intégral est indispensable à l’ouverture du conteneur. On peut l’altérer volontairement pour rendre le conteneur illisible à qui que ce soit, il peut aussi y avoir un accident ! Attention, l’entête contient tous les slots de mots de passe et keyfiles. Le restaurer remettra donc ces slots à l’état du moment de la sauvegarde, réactivant d’anciens mots de passe éliminés. Cela peut être une bréche de sécurité si la sauvegarde de l’entête est (a été) accessible à un ancien collaborateur .+Cet entête intégral est indispensable à l’ouverture du conteneur.</​note> ​On peut l’altérer volontairement pour rendre le conteneur illisible à qui que ce soit, il peut aussi y avoir un accident ! Attention, l’entête contient tous les slots de mots de passe et keyfiles. Le restaurer remettra donc ces slots à l’état du moment de la sauvegarde, réactivant d’anciens mots de passe éliminés. Cela peut être une bréche de sécurité si la sauvegarde de l’entête est (a été) accessible à un ancien collaborateur .
  
 luksHeaderBackup /​dev/<​html><​target device></​html>​ –header-backup-file <​html><​file></​html>​ luksHeaderBackup /​dev/<​html><​target device></​html>​ –header-backup-file <​html><​file></​html>​
Ligne 244: Ligne 260:
 Pour répéter les tests il faudra probablement enlever (ou remplacer par ''​%%000%%''​) les fichiers ''​%%daily%%''​ du répertoire précédent. Pour répéter les tests il faudra probablement enlever (ou remplacer par ''​%%000%%''​) les fichiers ''​%%daily%%''​ du répertoire précédent.
  
-==== Forcer une sauvegarde ====+==== Forcer une sauvegarde ​par un nouveau script ​====
  
 Pour forcer la sauvegarde quotidienne,​ même si elle a déjà été faite plus tôt dans la journée … Créer (encore) un script : ''​%%/​usr/​local/​bin/​force-cryptshop.sh%%''​ et le remplir avec : Pour forcer la sauvegarde quotidienne,​ même si elle a déjà été faite plus tôt dans la journée … Créer (encore) un script : ''​%%/​usr/​local/​bin/​force-cryptshop.sh%%''​ et le remplir avec :
Ligne 259: Ligne 275:
 </​code>​ </​code>​
 On pourra l’appeler en ligne de commande, en phase de tests, et pour sauvegarder les derniers travaux de la journée juste avant de quitter le lieu correspondant. On pourra l’appeler en ligne de commande, en phase de tests, et pour sauvegarder les derniers travaux de la journée juste avant de quitter le lieu correspondant.
 +
  
 ==== Udev : Déclencher la sauvegarde à la connexion du disque usb ==== ==== Udev : Déclencher la sauvegarde à la connexion du disque usb ====
Ligne 267: Ligne 284:
   * le peupler avec\\   * le peupler avec\\
 ''​%%ACTION=="​add",​ SUBSYSTEM=="​usb",​ ENV{DEVTYPE}=="​usb_device",​ RUN+="/​etc/​cron.hourly/​cryptshot-execute"​%%''​ ''​%%ACTION=="​add",​ SUBSYSTEM=="​usb",​ ENV{DEVTYPE}=="​usb_device",​ RUN+="/​etc/​cron.hourly/​cryptshot-execute"​%%''​
-  * rechargez ​les règles udev en utilisant la commande suivante ​Ou redémarrer) ​:<​code>​ +  * Redémarrer ou recharger ​les règles udev, puis "​déclencher"​ (la redétection?​) ​en utilisant la commande suivante : 
-sudo udevadm control --reload-rules+ <​code>​ 
 +sudo udevadm control --reload-rules ​&& sudo udevadm trigger
 </​code>​ </​code>​
   * Tester en connectant un des disques de sauvegarde   * Tester en connectant un des disques de sauvegarde
  
-Le fonctionnement peut être capricieux quand le disque est connecté au travers d'un hub thunderbolt. Connecter le disque directement sur un port USB de l'​ordinateur. ​+Le fonctionnement peut être capricieux quand le disque est connecté au travers d'un hub thunderbolt. Connecter ​alors le disque directement sur un port USB de l'​ordinateur. ​
  
-===== Problème connus ===== 
  
-Faire et automatiser des sauvegardes,​ c’est bien ; il faut aussi pouvoir les utiliser. Lorsque le disque USB est connecté, il apparait comme pouvant être moté dans l’espace ​utilisateur. Il faudra saisir le mot de passe pour l’ouvrir. Tout cela est bienet nous permettra de consulter nos sauvegardes ​de n’importe quelle machine (non testé sous Windows ni MacOS); Sauf que …\\+==== Lancer la sauvegarde à la connexion ​et la déconnexion de l'utilisateur ​==== 
 +L'​idée : quand on arrive ou repart d'un lieu de travailon veut que les sauvegardes ​soient mises à jour. 
  
-Cela fout le bordel sur la machine qui fait les sauvegardes- Lorsque ​l’on ouvre le volume en tant qu’utilisateur (typiquement ​dans /​media/​user/​monvolume) le script ​''​%%cryptshot%%''​ s’arrête en erreur. Le développeur me dit que ce serait trop insécure ​de permettre simultanément les accès utilisateur et l’ouverture pour une sauvegarde en courselle attendra ​le prochain ''​%%hourly%%''​.\\ +Le moyen : placer des scripts adéquat à la connexion ou la déconnexionJe l'ai fait dans l'interface de configuration ​de KDEtrouvez ​le moyen pour votre situation
- ​Lorsque l’on “détache” le disque USB, il n’apparait plus comme détecté par le system (les fichiers correspondants sous /​dev/​disk/​*/​… ne sont plus présents), alors le script ne peut plus tourner les sauvegardes non plus+
  
-==== Solutions ====+Une difficulté : ces scripts sont lancés en tant qu'​utilisateur,​ les sauvegardes doivent être lancées en root.  
 +se permettre de lancer sertains scripts en tant que root, sans mot de passe (puisque lancés automatiquement) :  
 +<​code>​ 
 +sudo visudo ​ /​etc/​sudoers.d/​mecryptshot ​
  
-- Une solution est de déconnecter/reconnecter le disque USBA défaut d’y penseron pourrait se retrouver sans sauvegardes pendant quelques jour… ​+me ALL=(ALL) NOPASSWD: ​/usr/​local/​bin/​mecryptshop-force.sh,/​usr/​local/​bin/​mecryptshop-lance>​ 
 +</​code>​ 
 +``` 
 +Créer les scripts correspondants :  
 + 
 +Éditer : /​usr/​local/​bin/​mecryptshop-force.sh 
 +<​code>​ 
 +#!/bin/bash  
 +sudo echo '​000'​ > /​usr/​local/​etc/​cryptshot/​lastrun/​xadom.daily 
 +sudo echo '​000'​ > /​usr/​local/​etc/​cryptshot/​lastrun/​alta.daily 
 + 
 +sudo /​usr/​local/​bin/​cryptshot-execute 
 + 
 +exec >> "/​var/​log/​cryptshot.log"​ 
 +echo "​C'​était mecryptshot-force.sh"​ /t 
 +</​code>​
  
-- Faire un (autre) script /​usr/​local/​bin/​Back-domicile-mount-sh avec : 
  
 +Éditer : /​usr/​local/​bin/​mecryptshop-lance.sh
 <​code>​ <​code>​
-#​!/​bin/​bash +#!/bin/bash  
-mkdir /mnt/Monvolume +sudo /usr/local/bin/cryptshot-execute 
-cryptsetup luksOpen --key-file /​chemin/​de/​la/​cle.whatever /dev/disk/by-partlabel/​Monvolume crypt-Monvolume + 
-mount --options noatime ​/dev/mapper/crypt-Monvolume /​mnt/​Monvolume +exec >> "/var/log/cryptshot.log"​ 
-read -" ​$volume est monté, visiter ​/mnt puis appuyez sur Enter pour tout refermer"​ +echo "​C'​était mecryptshot-lance.sh" /t
-umount /​mnt/​Monvolume +
-rmdir /​mnt/​monvolume +
-cryptsetup luksClose crypt-Monvolume+
 </​code>​ </​code>​
-Toujours lancer en root, par sudo. Cette ouverture et ce montage ne “détache” pas le disque, et le script reste fonctionnel. Le risque est d'​oublier la fenêtre de la console avec la fermeture du montage non faite. 
  
-- proposition par l’auteur du script ​dans les “issues” [[https://​github.com/​pigmonkey/​cryptshot/​issues/​8|Continue the script when the volume is already luksOpened ? · Issue #8 · pigmonkey/​cryptshot · GitHub]] - non testé+Ces scripts déclenchent les opérations comme confugurées ​dans les étapes précédentes
  
 +==== Consulter les sauvegardes ====
 +Là ou je suis, avec KDE, le montage par les outils graphique pose des problèmes. Le démontage quand on ferme le volume n'est pas complet, et il y a une erreur ensuite quand le script essaye de luksopen le volume. ​
 +
 +j'​utilise encore des scripts ...
 +Sudo est souhaitable pour contrôler l'​accès aux sauvegardes,​ sinon ajuster visudo en conséquence
 +On déchiffre le volume, et on le regarde avec mc (c'est mon choix). ​
 +Pour fouiller les sauvegardes plus facilement, tant que mc est ouvert dans la console, utiliser /​mnt/<​target device> comme chemim dans vos applications graphiques courantes. ​
 +A la fermeture de mc, le volume sera démonté, et les sauvegardes suivantes seront fonctionnelles. ​
 +
 +/​usr/​local/​bin/​memount-mydomicile-sh
 <​code>​ <​code>​
 +#!/bin/bash
 + mkdir /​mnt/<​target device>
 + ​cryptsetup luksOpen --key-file <​chemin/​Keyfile>​ /​dev/<​target device> ​ crypt-<​target device>
 + mount --options noatime /​dev/​mapper/​crypt-<​target device> /​mnt<​target device>
 + 
 + mc /​mnt/<​target device>
 + ​umount ​ /​mnt/<​target device>
 +# rmdir  /​mnt/<​target device>
 + ​cryptsetup luksClose crypt-<​target device>
 +</​code>​
  
  
 +
 +
 +
 +===== Problème connus =====
 +
 +J'ai eu quelques difficultés à assurer le démontage du volume crypté quand j'​utilisais les outils graphiques de KDE pour le consulter. Le chapitre précédent fonctionne adéquatement,​ mais si vous rencontrez ce genre de problème, le développeur de cryptshot m'a proposé une autres apprche de cette nature. voir [[https://​github.com/​pigmonkey/​cryptshot/​issues/​8|Continue the script when the volume is already luksOpened ? · Issue #8 · pigmonkey/​cryptshot · GitHub]] ​
 +
 +<​code>​
 if [ -d /​mnt/​backupdrive ]; then if [ -d /​mnt/​backupdrive ]; then
     rsnapshot -c /​path/​to/​rsnapshot.conf daily     rsnapshot -c /​path/​to/​rsnapshot.conf daily
Ligne 309: Ligne 368:
     cryptshot.sh -c /​path/​to/​cryptshot.conf -i daily     cryptshot.sh -c /​path/​to/​cryptshot.conf -i daily
 fi fi
- 
 </​code>​ </​code>​
 +A toutes fiins utiles - non testé
  
  
Ligne 320: Ligne 379:
 Merci aux auteurs et contributeurs [[:​rsnapshot]],​ des scripts //​cryptshot//​ et //​backitup//​ [[https://​github.com/​pigmonkey|pigmonkey]] pour leur patience et leur soutien. Les autres scripts proposés ici ont largement été inspirés par [[https://​github.com/​pigmonkey/​cryptshot/​issues/​8|ces échanges]]. Merci aux auteurs et contributeurs [[:​rsnapshot]],​ des scripts //​cryptshot//​ et //​backitup//​ [[https://​github.com/​pigmonkey|pigmonkey]] pour leur patience et leur soutien. Les autres scripts proposés ici ont largement été inspirés par [[https://​github.com/​pigmonkey/​cryptshot/​issues/​8|ces échanges]].
  
 +Cet aricle reste "en cours de rédaction"​ en attendant que quelqu'​un témoigne de l'​avoir utilisé sans y avoir trouvé d'​erreur. Si vous y parvenez, pour pourriez enlever ou demande d'​enlever l'​alerte en haut d'​article. ​
 ===== Voir aussi ===== ===== Voir aussi =====
  
Ligne 350: Ligne 409:
 ** Incron, comme alternative à Udev (non testé) **\\ ** Incron, comme alternative à Udev (non testé) **\\
  
-[[https://​doc.ubuntu-fr.org/​incron|incron [Wiki ubuntu-fr]]]+ [[:incron|Incron]] 
  
 [[https://​www.it-connect.fr/​incron-executer-des-actions-selon-des-evenements/​|Incron : exécuter des actions selon des événements | Commandes et Système | IT-Connect]] [[https://​www.it-connect.fr/​incron-executer-des-actions-selon-des-evenements/​|Incron : exécuter des actions selon des événements | Commandes et Système | IT-Connect]]
  • tutoriel/sauvegardes_nomades_securisees.1709886516.txt.gz
  • Dernière modification: Le 08/03/2024, 09:28
  • par livier