BackupPC – Serveur de Sauvegarde

Table des matières

BackupPC – Serveur de Sauvegarde

Présentation

1) Création d’un Dataset

1.1) Création

1.2) Permissions UNIX et ACL

Exemple de permissions UNIX :

Exemple d’ACL :

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

2.1) Création

2.2) Configuration

Arrêt de la jail :

Ajout d’un point de montage :

3) Installation de BackupPC

3.1) Accès à la console de la Jail

3.2) Mise à jour du dépôt

3.3) Mise à jour des paquets

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

3.5) Installation de backuppc et ses dépendances

3.6) Vérification répertoire de BackupPC

Dans la Jail :

Dans FreeNAS :

4) Configuration de BackupPC

4.1) Configuration

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

Vérification :

Lancement du script de configuration de BackupPC :

Configuration du fichier /usr/local/etc/backuppc/config.pl :

Définition de l’utilisateur et du groupe backuppc en tant que propriétaires des répertoires suivants :

Démarrage automatique pour les services backuppc et apache :

Création d’un fichier de mot de passe BackupPC :

Création d’un lien backuppc.pl pointant vers BackupPC_Admin :

4.2) Configuration du site BackupPC :

Redémarrage des services BackupPC et Apache :

4.3) Création clé publique SSH

Connexion en tant que backuppc :

Création d’une clé publique SSH :

Copie de la clé publique pour l’identifier et éviter les confusions :

5) Interface Web

5.1) Configuration Principale

Se connecter à l’interface Web :

Configuration de la langue :

6) Configuration d’un client Linux

6.1) Ajout d’un client

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

6.3) Configuration sur le client Linux

Configuration du fichier authorized_keys de root :

Connexion en tant que BackupPC :

Connexion SSH :

7) Configuration d’un client Windows

7.1) Ajout d’un client

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

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.

 

 

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.

 backuppcjail) VMNET.
Configurer l’adresse IP et le masque de sous-réseau.

 

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/

 

  1. 1./mnt/NORMAL_500GB/iocage/jails/backuppcjail/root/ est la racine de la Jail depuis FreeNAS. 

  2. 2./mnt/NORMAL_500GB/iocage/jails/backuppcjail/root/var/db/BackupPC/ est le chemin des Backups de la Jail depuis FreeNAS. 

  3. 3./var/db/BackupPC/ est le chemin des Backups dans la Jail. 

  4. 4./mnt/NORMAL_500GB/Backups/BackupPC/ est le chemin des Backups dans FreeNAS. 

  5. 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

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

55

56

57

58

59

60

61

62

63

64

# 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.