L’auto-hébergement, c’est bien. C’est la liberté, par l’utilisation de logiciels libres, par la gestion de ses données personnelles sur sa propre machine. Mais cette liberté n’est rien si on ne s’assure pas un minimum de sécurité, afin de ne pas perdre ses données. Il en va évidemment de même avec les données stockées sur un ordinateur personnel.
La mesure la plus importante pour assurer la sécurité de ses données, c’est de mettre en place un système fiable et efficace de sauvegardes.
L’objectif de ce tutoriel est d’organiser mon travail, et de garder une trace de mes choix afin de pouvoir réinstaller le système en cas de problème grave, tout en partageant mes travaux avec vous, chers internautes.
Présentation globale du système et explication des choix technologiques
Je me suis attelé à monter un système de sauvegarde qui offre les fonctionnalités suivantes :
- Sauvegardes automatiques à intervalle régulier, incrémentales, avec dé-duplication des données ;
- Sur une machine distante pour limiter le risque de compromission des anciennes sauvegardes ;
- Avec utilisation de chiffrement, pour assurer confidentialité des données ;
- En ayant en permanence trois copies des données sur au moins deux sites distincts.
Les choix techniques résultent d’une prise en compte des objectifs du système et des contraintes matérielles qui sont les miennes, mais j’aurais pu faire des choix différents dans d’autres situations. Ils sont les suivants :
Définition du besoin :
- Sauvegarde d’un ordinateur portable personnel tournant sous Ubuntu ;
- Sauvegarde d’un serveur auto-hébergé tournant sous Yunohost (Debian) ;
Moyens à disposition :
- Un Raspberry Pi ;
- Des disques durs (externes, portables, etc.) ainsi que des clés USB ;
- Un réseau WiFi et filaire dans la maison
Risques dont je cherche à me prémunir :
- Effacement accidentel d’un fichier ;
- Perte définitive d’un ordinateur (vol ou panne matérielle) ;
- Cryptolocker, rançongiciel et autre virus avancé me faisant perdre l’accès aux données locales ou en réseau non sécurisé ;
- Incendie, inondation, cambriolage qui ferait disparaitre l’ensemble du matériel informatique de mon domicile.
Ma source principale d’inspiration est le wiki de sebsauvage, en particulier ses pages sur les sauvegardes et sur sa propre politique de sauvegarde.
Le choix de Borg
Pendant de nombreuses années, j’ai utilisé rsync comme logiciel central pour mes sauvegardes. Il donnait globalement satisfaction, mais avait plusieurs limites (principalement l’absence de déduplication, et de chiffrement). Je gardais l’historique des anciennes sauvegardes (uniquement les fichiers modifiés), donc mois après mois la taille des sauvegardes augmentait inexorablement.
Après mûre réflexion, j’ai fini par utiliser BorgBackup, logiciel de sauvegarde particulièrement avancé et complet, qui permet en particulier la déduplication entre les sauvegardes de manière à limiter la taille occupée sur le disque. Borg est un véritable logiciel de sauvegarde, alors que rsync est seulement un logiciel de synchronisation (avec lequel on peut néanmoins bâtir un bon système de sauvegardes. Je ne l’abandonne d’ailleurs pas, il garde une place dans ma stratégie de sauvegarde).
Description du processus de sauvegarde
Mon système de sauvegarde peut être décrit comme suit :
- Sauvegarde automatique quotidienne (ou plus fréquente) de mes ordinateurs et serveurs avec Borg sur un disque dur connecté à un serveur RaspberriPi allumé 24/7, sans intervention de ma part ;
- Copie supplémentaire des données réalisée semi-automatiquement sur un disque dur portable stocké hors site (sur mon lieu de travail), en le ramenant de temps en temps à la maison ;
- Le tout avec un ensemble de scripts automatisant les étapes au maximum et un moyen de superviser le bon foncionnement des sauvegardes.
Avec ce système, j’ai en permanence deux copies de mes données sur site : la première étant l’originale, sur l’ordinateur ou le serveur, la deuxième étant celle relativement récente (au pire vieille d’une journée), sur le serveur de sauvegarde. La troisième copie est hors site et n’est mise à jour qu’une fois par semaine environ, au seul moment où les trois exemplaires de mes données sont situées physiquement dans le même bâtiment.
Mettons les mains dans le cambouis
La documentation est divisée en plusieurs étapes logiques, qui font chacune l’objet d’une page dédiée :
- Installation générique d’un serveur Raspberry Pi ;
- Préparation du serveur pour BorgBackup ;
- Sauvegarde d’un ordinateur personnel avec BorgBackup.
À venir :
- Sauvegarde d’un serveur Yunohost avec BorgBackup;
- Sauvegardes hors-site avec Rsync ;
- Restauration du système depuis la sauvegarde.
Facultatif :
Autre système envisagé
J’ai envisagé un autre système de sauvegarde, en utilisant deux disques durs externes qui auraient fait la navette entre mon lieu de travail et mon domicile, chacun son tour, afin de ne jamais avoir les trois copies des données sur le même site. Chaque disque dur externe aurait contenu un dépôt distinct de sauvegardes Borg. Cela aurait aussi permis d’éviter d’avoir un serveur RaspberryPi allumé en permanence, permettant ainsi des économies d’électricité.
Je n’ai pas retenu ce système à deux disques durs externes d’abord parce que je ne possède qu’un seul disque susceptible d’être utilisé ainsi et que je ne souhaite pas faire de dépense supplémentaire mais plutôt réutiliser le matériel déjà en ma possession. De plus, cela m’obligeait à réaliser presque quotidiennement des manipulations, sur chaque ordinateur et serveur à sauvegarder (au minimum un branchement/débranchement du disque sur chaque machine). Il n’y aurait alors plus rien de totalement automatique, tandis que le système que j’ai finalement choisi m’impose seulement une manipulation hebdomadaire pour créer la troisième copie des données, pendant que le reste du processus se fait quotidiennement, automatiquement et sans intervention de ma part.
Ce serait néanmoins un système de sauvegarde relativement simple et efficace que je conseillerais à quelqu’un n’ayant qu’un ordinateur personnel à sauvegarder et pas de mini-serveur allumé 24/7 à la maison. Il permet en effet de respecter la règle des 3-2-1, socle de tout système de sauvegarde qui se respecte.