Sauvegarde distante automatisée avec Raspberry Pi, OpenMediaVault et WireGuard
Introduction
En matière de sauvegarde, on entend souvent parler de la règle 3-2-1 : 3 copies des données, stockées sur 2 supports différents, dont 1 copie hors site. Ce projet permet de mettre en place une sauvegarde distante, sécurisée et automatisée à faible coût grâce à un Raspberry Pi équipé d’un SSD USB, OpenMediaVault, WireGuard, Rsync et Cron.
1.Schéma de fonctionnement
NAS / Freebox (domicile)
│
│ VPN WireGuard
▼
Raspberry Pi distant
(OpenMediaVault + SSD USB)
│
▼
Stockage local + anciennes versions
Notifications email : début de sauvegarde et résultat.
2.Matériel utilisé
Raspberry Pi 3B+
SSD USB
Raspberry Pi OS Lite 64 bits
OpenMediaVault
WireGuard
Connexion Internet
3.Prérequis
NAS ou partage SMB accessible
Serveur WireGuard opérationnel
Accès Internet sur les deux sites
SSD configuré dans OpenMediaVault
4. Installation de Raspberry Pi OS Lite
Installer Raspberry Pi OS Lite 64 bits avec Raspberry Pi Imager, activer SSH, configurer le réseau puis mettre à jour le système.
sudo apt update && sudo apt upgrade -y
5. Installation d’OpenMediaVault
Installation :
wget -O – https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
Configurer ensuite le disque dans l’interface OMV et noter le chemin du type /srv/dev-disk-by-uuid-xxxxxxxx.
6. Installation de WireGuard
Installer WireGuard puis configurer le fichier /etc/wireguard/wg0.conf.
sudo apt install wireguard -y
Cas particulier : accès au réseau de la Freebox
La commande suivante est essentielle dans certaines configurations :
sudo ip route add 192.168.1.0/24 dev wg0
Elle ajoute une route spécifique vers le réseau distant à travers le tunnel WireGuard. Sans elle, le VPN peut être connecté mais les équipements du réseau distant (Freebox, NAS, serveur SMB…) peuvent rester inaccessibles.
7. Accès au partage SMB
Créer /mnt/freebox puis le fichier /root/.smbcred contenant le nom d’utilisateur et le mot de passe du partage SMB.
8. Notifications par email
Installer mailutils et configurer Postfix en mode Internet Site.
9. Script de sauvegarde
#!/bin/bash
set -x
WG=”wg0″
MOUNT=”/mnt/freebox”
DEST=”/srv/dev-disk-by-uuid-xxxxxxxxxxxxxxxx”
LOG=”/home/sauv-ext1/backup.log”
DATE=$(date +%F)
MAIL=”monemail@gmail.com”
echo “—————————————-” >> $LOG
echo “=== $DATE : Début sauvegarde ===” >> $LOG
echo “🚀 Début sauvegarde le $(date)” | mail -s “Backup START RPi” $MAIL
trap “sudo wg-quick down $WG 2>/dev/null” EXIT
sudo wg-quick up $WG
sudo ip route add 192.168.1.0/24 dev wg0
sleep 10
sudo mount -t cifs //192.168.1.254/Freebox $MOUNT -o credentials=/root/.smbcred,vers=3.0
sudo mkdir -p “$DEST/old_versions/$DATE”
if sudo rsync -av –backup –backup-dir=”$DEST/old_versions/$DATE” “$MOUNT/Photos/” “$DEST/” ; then
echo “✅ Sauvegarde réussie” >> $LOG
RESULT=”OK”
else
echo “❌ Erreur sauvegarde” >> $LOG
RESULT=”ERREUR”
fi
sudo umount $MOUNT
sudo wg-quick down $WG
if [ “$RESULT” = “OK” ]; then
echo “✅ Backup OK le $(date)” | mail -s “Backup OK RPi” $MAIL
else
echo “❌ Backup ERROR le $(date)” | mail -s “Backup ERROR RPi” $MAIL
fi
echo “=== $DATE : Fin sauvegarde ===” >> $LOG
[ -d “$DEST/old_versions” ] && sudo find “$DEST/old_versions” -type d -mtime +30 -exec rm -rf {} \;
10. Test manuel
Exécuter : bash /home/sauv-ext1/backup.sh puis vérifier le fichier backup.log ainsi que les emails reçus.
11. Automatisation Cron
Exemple : 0 3 * * 0 /home/sauv-ext1/backup.sh
Cette configuration lance la sauvegarde tous les dimanches à 3h00.
12.Vérifications finales
VPN fonctionnel
Montage SMB réussi
Réception des emails
Fichiers copiés
Versioning opérationnel
Nettoyage automatique des anciennes versions
13.Conclusion
Cette architecture constitue une solution économique pour mettre en œuvre une sauvegarde hors site conforme à la règle 3-2-1 grâce à un Raspberry Pi, WireGuard et OpenMediaVault.
