Backup

Je suis en train de bosser sur les sauvegardes et voilà, j’ai choisi Burp pour gérer certaines sauvegardes.

C’est en lisant cet excellent article que je me suis intéressé à Burp qui est très riche en fonctionnalités.

 

Burp ! C’est quoi ce truc ???

Ce « truc » au nom faisant penser au doux son de la gastro est un logiciel de sauvegarde maudairne.

Et par maudairne j’entend qu’il sait faire plein de trucs bien que d’autres logiciels libres ne savent pas tous faire :

  • Client/Serveur
  • Multi-plateforme
  • Prise en charge du VSS
  • Compression
  • Chiffrement
  • Très bonne déduplication
  • WebUI (c’est pas le plus important ni le plus abouti mais elle existe)

 

Installation clients et serveur sous Linux

Version 1.x (stable) :

apt-get install burp

 

Ou pour une version 2 (déconseillée pour le moment) :

apt-get install -y librsync-dev libz-dev libssl-dev uthash-dev libyajl-dev wget unzip gcc g++ make
wget https://github.com/grke/burp/archive/master.zip
unzip master.zip
cd burp-master
./configure
make
make install

 

Configuration du serveur

Définir BURP comme un service Debian en éditant le fichier /etc/default/burp

RUN=yes
DAEMON_ARGS="-c /etc/burp/burp-server.conf -l /var/log/burp"

 

En qui avoir confiance ?

Voir la page dédiée.

Dans notre cas, on fait confiance à l’administrateur système qui gère le serveur, donc on retire des droits aux clients :

Edit : Je donne le droit aux clients de gérer leurs sauvegardes :

client_can_delete=0
client_can_force_backup=1
client_can_list=1
client_can_restore=1
client_can_verify=1

 

Déclaration des clients

La configuration peut maintenant se faire avec l’interface Web. Sinon, à la main, on peut ensuite créer des clients en créant des fichiers dans /etc/burp/clientconfdir :

Edit : Je ne définis que le mot de passe client dans ce fichier.

# Secret entre le client et le serveur (à configurer aussi sur le client)
password = abcdef

 

Burp-ui (interface Web)

Installer l’interface Web et la lancer en tant que service avec Supervisor :

apt-get install -y python-pip python-dev supervisor
pip install burp-ui

 

Configuration de base

Burp-ui fonctionne même sans configuration mais on peut sécuriser un peu plus :

# Forcer le SSL :
ssl: true
# Définition d'un mot de passe
[BASIC]
admin: AwEsOmE-pAsSwOrD

 

Supervisor

Pour lancer Burp-UI en tant que service, ajouter le fichier /etc/supervisor/conf.d/burp-ui.conf :

[supervisord]
nodaemon=true

[program:burp-ui]
command=burp-ui
stdout_logfile=/var/log/%(program_name)s.log
stderr_logfile=/var/log/%(program_name)s.err
autorestart=true

Clients

Linux

Installation du même package :

apt-get install burp

Configuration basique (/etc/burp/burp.conf) :

Edit : J’écris dans include les répertoires que je veux sauvegarder :

password = abcdef
cname = nomduclient
include = /home
include = /var
exclude = /var/log

Estimer le volume de données :

burp -a e

Forcer une synchronisation :

burp -a b

Crontab :

* 6,12,20 * * * root    /usr/sbin/burp -a t

Windows

Le client burp est sur sourceforge.
Installation standard.
L’installation génère une tâche planifiée qui lance Burp.

Le fichier de configuration est dans c:\program files (x86)\burp\.
Il est identique au fichier du client Linux.

 

Aller plus loin …

Chiffrement

Chiffrement en Blowfish des sauvegardes.

Problèmes posés par le chiffrement :

  • L’administrateur ne peut plus voir le contenu des sauvegardes
  • Les sauvegardes ne peuvent plus être dédupliquées correctement car au moindre changement de fichier c’est le fichier entier qui sera de nouveau stocké
  • Si le mot de passe de chiffrement est perdu, pas moyen de déchiffrer les sauvegardes.

Si malgré tout on veut chiffrer systématiquement les échanges :

encryption_password=abcDEF

Rétention

Le nombre de rétentions des sauvegardes est défini par le paramètre keep.

Il est défini côté serveur :

  • Globalement dans le fichier /etc/burp/burp.conf
  • <li class="level1">
      <div class="li">
        Spécifiquement dans le fichier /etc/burp/clientconfdir/<strong>client</strong>
      </div>
    </li>
    

Si keep=4, il y aura maximum 4 sauvegardes dans le répertoire de sauvegarde.

On peut aussi utiliser plusieurs valeurs keep (on admet que les sauvegardes ont lieu tous les jours) :

# Une par jour / rétention d'une semaine
keep = 7
# Une par semaine / rétention d'un mois
keep = 4
# Une par mois / rétention d'un an
keep = 12

Dans cet exemple :

  • A chaque fin de cycle de 7 sauvegardes, on garde une sauvegarde
  • A chaque fin de cycle de 4*7 sauvegardes, on garde une sauvegarde
  • A chaque fin de cycle de 12*4*7 sauvegardes, on garde une sauvegarde

 

 

Sur le même sujet :