BackupPC – Serveur de Sauvegarde


Présentation

Nous allons, dans ce tutoriel, installer et configurer un outil centralisé de sauvegarde nommé BackupPC.
Derrière son interface web rudimentaire se cache de nombreuses fonctionnalités.

  • Fonctionnalités :
    • Sauvegardes incrémentielles
    • Versionnage des sauvegardes
    • Optimisation de l’espace disque grâce à une gestion des fichiers dupliqués
    • Planification des sauvegardes
    • Sauvegarde de machine Windows et Linux



1) Création d’un Dataset

1.1) Création

Pour des questions d’organisation, nous allons créer un dataset Backups dédié aux sauvegardes.
Ce dernier contiendra un dataset enfant pour chaque solution de sauvegarde (Ici : BackupPC).


1.2) Permissions UNIX et ACL

Pour des questions de sécurité, ce dataset ne doit pas être accessible à tout le monde.
Ci-dessous, quelques exemples à ajuster en fonction de votre contexte.

Exemple de permissions UNIX :


Exemple d’ACL :



2) Création d’une jail dédiée

2.1) Création

Création d’une jail backuppcjail dans laquelle sera hébergé BackupPC.
Cliquer sur Jails dans le panneau de gauche de FreeNAS puis cliquer sur ADD.
Cliquer sur Advanced Jail Creation.


Choisir un nom pour la jail (ici : backuppcjail).
Cocher VMNET.
Cocher Berkeley Packet Filter.
Configurer l’adresse IP et le masque de sous-réseau.
Cocher Auto-start.
Cliquer sur Save.


2.2) Configuration

Nous allons créer un point de montage afin que le répertoire de sauvegarde de BackupPC pointe sur le dataset créé à l’étape précédente.

Arrêt de la jail :
iocage stop backuppcjail


Ajout d’un point de montage :
# Création du répertoire BackupPC dans le système de fichiers de la jail
mkdir -p /mnt/NORMAL_500GB/iocage/jails/backuppcjail/root/var/db/BackupPC/

# Création point de montage
iocage fstab -a backuppcjail "/mnt/NORMAL_500GB/Backups/BackupPC/ /var/db/BackupPC/ nullfs rw 0 0"

# Vérifications
iocage fstab -l backuppcjail
ls -lah /mnt/NORMAL_500GB/iocage/jails/backuppcjail/root/var/db/BackupPC/
  1. /mnt/NORMAL_500GB/iocage/jails/backuppcjail/root/ est la racine de la Jail depuis FreeNAS.
  2. /mnt/NORMAL_500GB/iocage/jails/backuppcjail/root/var/db/BackupPC/ est le chemin des Backups de la Jail depuis FreeNAS.
  3. /var/db/BackupPC/ est le chemin des Backups dans la Jail.
  4. /mnt/NORMAL_500GB/Backups/BackupPC/ est le chemin des Backups dans FreeNAS.
  5. Les chemins 2, 3 et 4 représentent donc le même répertoire

Cette manipulation est également possible depuis l’interface Web de FreeNAS.



3) Installation de BackupPC

3.1) Accès à la console de la Jail

iocage console backuppcjail --force


3.2) Mise à jour du dépôt

pkg update -f

Un message invitant à installer l’outil de gestion des paquets pourrait s’afficher.
Approuver avec “y”.


3.3) Mise à jour des paquets

pkg upgrade -y


3.4) Création d’un utilisateur “backuppc”

adduser
Création d’un utilisateur dans FreeBSD.
Renseigner les informations demandées.


3.5) Installation de backuppc et ses dépendances

pkg install -y nano perl5 rsync rsync-bpc rrdtool \
php74-pecl-smbclient samba412 rrdtool par2cmdline p5-XML-RSS backuppc4 apache24


3.6) Vérification répertoire de BackupPC

Dans la Jail :
ls -lah /var/db/BackupPC/
Dans FreeNAS :
ls -lah /mnt/NORMAL_500GB/Backups/BackupPC/

Important : Le contenu des répertoires doit être identique car il s’agit du même répertoire grâce au point de montage.



4) Configuration de BackupPC

Se connecter à la Jail si ce n’est pas déjà fait.

4.1) Configuration

Configuration du fichier /usr/local/etc/smb4.conf :
nano /usr/local/etc/smb4.conf

Contenu :

[global]
  client min protocol = SMB2
  client max protocol = SMB3
Vérification :
testparm -s


Lancement du script de configuration de BackupPC :
/usr/local/etc/backuppc/update.sh

Les choix par défaut conviennent dans la plupart des cas.


Configuration du fichier /usr/local/etc/backuppc/config.pl :
# Définition de l'utilisateur backuppc en tant qu'admin de BackupPC
sed -i -e \
's/^\$Conf{CgiAdminUsers}.*$/\$Conf{CgiAdminUsers} = '\''backuppc'\'';/g' \
/usr/local/etc/backuppc/config.pl

Attention :
Il ne s’agit pas de l’utilisateur UNIX backuppc.
Mais d’un utilisateur stocké dans un fichier (une base de compte) spécifique pour Apache.


Définition de l’utilisateur et du groupe backuppc en tant que propriétaires des répertoires suivants :
chown -R backuppc:backuppc /usr/local/etc/backuppc/
chown -R backuppc:backuppc /var/db/BackupPC/


Démarrage automatique pour les services backuppc et apache :
sysrc backuppc_enable=YES
sysrc apache24_enable=YES


Création d’un fichier de mot de passe BackupPC :
htpasswd -c /usr/local/etc/backuppc/htpasswd backuppc

Ce chemin est renseigné plus bas dans la configuration Apache du site.
Si vous le modifier,

Attention :
Il ne s’agit pas de l’utilisateur UNIX backuppc.
Mais d’un utilisateur stocké dans le fichier (la base de compte) htpasswd que nous renseignerons dans la configuration d’Apache.


Création d’un lien backuppc.pl pointant vers BackupPC_Admin :
ln -s /usr/local/www/cgi-bin/BackupPC_Admin /usr/local/www/cgi-bin/backuppc.pl


4.2) Configuration du site BackupPC :

nano /usr/local/etc/apache24/Includes/backuppc.conf

Contenu :

# Set ServerName
ServerName backuppc.localdomain:80

# Run Apache24 as 'backuppc:backuppc'
User backuppc
Group backuppc

# Load CGI modules
LoadModule cgid_module libexec/apache24/mod_cgid.so
LoadModule cgi_module libexec/apache24/mod_cgi.so

ScriptAlias /bpc /usr/local/www/cgi-bin/

<Directory /usr/local/www/cgi-bin/>
        AllowOverride None
        Allow from all

        # Uncomment the line below to ensure that nobody can sniff important
        # info from network traffic during editing of the BackupPC config or
        # when browsing/restoring backups.
        # Requires that you have your webserver set up for SSL (https) access.
        #SSLRequireSSL

        Options +ExecCGI -MultiViews +FollowSymlinks
        DirectoryIndex backuppc.pl

        AuthUserFile /usr/local/etc/backuppc/htpasswd
        AuthType basic
        AuthName "BackupPC admin"
        require valid-user

</Directory>


Alias /backuppc  /usr/local/www/backuppc/
<Directory /usr/local/www/backuppc/ >
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #

    #
    # Controls who can get stuff from this server.
    #
    Require all granted

    DirectoryIndex BackupPC.html

</Directory>


Redémarrage des services BackupPC et Apache :
service backuppc restart
service apache24 restart


4.3) Création clé publique SSH

Connexion en tant que backuppc :
su - backuppc
Création d’une clé publique SSH :
ssh-keygen -t rsa

Sélectionner les choix par défaut et ne pas définir de passphrase pour conserver l’automatisme.

Copie de la clé publique pour l’identifier et éviter les confusions :
cp /home/backuppc/.ssh/id_rsa.pub /home/backuppc/.ssh/BackupPC_backuppc_id_rsa.pub
ls -lah /home/backuppc/.ssh/BackupPC_backuppc_id_rsa.pub
cat /home/backuppc/.ssh/BackupPC_backuppc_id_rsa.pub

Cette clé publique (contenue dans le fichier BackupPC_backuppc_id_rsa.pub) devra être importée sur les postes clients.
Vous pouvez la copier hors du serveur dans un lieu sûr pour la suite du tutoriel.
Important : La clé privée contenu dans le fichier id_rsa (sans .pub) ne doit en aucun cas être diffusée.



5) Interface Web

5.1) Configuration Principale

Se connecter à l’interface Web :

L’url de l’interface Web de BackupPC sera : http://AdresseIP/bpc/ (Exemple : http://192.168.1.101/bpc/)

Configuration de la langue :

Important : L’ensemble du tutoriel sera fait avec l’interface en Anglais.



6) Configuration d’un client Linux

6.1) Ajout d’un client

Cliquer sur Edit Hosts dans le panneau de gauche puis sur Add et renseigner les informations.

Cliquer sur Save pour enregistrer la configuration.

Important :
Le nom saisi doit pouvoir être résolu par le serveur BackupPC.
Exemple : ping linux-pc
Si ce n’est pas le cas, il faudra :
– Soit corriger la configuration DNS dans le fichier /etc/resolv.conf
– Soit ajouter une entrée dans le fichier /etc/hosts


6.2) Configuration d’un Client Linux (Méthode Rsync)

Sélectionner l’hôte dans la liste HOSTS puis cliquer sur Edit Config puis cliquer sur l’onglet Xfer.

  • XferMethod : Choisir la Méthode rsync.
  • RsyncShareName : Renseigner le répertoire à sauvegarder sur le client.
  • RsyncClientPath : Corriger la localisation de rsync sur le poste client (Très important).

Cliquer sur Save.


6.3) Configuration sur le client Linux

Le serveur BackupPC aura besoin de se connecter en SSH sans mot de passe et sans interaction utilisateur.
Pour cela, nous allons importer la clé publique du serveur BackupPC dans le profil de l’utilisateur root sur la machine à sauvegarder.


Opérations à effectuer sur la machine à sauvegarder.

Configuration du fichier authorized_keys de root :
ls -lah /root/.ssh/ || mkdir -p /root/.ssh/
nano /root/.ssh/authorized_keys

Copier la clé publique générée précédemment dans le fichier authorized_keys de root (sur une seule ligne).

Important : Il faudra installer rsync sur la machine à sauvegarder si ce n’est pas déjà fait.


Opérations à effectuer sur le serveur BackupPC.

Connexion en tant que BackupPC :
su - backuppc
Connexion SSH :
ssh root@linux-pc

Un message devrait apparaitre lors de la toute première connexion, il faudra l’accepter.
La connexion devrait se faire sans demande de mot de passe.



7) Configuration d’un client Windows

7.1) Ajout d’un client

Cliquer sur Edit Hosts dans le panneau de gauche puis sur Add et renseigner les informations.

Cliquer sur Save pour enregistrer la configuration.

Important :
Le nom saisi doit pouvoir être résolu par le serveur BackupPC.
Exemple : ping windows-pc
Si ce n’est pas le cas, il faudra :
– Soit corriger la configuration DNS dans le fichier /etc/resolv.conf
– Soit ajouter une entrée dans le fichier /etc/hosts


7.2) Configuration d’un Client Windows (Méthode SMB)

Sélectionner l’hôte dans la liste HOSTS puis cliquer sur Edit Config puis cliquer sur l’onglet Xfer.

  • XferMethod : Choisir la Méthode smb.
  • SmbShareName : Renseigner le répertoire partagé à sauvegarder sur le client.
  • SmbShareUserName : Nom d’utilisateur pour la connexion au répertoire partagé.
  • SmbShareUserPasswd : Mot de passe pour la connexion au répertoire partagé.

Cliquer sur Save.



Vous avez enfin installé et configuré BackupPC pour effectuer des sauvegardes de vos machines Windows et Linux.
Il ne reste plus qu’à :

  • Configurer vos propres machines
  • Utiliser la section commentaires pour me faire part de vos remarques ou problèmes rencontrés.
  • Visiter la page BackupPC Documentation pour aller plus loin dans l’utilisation de BackupPC

Laisser un commentaire

%d blogueurs aiment cette page :