Ce que vous saurez faire
- Règle 3-2-1 pour backups
- Restic + B2 chiffré
- PostgreSQL PITR
- Tests de restauration automatiques
Vue d’ensemble 1 — Règle 3-2-1-1-0
3 copies de chaque donnée critique
2 supports différents (disque + cloud)
1 copie hors site
1 copie offline/immuable (anti-ransomware)
0 erreur: chaque backup testé
Vue d’ensemble 2 — Inventaire
Critique Fréquence RPO Rétention
Base de données H+1 1h 90 jours
Fichiers users J+1 24h 90 jours
Emails J+1 24h 7 ans
Contrats PDF temps réel 0 10 ans
Config à changement 0 illimité
VMs système J+7 + M+1 1 sem 1 an
Vue d’ensemble 3 — Rsync incrémental
#!/usr/bin/env bash
# /usr/local/bin/backup.sh
set -euo pipefail
HORODATAGE=$(date +%Y%m%d_%H%M)
DEST="/srv/backups/$HORODATAGE"
DERNIER="/srv/backups/dernier"
mkdir -p "$DEST"
rsync -aH --delete --link-dest="$DERNIER" \
/srv/data/ "$DEST/"
ln -snf "$DEST" "$DERNIER"
# Rotation: 7 quotidiennes + 4 hebdo + 12 mensuelles
find /srv/backups -maxdepth 1 -type d -mtime +7 -name '2[0-9]*' \
| sort | head -n -30 | xargs -r rm -rf
# Sync vers backup distant
rsync -aHz --delete /srv/backups/ backup@nas.itsc.sn:/volumes/itsc/
Vue d’ensemble 4 — Restic vers S3/B2
apt install -y restic
export RESTIC_REPOSITORY="s3:s3.amazonaws.com/itsc-backups-2026"
export RESTIC_PASSWORD="$(cat /etc/restic.pass)"
export AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=...
restic init
restic backup /srv/data /etc /home --tag quotidien --exclude-caches
# Rétention
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune
# Restauration
restic snapshots
restic restore latest --target /tmp/restore
Vue d’ensemble 5 — PostgreSQL dump chiffré
pg_dump --format=custom --compress=9 -d itsc \
| age -r $(cat /etc/age.pub) \
| aws s3 cp - "s3://itsc-backups/pg/$(date +%F).dump.age" \
--sse AES256 --storage-class STANDARD_IA
Vue d’ensemble 6 — WAL archiving PITR
# postgresql.conf
wal_level = replica
archive_mode = on
archive_command = 'aws s3 cp %p s3://itsc-backups/pg-wal/%f --storage-class STANDARD_IA'
# Restauration point-in-time
pg_basebackup -D /data/restore -Xs -P
# recovery_target_time = '2026-04-22 14:23:00'
Vue d’ensemble 7 — Sauvegardes immuables (anti-ransomware)
# S3 Object Lock en mode COMPLIANCE
aws s3api put-object-lock-configuration --bucket itsc-backups \
--object-lock-configuration '{
"ObjectLockEnabled": "Enabled",
"Rule": { "DefaultRetention": { "Mode": "COMPLIANCE", "Days": 30 } }
}'
# Impossible de supprimer même avec compte AWS root
Vue d’ensemble 8 — Test mensuel automatique
#!/usr/bin/env bash
# /usr/local/bin/restore-test.sh
DOSSIER="/tmp/restore-test-$(date +%F)"
mkdir -p "$DOSSIER"
restic restore latest --target "$DOSSIER"
# Contrôle intégrité
EXPECTED=1500
ACTUAL=$(find "$DOSSIER" -type f | wc -l)
if [ "$ACTUAL" -lt "$EXPECTED" ]; then
curl -X POST "$SLACK_WEBHOOK" \
-d "{\"text\":\"ALERTE: $ACTUAL fichiers restaurés (attendus $EXPECTED)\"}"
fi
rm -rf "$DOSSIER"
Vue d’ensemble 9 — Log SQL backup
CREATE TABLE backup_log (
id SERIAL PRIMARY KEY,
ts TIMESTAMPTZ DEFAULT now(),
type TEXT, -- 'db', 'files', 'mail'
status TEXT, -- 'success', 'failure'
duration_s INT,
size_bytes BIGINT,
destination TEXT,
verified BOOLEAN DEFAULT false
);
-- Rapport hebdo
SELECT type,
COUNT(*) FILTER (WHERE status = 'success') AS success,
COUNT(*) FILTER (WHERE status = 'failure') AS failure,
MAX(ts) AS last_backup
FROM backup_log
WHERE ts >= CURRENT_DATE - 7
GROUP BY type;
Vue d’ensemble 10 — Chiffrement avec age
age-keygen -o ~/.age/key.txt
# Publique: age1xxxxxx...
tar czf - /srv/data | age -r age1xxxxxx... > backup.tar.gz.age
# Restauration
age -d -i ~/.age/key.txt backup.tar.gz.age | tar xzf -
Coûts 1 To
Backblaze B2: 6 USD/mo
AWS S3 Standard-IA: 12,5 USD/mo
Hetzner Storage: 3,50 EUR/mo
Restic + B2: 6 USD + 0 bandwidth sortante (recommandé PME)
Plan 30 jours
- J1: cartographier données critiques
- J3: choisir outil (Restic + B2)
- J7: premier backup complet chiffré
- J14: rotation/rétention automatisées
- J21: restauration test réussie
- J30: monitoring Slack + runbook
Vous cherchez un hébergement web sérieux et abordable ?
Hostinger offre des serveurs avec installation WordPress en un clic et un panel simple. Notre équipe l’utilise au quotidien.
Lien d affiliation. Si vous achetez via ce lien, le blog reçoit une petite commission sans surcoût pour vous.
Pourquoi la règle 3-2-1 reste la référence en 2026
Une PME de Dakar qui perd ses fichiers comptables un vendredi soir avant clôture mensuelle peut mettre 6 semaines à reconstituer l’état des stocks et des créances clients. Le coût caché dépasse souvent 3 millions FCFA en honoraires expert-comptable, en commandes manquées et en chaos interne. La règle 3-2-1 est le garde-fou minimal : 3 copies des données, sur 2 supports différents, dont 1 hors site. Cette discipline simple résiste à 95 % des incidents : panne disque, vol de laptop, ransomware, dégât des eaux, foudre.
Ce tutoriel adapte la règle aux contraintes ouest-africaines : coupures électriques, débits internet limités, budgets contraints. On utilise Veeam Community Edition pour les serveurs Windows, Restic pour Linux et postes nomades, Borg pour les développeurs avancés. Aucun outil propriétaire payant, aucune dépendance cloud étrangère obligatoire.
Étape 1 : inventorier les données critiques de la PME
Avant tout outil, il faut savoir quoi sauvegarder. Une PME type d’Almadies ou de Cocody manipule cinq familles de données critiques : bases de données comptables (Sage, Odoo, Wavesoft), fichiers bureautiques (Word, Excel, PDF), e-mails serveur (Exchange ou MailEnable), photos et vidéos commerciales, configurations serveur et applicatives.
# Linux : audit volumétrique
du -sh /home/* /srv/* /var/lib/mysql 2>/dev/null | sort -h
L’output classe les répertoires par taille. Une PME de 15 personnes pèse en général 80 à 250 Go de données vraiment uniques (hors films et installeurs). Cette volumétrie conditionne le dimensionnement du stockage et le débit nécessaire vers le site distant.
Étape 2 : choisir les 2 supports physiques différents
La règle impose deux types de supports distincts pour résister aux pannes corrélées. Combinaison recommandée : un NAS Synology DS224+ équipé de 2 disques 4 To en RAID 1 (environ 720 000 FCFA tout compris), plus un disque externe USB 3.2 Western Digital My Book 6 To (environ 110 000 FCFA). Le NAS reçoit la sauvegarde quotidienne incrémentale, le disque externe la sauvegarde hebdomadaire complète.
Évitez deux pièges fréquents : deux disques de la même marque achetés le même jour (taux de défaillance corrélé à 4,2 % à 3 ans selon Backblaze), et un seul gros disque interne au serveur (une panne carte mère emporte tout). Les disques NAS doivent être de gamme NAS (WD Red Plus, Seagate IronWolf), pas de bureau.
Étape 3 : déployer Veeam pour les serveurs Windows
Veeam Backup & Replication Community Edition sauvegarde gratuitement jusqu’à 10 charges (machines physiques ou VM). Téléchargez la version 12.2 sur veeam.com après création de compte. L’installation pèse 5,3 Go et prend 25 minutes sur un serveur HP DL360.
# Création d'un job de sauvegarde quotidienne
New-VBRBackupJob -Name "PME-Daily" -Entity (Get-VBRServer) `
-BackupRepository (Get-VBRBackupRepository -Name "NAS-Synology") `
-RetainCycles 30
Le job tourne chaque nuit à 23h et conserve 30 points de restauration. La déduplication Veeam ramène 250 Go bruts à environ 35 Go effectifs sur le NAS. Vérifiez le rapport quotidien envoyé par e-mail : un job en succès affiche un point vert, un job en avertissement un point orange à investiguer le matin même.
Étape 4 : utiliser Restic pour les postes Linux et macOS
Restic est un outil de sauvegarde chiffrée de bout en bout, écrit en Go, qui produit des dépôts dédupliqués. Idéal pour les laptops développeurs et les postes graphistes sous macOS. Installation en une commande sur Ubuntu 24.04 LTS.
sudo apt install restic
restic init --repo /mnt/nas/restic-pme
restic backup --repo /mnt/nas/restic-pme /home /etc /var/www \
--exclude='node_modules' --exclude='.cache'
Le premier backup d’un laptop de 80 Go prend environ 45 minutes en réseau filaire gigabit. Les suivants sont incrémentaux : 2 à 5 minutes typiquement. Le mot de passe du dépôt doit être stocké dans un gestionnaire (KeePassXC, Bitwarden) car sans lui les sauvegardes sont irrécupérables.
Étape 5 : externaliser la copie hors site avec Backblaze B2
La copie hors site protège contre l’incendie, le vol ou la confiscation de matériel. Backblaze B2 facture 6 USD par To et par mois (environ 3 600 FCFA), sans frais de sortie pour les premiers 3x du stockage. C’est l’option la plus économique pour une PME ouest-africaine. Alternative locale : Orange Cloud Pro Sénégal à environ 8 000 FCFA/mois pour 500 Go.
restic -r b2:pme-bucket:/restic-offsite backup /home /srv \
--password-file /root/.restic-pwd
Le débit upload depuis Dakar vers Backblaze EU-Central tourne autour de 8 Mbps en heures creuses sur fibre Sonatel 50M, soit 3,5 Go par heure. Une sauvegarde complète initiale de 80 Go prend une nuit. Les incrémentales quotidiennes pèsent 200 Mo à 2 Go et passent en 5 à 30 minutes.
Étape 6 : tester la restauration une fois par mois
Une sauvegarde non testée n’est pas une sauvegarde. Programmez un test mensuel : restauration d’un fichier au hasard, restauration complète d’une VM secondaire, vérification de l’intégrité du dépôt Restic. La discipline du test révèle les ransomwares cryptolockés silencieusement, les disques NAS qui se dégradent, les jobs Veeam qui tournent sur du vide.
# Test Restic mensuel
restic -r /mnt/nas/restic-pme check --read-data-subset=10%
restic -r /mnt/nas/restic-pme restore latest --target /tmp/test-restore --include /etc/nginx
L’option –read-data-subset=10% relit 10 % aléatoires des données pour vérifier qu’elles ne sont pas corrompues. Sur un dépôt de 50 Go, le test prend environ 8 minutes. Sans cette vérification, un bit rot peut passer inaperçu pendant des mois.
Étape 7 : protéger contre les ransomwares avec l’immuabilité
Les ransomwares modernes ciblent les sauvegardes en premier. La parade est l’immuabilité : des sauvegardes que même un administrateur compromis ne peut effacer pendant N jours. Backblaze B2 propose Object Lock gratuit. Veeam supporte la mise à zéro impossible (Hardened Repository) sur Linux avec un compte dédié.
b2 update-bucket --defaultRetention 30 pme-bucket compliance
# Pendant 30 jours, aucune suppression possible
L’immuabilité de 30 jours suffit pour la plupart des scénarios : la détection ransomware se fait généralement en moins de 7 jours. Combinée à la rotation des clés API tous les 90 jours, elle place la barre très haut pour un attaquant.
Étape 8 : documenter et former l’équipe
Une procédure de restauration complexe documentée nulle part disparaît avec son auteur. Rédigez un PRA (Plan de Reprise d’Activité) de 4 à 6 pages : qui contacter en cas d’incident, quels comptes utiliser, dans quel ordre restaurer, où récupérer le mot de passe Restic, quel délai cible RTO et RPO. Le document est imprimé et stocké dans un coffre, pas seulement sur le serveur sauvegardé.
Formez deux personnes minimum à la procédure de restauration. Le bus factor d’une PME où une seule personne sait restaurer est inacceptable. Pour étoffer le tableau sur l’analyse opérationnelle, voir notre modèle Power Pivot pour PME et notre analyse de rentabilité produit.
Test de restauration mensuel : la seule preuve qui compte
Une sauvegarde non testee n’est pas une sauvegarde. Cette regle est apprise dans la douleur par chaque PME qui decouvre, le jour d’un ransomware ou d’un incendie, que les jeux de bandes ou les snapshots cloud sont corrompus, incomplets, ou impossibles a remonter dans un delai acceptable. Le test de restauration mensuel est non negociable. Il ne s’agit pas de relire un fichier, mais de remonter un service complet (base de donnees, application, partage de fichiers) sur une infrastructure neuve et de verifier que les utilisateurs metiers retrouvent leurs donnees.
Le protocole simple : choisir une ressource critique (par exemple la base ERP de la PME), provisionner un VPS ou une machine virtuelle vierge, executer la procedure documentee de restauration depuis la sauvegarde du jour, mesurer le temps total, faire valider l’integrite par un utilisateur metier (ouvrir 5 ecrans, lancer 3 rapports, comparer aux donnees de production). Pour une PME a Bamako qui exploite Odoo et un partage Samba, ce test prend 2 heures par mois et coute environ 6 EUR de VPS Hetzner ephemere.
Le journal de tests de restauration est l’artefact qui prouve la rigueur. Format minimal : date, ressource testee, sauvegarde utilisee (date et taille), duree de restauration mesuree, statut (succes echec partiel), incidents constates, actions correctives. Sur 12 mois, ce journal documente la fiabilite reelle. Sans ce journal, la conformite a un audit RGPD ou ISO 27001 est tout simplement impossible a defendre.
Chiffrement Restic : le standard open source pour PME
Restic est un outil de sauvegarde open source, ecrit en Go, qui implemente nativement le chiffrement AES-256 et la deduplication. La syntaxe de base est simple. La commande restic init -r /chemin/repo initialise un depot, restic backup /donnees cree un snapshot, restic snapshots liste les sauvegardes, restic restore latest --target /restauration remet en place. Le mot de passe protegeant le depot doit etre stocke en dehors du serveur sauvegarde (gestionnaire de mots de passe ou coffre-fort dedie), faute de quoi un attaquant qui prend le serveur prend aussi les sauvegardes.
La compatibilite des backends est large. Restic ecrit nativement vers S3 (AWS, Wasabi, Backblaze B2), Azure Blob, Google Cloud Storage, FTP, SFTP, et systeme de fichiers local. Pour une PME francophone a Cotonou, la combinaison gagnante est : sauvegarde locale quotidienne sur NAS (cible primaire) plus replication chiffree vers Backblaze B2 (cible secondaire offsite). Backblaze B2 coute 6 USD par teraoctet par mois, soit environ 3 600 FCFA, ce qui rend le 3-2-1 abordable meme pour une PME de 10 personnes.
Le retention policy se configure avec restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 12 --prune. Cette politique conserve les 7 derniers quotidiens, 4 hebdomadaires, et 12 mensuels. Au total, environ 23 snapshots sont gardes, ce qui couvre 12 mois d’historique avec une volumetrie raisonnable. La serie sauvegarde 3-2-1 detaille les variantes de retention pour secteurs reglementes.
RTO et RPO : fixer les objectifs avant d acheter la solution
RTO (Recovery Time Objective) est le temps maximum tolerable d’indisponibilite. RPO (Recovery Point Objective) est la perte de donnees maximum tolerable, mesuree en temps depuis le dernier point de sauvegarde restaurable. Ces deux objectifs gouvernent l’architecture de sauvegarde. Une PME de 8 personnes qui peut tolerer 4 heures d’indisponibilite et 24 heures de perte de donnees a une architecture differente d’une banque qui exige 30 minutes d’indisponibilite et 5 minutes de perte de donnees.
Pour le scenario PME standard (RTO 4h, RPO 24h), une sauvegarde quotidienne nocturne avec restauration documentee suffit. Pour RTO 1h et RPO 1h, il faut des sauvegardes incrementales horaires plus une replication active vers un site de secours preconfigure. Le cout passe de 200 EUR par mois a 1 500 EUR par mois pour un environnement equivalent. La discipline du dirigeant est de fixer RTO et RPO en concertation avec les metiers avant de demander un devis : les revoir une fois l’achat fait coute beaucoup plus cher.
Le test RTO valide la promesse. La theorie dit « restauration en 1 heure ». La realite peut etre 4 heures parce que la documentation est obsolete, parce qu’il faut redemander un certificat SSL, parce que le mot de passe du depot Restic est dans un trousseau inaccessible. Le test mensuel revele ces frictions et permet de les corriger avant la crise reelle. Une PME a Saint-Louis a ainsi decouvert que sa restauration prenait 6 heures au lieu des 2 prevues, simplement parce que le debit Internet montant du NAS plafonnait a 30 Mbps.