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édentesRévision précédente
Prochaine révision
Révision précédente
tutoriel:sauvegardes_nomades_securisees [Le 16/02/2025, 00:08] – [Forcer une sauvegarde] liviertutoriel:sauvegardes_nomades_securisees [Le 08/08/2026, 04:17] (Version actuelle) – [Rsnapshot] livier
Ligne 1: Ligne 1:
-{{tag>LTS_22.04 sauvegarde disque_USB chiffrement rsnapshot cryptsetup tutoriel BROUILLON}}+{{tag>sauvegarde chiffrement tutoriel BROUILLON}}
  
 ====== Sauvegardes nomades sécurisées pour laptop ====== ====== Sauvegardes nomades sécurisées pour laptop ======
 +
 +<note warning>
 +Il existe désormais des solutions intégrées complètes, plus puissantes, efficaces, et économes en ressources que la solution présentée ci-après.
 +  * [[:deja-dup|Déjà Dup]] en particulier est installé par défaut sur Ubuntu, et extrêmement simple d'utilisation.
 +  * [[:Restic]] propose aussi une solution tout-en-un qui convient aux cas les plus particulier,
 +et ces solutions offrent en plus du chiffrement la compression et la déduplication, sont donc plus rapides et économes en ressources, et parce qu'elles vérifient automatiquement l'index et l'état des sauvegardes précédentes, elles sont aussi plus sûres (elles permettent aussi d'envisager très simplement plusieurs sauvegardes sur différents supports ou centres de stockages).\\
 +Elles conviennent aussi parfaitement à un usage nomade et portable.
 +</note>
  
 Pour qui utilise un Laptop comme ordinateur principal les sauvegardes sont toujours nécessaires, mais pas si évidentes. La solution “Cloud” est en fait le plus souvent un mirroir, et ce n’est donc une sauvegarde que en cas de perte de la machine principale, mais si un document est perdu sur la machine principale, il le sera aussi sur le mirroir. Pour qui utilise un Laptop comme ordinateur principal les sauvegardes sont toujours nécessaires, mais pas si évidentes. La solution “Cloud” est en fait le plus souvent un mirroir, et ce n’est donc une sauvegarde que en cas de perte de la machine principale, mais si un document est perdu sur la machine principale, il le sera aussi sur le mirroir.
Ligne 11: Ligne 19:
 ===== Contexte et buts ===== ===== Contexte et buts =====
  
-Jusqu’à présent et depuis plus de 10 ans, j’utilisais un desktop avec un disque dur de travail et un autre pour les sauvegardes, automatisé par cron et [[https://doc.ubuntu-fr.org/rsnapshot|rsnapshot]]. Je n’avais à y penser que lorsque j’avais perdu quelquechose : je le retrouvais assez facilement, dans les répertoires correspondants aux dates d’il y a quelques jours, semaines ou mois, celon la situation. Bref, j’étais satisfait de ce système. +Les besoins de sécurité augmentent : chiffrement de l’ordinateur pour les cas de perte ou de vol, et sauvegardes qui doivent nécessairement être hors de la machine ; idéalement en plusieurs lieux, genre bureau et domicile.
- +
-Je prend maintenant un laptop comme ordi principal. Mes besoins de sécurité augmentent donc chiffrage de l’ordinateur pour les cas de perte ou de vol, et sauvegardes qui doivent nécessairement être hors de la machine ; idéalement en plusieurs lieux, genre bureau et domicile.+
  
-L’idée est donc de laisser un disque USB à ces endroits et, quand je vais les connecter, déclencher automatiquement un script qui fait automatiquement la sauvegarde adéquate. Ces disques que je vais laisser hors de mon contrôle direct doivent bien sur aussi être chiffrés, de façon à être ouverts automatiquement dans la procédure de sauvegarde, et aussi manuellement au cas ou je perdrais l’ordinateur.+L’idée est de laisser un disque USB à ces endroits et, quand je vais les connecter, déclencher automatiquement un script qui fait automatiquement la sauvegarde adéquate. Ces disques que je vais laisser hors de mon contrôle direct doivent bien sur aussi être chiffrés, de façon à être ouverts automatiquement dans la procédure de sauvegarde, et aussi manuellement au cas ou je perdrais l’ordinateur.
  
-Le shéma sera une cascade de scripts : - [[https://doc.ubuntu-fr.org/rsnapshot|rsnapshot]] qui m’a toujours doné satisfaction - [[https://github.com/pigmonkey/cryptshot|Crypshot]] pour gérer le chiffrement de la partition accueillant les sauvegardes, qui appellera rsnapshot - [[https://github.com/pigmonkey/backitup|Backitup]] pour lancer les sauvegardes adéquates quand les disques externes sont connectés - La procédure ci dessous présente la configuration pour un “lieu” de sauvegarde, à “domicile”, il faut la refaire en l’adaptant légèrement pour mettre en place un deuxième “lieu” de sauvegarde, au “bureau”+Le schéma sera une cascade de scripts : - [[https://doc.ubuntu-fr.org/rsnapshot|rsnapshot]] qui m’a toujours doné satisfaction - [[https://github.com/pigmonkey/cryptshot|Crypshot]] pour gérer le chiffrement de la partition accueillant les sauvegardes, qui appellera rsnapshot - [[https://github.com/pigmonkey/backitup|Backitup]] pour lancer les sauvegardes adéquates quand les disques externes sont connectés - La procédure ci dessous présente la configuration pour un “lieu” de sauvegarde, à “domicile”, il faut la refaire en l’adaptant légèrement pour mettre en place un deuxième “lieu” de sauvegarde, au “bureau”
  
 ===== Utiliser une partition chiffrée ===== ===== Utiliser une partition chiffrée =====
Ligne 166: Ligne 172:
 === Sauvegarder l’entête du conteneur === === Sauvegarder l’entête du conteneur ===
 <note important> <note important>
-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 soitil 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ésCela peut être une bréche de sécurité si la sauvegarde de l’entête est (a été) accessible à un ancien collaborateur .+Les entêtes des conteneurs luks contiennent les informations nécessaires au déchiffrage des donnéesnotament les slots avec les mots de passe et les keyfiles. Ils peuvent être sauvegardés et restaurés, rétablissant à l'occasion les slots fonctionnels au moment de leur sauvegarde (même ceux fermés depuis!).  
 +Tester leur restauration n'est pas trivialj'y renonce. La perte des entêtes de conteneurs est un risque comparable et complémentaire à la perte d'un disque dur ; dont il faut de toutes façon se protéger par la multiplication des sauvegardesLa valeur ajoutée de la sauvegarde des entêtes est donc faible pour la complication que cela demande. Faites comme vous voulez, voici les commandes de base si vous y tenez
  
-luksHeaderBackup /dev/<html><target device></html>header-backup-file <html><file></html> +<code>$ sudo cryptsetup luksHeaderBackup /dev/<target device> --header-backup-file <fichier_de_sauvegarde
- +$ sudo cryptsetup luksHeaderRestore /dev/<target device> --header-backup-file <fichier_de_sauvegarde> 
-luksHeaderRestore /dev/<html><target device></html>header-backup-file <html><file></html>+</code>
  
 ===== Utilisation des scripts ===== ===== Utilisation des scripts =====
Ligne 180: Ligne 187:
 ==== Rsnapshot ==== ==== Rsnapshot ====
  
-Voir la page dédiée [[https://doc.ubuntu-fr.org/rsnapshot|rsnapshot]] +C'est le script de base des sauvegardes, le seul nécessaire pour des sauvegardes locales non chiffréessa grande qualité utiliser des liens en dur pour accéder au même fichier physique (pas de perte de place) dans les différentes versions de sauvegarde, tant que le fichier n'a pas changé. Pour retrouver un fichier, on entre dans la sauvegarde adéquate (il y a quelques jours, semaines ou mois) et on navigue comme dans le répertoire d'origine 
- +sudo apt install rsnapshot 
-Attentions particulières - rsnapshot utilise les liens en dur pour donner accès au mêmes fichiers à partir des différents répertoires datés de chaque sauvegarde. C’est ce qui fait le charme de sa facilité de retrouver des fichiers. Ne fonctionne par sur les partition “fat” - Mettre **no_create_root 1** dans le fichier de configuration pour éviter que la sauvegarde ne remplisse le disque de l’ordinateur au cas ou un disque USB ne serait pas connecté au moment de la sauvegarde (en principe déjà prise en charge dans cryptshot). - Vous voudrez probablement tester votre configurration de rsnapshot avant de l’envoyer dans des volumes chiffrés* Notez que lors de l’exécution des scripts suivants, nous utiliserons des fichiers de configuration spécifiques.+- Configuration dans /etc/rsnapshot.conf 
 +-Tester votre configuration :  
 +$ rsnapshot configtest 
 +$ rsnapshot -t daily
  
 +Nécessite partitions gérant les liens en dur (pas fat) 
 +Mettre **no_create_root 1** dans le fichier de configuration pour éviter que la sauvegarde ne remplisse le disque de l’ordinateur au cas ou un disque USB ne serait pas connecté au moment de la sauvegarde.
 ==== Installation de cryptshot.sh et backitup ==== ==== Installation de cryptshot.sh et backitup ====
  
Ligne 260: Ligne 272:
 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 à la connexion du disque USB ==== +==== Forcer une sauvegarde par un nouveau script ====
-<note warning>Ceci n'a pas fonctionné chez moi, suis passé à une autre approche </note>+
  
 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 277: Ligne 288:
 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 ==== 
-<note warning>ceci n'a pas fonctionné chez moi, suis passé à une autre appriche </note> 
- 
-Cela passe par la création d’une règle udev personnalisée. La règle simple ci dessous détectera toute nouvelle connexion sur un port usb, puis lancera le script de sauvegarde. Si le périphérique connecté est un des disques usb prévu pour la sauvegarde, elle aura lieu ; sinon le script ne trouvera rien a faire. 
- 
-  * Créer le fichier ''%%/etc/udev/rules.d/10-custom.rules%%'' en tant que root 
-  * le peupler avec\\ 
-''%%ACTION=="add", SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", RUN+="/etc/cron.hourly/cryptshot-execute"%%'' 
-  * Redémarrer ou recharger les règles udev, puis "déclencher" (la redétection?) en utilisant la commande suivante : 
- <code> 
-sudo udevadm control --reload-rules && sudo udevadm trigger 
-</code> 
-  * 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.  
  
 ==== Udev : Déclencher la sauvegarde à la connexion du disque usb ==== ==== Udev : Déclencher la sauvegarde à la connexion du disque usb ====
Ligne 306: Ligne 302:
   * 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. 
  
  
Ligne 352: Ligne 348:
  
 j'utilise encore des scripts ... 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>
 +#!/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>
  
- 
-/usr/local/bin/memount-mydomicile-sh 
  
  
Ligne 362: Ligne 372:
 ===== Problème connus ===== ===== 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 bien, et nous permettra de consulter nos sauvegardes de n’importe quelle machine (non testé sous Windows ni MacOS); Sauf que …\\ +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 naturevoir [[https://github.com/pigmonkey/cryptshot/issues/8|Continue the script when the volume is already luksOpened ? · Issue #8 · pigmonkey/cryptshot · GitHub]] 
- +
-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%%''.\\ +
- 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 solution est de déconnecter/reconnecter le disque USB. A défaut d’y penser, on pourrait se retrouver sans sauvegardes pendant quelques jour…  +
- +
-- Faire un (autre) script /usr/local/bin/Back-domicile-mount-sh avec :+
  
 <code> <code>
-#!/bin/bash 
-mkdir /mnt/Monvolume 
-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 
-read -p " $volume est monté, visiter /mnt puis appuyez sur Enter pour tout refermer" 
-umount /mnt/Monvolume 
-rmdir /mnt/monvolume 
-cryptsetup luksClose crypt-Monvolume 
-</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é 
- 
-<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 395: Ligne 380:
     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 406: Ligne 391:
 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 441: Ligne 426:
  
 ---- ----
- +//[[:Contributeurs]] : [[:utilisateurs:LIVIER]].//
-//Contributeurs principaux : [[:utilisateurs/livier|LIVIER]].// +