Sauvegardes Restic : chiffrées, incrémentales et prêtes pour le cloud

Une stratégie de sauvegarde fiable repose sur trois piliers : chiffrement, automatisation et confiance dans la restauration. Restic couvre ces besoins avec une CLI légère et de nombreux backends compatibles.

Ce tutoriel propose une base opérationnelle pour serveurs et petites équipes infrastructure.

1) Installer Restic

Sur Ubuntu/Debian :

sudo apt update
sudo apt install restic -y
restic version

2) Configurer les identifiants du dépôt

Pour des jobs non interactifs, utilisez des variables d’environnement :

export RESTIC_REPOSITORY=s3:https://s3.us-east-1.amazonaws.com/my-restic-bucket
export RESTIC_PASSWORD='use-a-strong-passphrase'
export AWS_ACCESS_KEY_ID='...'
export AWS_SECRET_ACCESS_KEY='...'

Pour un dépôt local :

export RESTIC_REPOSITORY=/backup/restic-repo
export RESTIC_PASSWORD='use-a-strong-passphrase'

Initialisez le dépôt :

restic init

3) Créer le premier snapshot

restic backup /etc /var/www /home

Lister les snapshots :

restic snapshots

4) Appliquer une politique de rétention

Exemple équilibré :

restic forget --prune \
  --keep-last 10 \
  --keep-daily 14 \
  --keep-weekly 8 \
  --keep-monthly 12

Cette politique limite la croissance tout en conservant des points de reprise utiles.

5) Vérifier l’intégrité du dépôt

Contrôle rapide :

restic check --read-data-subset=5%

Contrôle complet périodique :

restic check

6) Test de restauration (indispensable)

Restaurez un fichier ciblé depuis le snapshot le plus récent :

restic restore latest --target /tmp/restore-test --include /etc/nginx/nginx.conf

Validez contenu, permissions et délai de récupération.

7) Automatiser avec systemd

Service /etc/systemd/system/restic-backup.service :

[Unit]
Description=Restic Backup Job

[Service]
Type=oneshot
EnvironmentFile=/etc/restic/env
ExecStart=/usr/bin/restic backup /etc /var/www /home
ExecStartPost=/usr/bin/restic forget --prune --keep-last 10 --keep-daily 14 --keep-weekly 8 --keep-monthly 12

Timer /etc/systemd/system/restic-backup.timer :

[Unit]
Description=Run Restic backup daily

[Timer]
OnCalendar=*-*-* 02:15:00
Persistent=true

[Install]
WantedBy=timers.target

Activer le timer :

sudo systemctl daemon-reload
sudo systemctl enable --now restic-backup.timer
sudo systemctl list-timers | grep restic

Bonnes pratiques

  • Stocker le mot de passe de dépôt dans un coffre de secrets
  • Séparer les credentials backup des credentials applicatifs
  • Conserver une copie immuable/hors ligne contre le ransomware
  • Documenter un runbook de restauration par priorités

Conclusion

Restic fournit des fondamentaux de protection de données robustes avec une complexité limitée. En automatisant snapshots, rétention, contrôles d’intégrité et tests de restauration, vous obtenez un socle de continuité fiable.

Le facteur décisif reste la discipline opérationnelle : un backup doit être observable, testé et réellement restaurable.