Sommaire
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.
Cliquer sur Jail Properties et cocher l’option allow_raw_sockets
.
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 :
1 |
iocage stop backuppcjail |
Ajout d’un point de montage :
1 2 3 4 5 6 7 8 9 |
# 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/ |
/mnt/NORMAL_500GB/iocage/jails/backuppcjail/root/
est la racine de la Jail depuis FreeNAS./mnt/NORMAL_500GB/iocage/jails/backuppcjail/root/var/db/BackupPC/
est le chemin des Backups de la Jail depuis FreeNAS./var/db/BackupPC/
est le chemin des Backups dans la Jail./mnt/NORMAL_500GB/Backups/BackupPC/
est le chemin des Backups dans FreeNAS.- 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
1 |
iocage console backuppcjail --force |
3.2) Mise à jour du dépôt
1 |
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
1 |
pkg upgrade -y |
3.4) Création d’un utilisateur « backuppc »
1 |
adduser |
3.5) Installation de backuppc et ses dépendances
1 2 |
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 :
1 |
ls -lah /var/db/BackupPC/ |
Dans FreeNAS :
1 |
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
:
1 |
nano /usr/local/etc/smb4.conf |
Contenu :
1 2 3 |
[global] client min protocol = SMB2 client max protocol = SMB3 |
Vérification :
1 |
testparm -s |
Lancement du script de configuration de BackupPC :
1 |
/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
:
1 2 3 4 |
# 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 :
1 2 |
chown -R backuppc:backuppc /usr/local/etc/backuppc/ chown -R backuppc:backuppc /var/db/BackupPC/ |
Démarrage automatique pour les services backuppc et apache :
1 2 |
sysrc backuppc_enable=YES sysrc apache24_enable=YES |
Création d’un fichier de mot de passe BackupPC :
1 |
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 :
1 |
ln -s /usr/local/www/cgi-bin/BackupPC_Admin /usr/local/www/cgi-bin/backuppc.pl |
4.2) Configuration du site BackupPC :
1 |
nano /usr/local/etc/apache24/Includes/backuppc.conf |
Contenu :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# 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 :
1 2 |
service backuppc restart service apache24 restart |
4.3) Création clé publique SSH
Connexion en tant que backuppc :
1 |
su - backuppc |
Création d’une clé publique SSH :
1 |
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 :
1 2 3 |
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 (Rsync doit être installé sur le client si ce n’est pas déjà fait).
- RsyncShareName : Renseigner le répertoire à sauvegarder sur le client.
- RsyncClientPath : Localisation de rsync sur le client (Très important).
Pour localiser rsync, taper la commande suivante sur le client :which rsync
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 le client (Machine à sauvegarder).
Configuration du fichier authorized_keys
de root :
1 2 |
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 :
1 |
su - backuppc |
Connexion SSH :
1 |
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
En savoir plus sur Jj World
Subscribe to get the latest posts sent to your email.
Salut, ça marche bien ?
Salut Mathisd,
ça fait 2 ans que ça tourne et je l’ai utilisé plus d’une fois pour restaurer des fichiers suites à des erreurs humaines ou des MAJ d’application non concluantes.