Vos sauvegardes libres avec Burp
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