Qu’est-ce que Plakar ?

Plakar est une solution de sauvegarde open source développée par PlakarKorp, conçue pour répondre aux limitations des outils classiques face aux volumes de données modernes. Écrit en Go, il combine déduplication, compression et chiffrement de bout en bout dans un binaire unique, sans dépendances externes.

Le projet a rejoint la Linux Foundation et la Cloud Native Computing Foundation (CNCF), ce qui témoigne de sa maturité et de son ancrage dans l’écosystème open source professionnel.

Plakar résout un problème fondamental : le chiffrement tue habituellement la déduplication. Son moteur Kloset effectue la déduplication avant le chiffrement, atteignant un ratio d’efficacité supérieur à 100:1.


Fonctionnalités principales

Déduplication + chiffrement : le moteur Kloset

La plupart des outils de sauvegarde doivent choisir entre déduplication efficace et chiffrement fort. Plakar résout ce dilemme grâce à son moteur Kloset qui déduplique les blocs de données avant de les chiffrer. Résultat : une empreinte de stockage minimale sans sacrifier la confidentialité.

Vérification d’intégrité cryptographique

Plakar génère des preuves cryptographiques permettant de vérifier qu’une sauvegarde est intègre sans avoir à la restaurer entièrement. Exit les tests de restauration laborieux pour détecter le bit-rot.

Stockage flexible

  • Disque local ou NAS
  • Stockage objet S3 (AWS, MinIO, Scaleway…)
  • Synchronisation multi-destinations
  • Format ouvert, lisible par du code open source (pas de vendor lock-in)

Interface web intégrée

Une interface web peut être lancée en une commande (plakar ui) pour explorer visuellement les snapshots, parcourir les fichiers et déclencher des restaurations sans toucher à la ligne de commande.

Montage FUSE

Il est possible de monter une sauvegarde comme un système de fichiers classique pour accéder instantanément à n’importe quel fichier sans restauration complète.

Conçu pour l’échelle

Architecturé pour des volumes à l’échelle de l’exaoctet avec une empreinte mémoire minimale, là où des outils comme rsync ou Duplicati montrent leurs limites.


Installation sur Ubuntu (tutoriel complet)

Prérequis

  • Ubuntu 20.04 / 22.04 / 24.04 (amd64 ou arm64)
  • Accès sudo
  • Connexion internet

Méthode 1 — Paquet .deb (recommandée)

C’est la méthode la plus simple pour Ubuntu/Debian. Elle installe plakar comme un paquet système géré par dpkg.

# Télécharger le paquet .deb (amd64)
wget https://plakar.io/dl/plakar_1.0.6_linux_amd64.deb

# Vérifier l'intégrité du fichier (SHA256 disponible sur la page de téléchargement)
sha256sum plakar_1.0.6_linux_amd64.deb

# Installer le paquet
sudo dpkg -i plakar_1.0.6_linux_amd64.deb

# Vérifier l'installation
plakar version

Pour les machines ARM64 (Raspberry Pi, instances AWS Graviton…) :

wget https://plakar.io/dl/plakar_1.0.6_linux_arm64.deb
sudo dpkg -i plakar_1.0.6_linux_arm64.deb

Méthode 2 — Via Go (dernière version depuis les sources)

Si vous souhaitez toujours avoir la dernière version ou contribuer au projet :

# Installer Go (version 1.23.3 minimum)
sudo apt update && sudo apt install -y golang-go

# Vérifier la version
go version

# Installer plakar depuis les sources
go install github.com/PlakarKorp/plakar@latest

# Ajouter le répertoire Go bin au PATH (à placer dans ~/.bashrc ou ~/.profile)
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.bashrc
source ~/.bashrc

# Vérifier
plakar version

Initialiser un dépôt de sauvegardes

Plakar utilise la notion de dépôt (store) pour stocker les snapshots. Il peut être local, sur un NFS, ou sur S3.

# Créer le répertoire de stockage
sudo mkdir -p /var/backups/plakar
sudo chown $USER:$USER /var/backups/plakar

# Initialiser le dépôt (avec chiffrement — un mot de passe sera demandé)
plakar at /var/backups/plakar create

Lors de la création, Plakar vous demande une passphrase pour chiffrer les données. Choisissez un mot de passe fort et conservez-le précieusement : sans lui, vos sauvegardes sont illisibles.

Effectuer une première sauvegarde

# Sauvegarder /etc (exemple)
plakar at /var/backups/plakar backup /etc

# Sauvegarder plusieurs répertoires en une commande
plakar at /var/backups/plakar backup /etc /home /var/www

Lister les snapshots

plakar at /var/backups/plakar ls

Chaque snapshot est identifié par un ID unique (hash). Exemple de sortie :

2024-04-26T10:32:11Z  a1b2c3d4  /etc  (128 MB → 12 MB dédupliqué)

Restaurer des données

# Restaurer un snapshot complet vers un répertoire cible
plakar at /var/backups/plakar restore -to /tmp/restore a1b2c3d4

# Vérifier l'intégrité sans restaurer
plakar at /var/backups/plakar check a1b2c3d4

Lancer l’interface web

plakar at /var/backups/plakar ui

L’interface est accessible sur http://localhost:9090 par défaut.

Synchroniser vers S3

# Configurer les credentials AWS/S3 dans l'environnement
export AWS_ACCESS_KEY_ID="votre_clé"
export AWS_SECRET_ACCESS_KEY="votre_secret"

# Synchroniser le dépôt local vers un bucket S3
plakar at /var/backups/plakar sync to @s3://mon-bucket/plakar

Automatiser avec systemd

Pour des sauvegardes quotidiennes automatiques, créez un timer systemd :

sudo nano /etc/systemd/system/plakar-backup.service
[Unit]
Description=Sauvegarde quotidienne Plakar
After=network.target

[Service]
Type=oneshot
User=plakar
ExecStart=/usr/bin/plakar at /var/backups/plakar backup /etc /home /var/www
Environment="PLAKAR_PASSPHRASE=votre_passphrase_ici"
sudo nano /etc/systemd/system/plakar-backup.timer
[Unit]
Description=Timer sauvegarde quotidienne Plakar

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target
sudo systemctl daemon-reload
sudo systemctl enable --now plakar-backup.timer

# Vérifier que le timer est actif
systemctl list-timers plakar-backup.timer

Sécurisation post-installation

1. Créer un utilisateur dédié sans shell interactif

Ne jamais faire tourner un service de sauvegarde avec votre compte utilisateur ou root. Créez un compte dédié :

sudo useradd -r -s /usr/sbin/nologin -d /var/backups/plakar plakar
sudo mkdir -p /var/backups/plakar
sudo chown -R plakar:plakar /var/backups/plakar
sudo chmod 700 /var/backups/plakar

2. Isoler la passphrase dans un fichier protégé

Ne jamais mettre la passphrase en clair dans un fichier de service systemd lisible par tous. Utilisez un fichier de credentials :

# Créer le fichier de passphrase avec permissions strictes
sudo bash -c 'echo "VotrePassphraseTrèsForte" > /etc/plakar/passphrase'
sudo chmod 600 /etc/plakar/passphrase
sudo chown plakar:plakar /etc/plakar/passphrase

Puis dans le fichier de service systemd, remplacez la variable d’environnement par :

[Service]
User=plakar
EnvironmentFile=/etc/plakar/passphrase
ExecStart=/usr/bin/plakar at /var/backups/plakar backup /etc /home /var/www

Ou utilisez la fonctionnalité native de Plakar pour récupérer le secret via une commande externe (Retrieving secrets via external command), compatible avec des gestionnaires comme HashiCorp Vault ou pass.

3. Restreindre les permissions sur le dépôt

# Seul l'utilisateur plakar peut lire/écrire le dépôt
sudo chmod 700 /var/backups/plakar
sudo chown -R plakar:plakar /var/backups/plakar

# Vérifier
ls -la /var/backups/

4. Appliquer des restrictions systemd (sandboxing)

Ajoutez ces directives dans la section [Service] pour limiter les capacités du processus :

[Service]
User=plakar
Group=plakar
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=read-only
ReadWritePaths=/var/backups/plakar
PrivateTmp=true
ProtectKernelTunables=true
ProtectControlGroups=true
RestrictSUIDSGID=true
CapabilityBoundingSet=

5. Surveiller l’intégrité des sauvegardes

Planifiez une vérification cryptographique hebdomadaire distincte des sauvegardes :

sudo nano /etc/systemd/system/plakar-check.service
[Unit]
Description=Vérification d'intégrité des sauvegardes Plakar

[Service]
Type=oneshot
User=plakar
EnvironmentFile=/etc/plakar/passphrase
ExecStart=/usr/bin/plakar at /var/backups/plakar check
StandardOutput=journal
StandardError=journal
sudo nano /etc/systemd/system/plakar-check.timer
[Unit]
Description=Vérification hebdomadaire intégrité Plakar

[Timer]
OnCalendar=weekly
Persistent=true

[Install]
WantedBy=timers.target
sudo systemctl daemon-reload
sudo systemctl enable --now plakar-check.timer

6. Chiffrer le dépôt de destination (règle 3-2-1)

Appliquez la règle de sauvegarde 3-2-1 :

  • 3 copies des données
  • 2 supports différents (ex : disque local + S3)
  • 1 copie hors site (bucket S3 dans une autre région ou chez un autre prestataire)

Puisque Plakar chiffre les données avant de les envoyer vers S3, même si votre bucket est compromis, les données restent illisibles sans la passphrase.

7. Limiter l’accès réseau à l’interface web

Si vous activez l’interface web (plakar ui), ne l’exposez jamais directement sur internet. Utilisez un tunnel SSH ou restreignez-la à l’interface locale :

# Écouter uniquement sur localhost
plakar at /var/backups/plakar ui --bind 127.0.0.1:9090

Pour y accéder depuis votre poste de travail, utilisez un tunnel SSH :

ssh -L 9090:127.0.0.1:9090 user@votre-serveur

Puis ouvrez http://localhost:9090 dans votre navigateur.

8. Mettre en place des alertes de sauvegarde manquée

Configurez systemd pour notifier en cas d’échec :

sudo nano /etc/systemd/system/plakar-backup-alert@.service
[Unit]
Description=Alerte échec sauvegarde Plakar

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'echo "ALERTE : la sauvegarde Plakar a échoué sur %i" | mail -s "Plakar backup FAIL" admin@votre-domaine.fr'

Puis ajoutez dans plakar-backup.service :

[Unit]
OnFailure=plakar-backup-alert@%n.service

Conclusion

Plakar s’impose comme une alternative sérieuse à Restic ou Duplicati pour les administrateurs qui souhaitent un outil de sauvegarde moderne, chiffré et sans compromis sur la déduplication. Sa conception Go-native, son moteur Kloset et son audit cryptographique publié en font un choix solide pour protéger des données sensibles.

La version actuelle (1.0.6) est encore marquée comme non production-ready par les développeurs eux-mêmes — à prendre en compte pour des environnements critiques — mais elle est déjà pleinement fonctionnelle pour des tests, des homelab, ou des infrastructures secondaires.

Pour aller plus loin : documentation officielle Plakar · dépôt GitHub

Laisser un commentaire