Le rançongiciel qui chiffre les partages réseau, la suppression accidentelle d’un répertoire de production, la panne d’un disque sur un serveur isolé : dans tous ces scénarios, la question n’est pas de savoir si vous disposez d’une sauvegarde, mais si vous êtes capable de la restaurer, rapidement et sans surprise. Pour de nombreuses équipes, la sauvegarde des serveurs Linux, des postes d’administration ou des données applicatives repose encore sur des scripts rsync ou tar vieillissants, sans chiffrement, sans déduplication et, surtout, sans vérification régulière.
Restic répond précisément à ce besoin. Ce logiciel libre de sauvegarde, distribué sous licence BSD 2-Clause, se présente sous la forme d’un unique exécutable qui chiffre, déduplique et vérifie vos données, vers un disque local comme vers un stockage objet dans le cloud. Nous détaillons ici son fonctionnement, son installation, son utilisation au quotidien et les bonnes pratiques pour l’intégrer à une politique de sauvegarde d’entreprise.
Qu’est-ce que Restic ?
Restic est un programme de sauvegarde open source écrit en Go, qui fonctionne sous Linux, BSD, macOS et Windows. Son slogan, « Backups done right! », résume l’ambition du projet. Il ne nécessite aucun serveur dédié : le binaire se suffit à lui-même et dialogue directement avec le stockage de destination, appelé dépôt (repository). Au moment de la rédaction, la dernière version publiée est la 0.19.1, sortie le 5 juillet 2026 ; le projet, très actif, dépasse les 36 000 étoiles sur GitHub.
Restic s’articule autour de cinq objectifs de conception :
Simple : peu de configuration pour sauvegarder, et une restauration accessible.
Rapide : la vitesse ne doit être limitée que par la bande passante du réseau ou du disque.
Vérifiable : vous devez pouvoir confirmer que vos données sont restaurables.
Sécurisé : les données sont chiffrées et protégées, même sur un stockage auquel vous ne faites pas confiance.
Efficace : chaque instantané ne stocke que les nouvelles données, et les doublons sont éliminés avant l’envoi.
Architecture et fonctionnement
Le cœur de Restic est le dépôt. À chaque sauvegarde, Restic crée un snapshot (instantané) qui décrit l’état d’un ensemble de fichiers à un instant donné. Chaque snapshot apparaît comme une sauvegarde complète, mais seules les données nouvelles sont réellement transférées et stockées.
Cette efficacité repose sur le découpage défini par le contenu (Content Defined Chunking). Restic découpe les fichiers en blocs, appelés blobs, à l’aide d’empreintes de Rabin calculées sur une fenêtre glissante de 64 octets. Les fichiers de moins de 512 Kio ne sont pas découpés ; les autres produisent des blobs de 512 Kio à 8 Mio, avec une taille moyenne visée de 1 Mio. Comme les points de coupe dépendent du contenu et non de la position, l’insertion de quelques octets au début d’un fichier volumineux ne modifie que les blocs concernés : le reste est reconnu et dédupliqué, y compris entre plusieurs machines qui sauvegardent vers le même dépôt.
Côté sécurité, toutes les données stockées dans le dépôt sont chiffrées en AES-256 en mode compteur et authentifiées par un code Poly1305-AES. Le mot de passe du dépôt passe par la fonction de dérivation scrypt, qui produit les clés de chiffrement et d’authentification. Le stockage de destination ne voit donc que des fichiers opaques : un fournisseur cloud ou un serveur compromis ne peut ni lire vos données, ni les altérer sans que Restic le détecte. Les blobs sont regroupés dans des fichiers pack, accompagnés d’index et de fichiers de snapshots, eux aussi chiffrés.
Depuis le format de dépôt version 2, Restic compresse également les données avec Zstandard, ce qui réduit sensiblement l’espace occupé par les journaux, les dumps de bases de données ou les fichiers texte.
Enfin, Restic prend en charge de nombreux backends : répertoire local, serveur SFTP, serveur REST (rest-server), Amazon S3 et stockages compatibles S3, OpenStack Swift, Backblaze B2, Azure Blob Storage, Google Cloud Storage, ainsi que de nombreux autres services via rclone.
Installation
Restic est disponible dans les dépôts de la plupart des distributions. Sous Debian et ses dérivés, un simple apt-get install restic suffit ; sous Fedora, utilisez dnf, et sous RHEL ou CentOS Stream, activez au préalable le dépôt EPEL. Sous macOS, Homebrew propose le paquet ; sous Windows, Scoop et WinGet. Une image Docker officielle est également publiée. Les versions empaquetées par les distributions étant parfois en retard, la commande restic self-update permet de récupérer le binaire officiel le plus récent depuis GitHub.
Une fois l’outil installé, la première étape consiste à initialiser un dépôt. Le mot de passe choisi à ce moment est indispensable : sans lui, aucune restauration n’est possible, et il n’existe aucun mécanisme de récupération.
# Debian / Ubuntu
sudo apt-get install restic
# Fedora
sudo dnf install restic
# RHEL / CentOS Stream (via EPEL)
sudo dnf install epel-release
sudo dnf install restic
# macOS
brew install restic
# Windows
scoop install restic
winget install --exact --id restic.restic --scope Machine
# Docker
docker pull restic/restic
# Mettre à jour vers le dernier binaire officiel
sudo restic self-update
# Initialiser un dépôt local
restic init --repo /srv/restic-repo
# ... sur un serveur SFTP
restic -r sftp:user@host:/srv/restic-repo init
# ... sur un bucket S3
restic -r s3:s3.us-east-1.amazonaws.com/bucket_name init
# ... sur un rest-server
restic -r rest:http://host:8000/ init Utilisation au quotidien
Pour éviter de saisir le dépôt et le mot de passe à chaque commande, et surtout pour automatiser les sauvegardes, Restic lit les variables d’environnement RESTIC_REPOSITORY et RESTIC_PASSWORD_FILE. Stockez le mot de passe dans un fichier lisible uniquement par root (droits 600), jamais dans un script versionné.
La commande backup crée un nouveau snapshot. Vous pouvez l’étiqueter avec --tag et exclure des chemins avec --exclude ou --exclude-file. La commande snapshots liste les instantanés disponibles, avec leur date, leur hôte, leurs étiquettes et les chemins sauvegardés.
Pour la restauration, deux approches coexistent. restore extrait un snapshot complet, ou seulement une partie avec --include, vers un répertoire cible. mount (non disponible sous Windows) expose l’ensemble des snapshots sous la forme d’un système de fichiers en lecture seule : il suffit alors de naviguer dans l’arborescence pour récupérer un fichier précis, sans restaurer tout un instantané.
La rétention passe par forget, qui applique une politique du type « conserver 7 sauvegardes quotidiennes, 5 hebdomadaires et 12 mensuelles ». L’option --dry-run affiche ce qui serait supprimé sans rien effacer, et --prune libère ensuite l’espace occupé par les données qui ne sont plus référencées.
Enfin, check vérifie la cohérence du dépôt. Avec --read-data-subset, Restic relit et déchiffre une fraction des données (par exemple 1/5 ou 10 %), ce qui permet de contrôler l’intégrité complète du dépôt sur plusieurs exécutions sans saturer la bande passante. Pour planifier ces opérations, un timer systemd ou une tâche cron fait parfaitement l’affaire ; notre TP sur la gestion des services, des journaux et des tâches planifiées sous Linux détaille ces mécanismes.
# Variables d'environnement
export RESTIC_REPOSITORY=sftp:backup@nas.example.lan:/srv/restic-repo
export RESTIC_PASSWORD_FILE=/root/.restic-password
# Sauvegarder /etc et /home en excluant les caches
restic backup /etc /home --tag quotidien --exclude-file=/root/restic-excludes.txt
# Lister les snapshots
restic snapshots
# Restaurer le dernier snapshot dans un répertoire de travail
restic restore latest --target /tmp/restore-work
# Restaurer uniquement un sous-dossier
restic restore latest --target /tmp/restore-work --include /etc/nginx
# Parcourir les snapshots comme un système de fichiers (hors Windows)
mkdir -p /mnt/restic && restic mount /mnt/restic
# Simuler, puis appliquer la politique de rétention
restic forget --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --dry-run
restic forget --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --prune
# Vérifier l'intégrité (structure + 10 % des données)
restic check --read-data-subset=10%
# Ajouter une seconde clé d'accès au dépôt
restic key add
# Copier les snapshots vers un second dépôt (règle 3-2-1)
restic -r /srv/restic-repo-copy copy --from-repo /srv/restic-repo Restic face aux alternatives
Restic n’est pas seul sur le créneau de la sauvegarde dédupliquée en ligne de commande. BorgBackup partage la même philosophie (chiffrement, déduplication, compression) et reste très apprécié pour ses performances ; il est toutefois conçu pour sauvegarder vers un répertoire local ou un serveur accessible en SSH, là où Restic s’adresse nativement au stockage objet. Kopia, plus récent, propose en plus une interface graphique et un mode serveur. Duplicati mise sur une interface web conviviale, appréciée sur les postes de travail.
Dans l’écosystème de la virtualisation, Proxmox Backup Server répond à un besoin différent : la sauvegarde de machines virtuelles et de conteneurs, intégrée à l’hyperviseur. Notre TP consacré à la mise en place de Proxmox Backup Server montre comment le déployer. Les deux outils sont complémentaires : PBS pour les VM, Restic pour les fichiers et les données applicatives à l’intérieur des machines ou sur des serveurs physiques.
Face aux suites commerciales comme Veeam Backup, Restic ne propose ni console centralisée, ni restauration granulaire des applications Microsoft, ni support éditeur. En revanche, il est gratuit, auditable, scriptable et léger, ce qui en fait un excellent choix pour les environnements Linux, les serveurs isolés et les équipes à l’aise avec l’automatisation.
Bonnes pratiques
Conservez le mot de passe hors du dépôt : stockez-le dans un coffre-fort de mots de passe et créez au moins une seconde clé avec
restic key add. Un dépôt dont tous les mots de passe sont perdus est définitivement irrécupérable.Appliquez la règle 3-2-1 : trois copies, sur deux supports différents, dont une hors site. La commande
restic copyduplique les snapshots vers un second dépôt, par exemple un bucket S3 dans une autre région.Protégez vos sauvegardes des rançongiciels : un attaquant qui compromet un serveur peut aussi utiliser ses identifiants de sauvegarde pour effacer le dépôt. Utilisez rest-server avec l’option
--append-only, afin que les clients puissent ajouter des sauvegardes sans pouvoir les supprimer, et exécutezforgetetprunedepuis une machine d’administration distincte. Les mécanismes d’immutabilité côté stockage (versionnement, verrouillage d’objets S3) sont une piste complémentaire, à valider avec votre fournisseur.Testez vos restaurations : planifiez
restic check --read-data-subsetchaque semaine et réalisez régulièrement une restauration réelle sur une machine de test. Une sauvegarde jamais restaurée n’est qu’une hypothèse.Supervisez les exécutions : exploitez les codes de retour et la sortie JSON (
--json) de Restic pour alerter en cas d’échec ou de sauvegarde manquante.Documentez la procédure : dans le cadre de la directive NIS 2, la continuité des activités, la gestion des sauvegardes et la reprise après sinistre font partie des mesures de gestion des risques attendues. Une procédure de restauration écrite et testée constitue un élément de preuve précieux.
Conclusion
Restic coche les cases essentielles d’une sauvegarde moderne : chiffrement de bout en bout, déduplication efficace, compression, large choix de stockages et, surtout, outils de vérification intégrés. Sa simplicité de déploiement (un seul binaire, aucun serveur obligatoire) en fait une brique idéale pour protéger serveurs Linux, postes d’administration et données applicatives. Associé à un dépôt en ajout seul, à une copie hors site et à des tests de restauration réguliers, il constitue une base solide pour votre plan de continuité d’activité.
À lire aussi : UrBackup : une solution de sauvegarde libre, simple et complète · Clonezilla pour la sauvegarde et la restauration de disques



