Bacula

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche


Présentation

Ce document est basé sur une installation stable de Debian (en ce moment Squeeze) et de Bacula 5.0.2.

Son but : sauvegarde, restauration et vérification en réseau
(reste à faire)

Installation

Bacula peut utiliser les bases de données SQLite, MySql et PostGreSQL.Il suffit d'installer les paquets correspondant à votre choix.

Changer "-mysql" par "-pgsql" ou "-sqlite3" sur le paquet director et le fd.

ici je choisi MySql (MySql étant déja installé):

# aptitude install bacula-director-mysql bacula-sd-mysql bacula

Accorder les droits à bacula sur la base de données (vérifié si pas obsolète):

# mysql -u root -p
> grant all privileges on bacula.* to 'bacula'@'localhost' identified by 'bacula' ;

Créer le répertoire de sauvegarde et accorder les droits à bacula :

# mkdir /home/sauvegarde/
# chown -R bacula.bacula /home/sauvegarde
# chmod -R 660 /home/sauvegarde (---> à vérifier)

Configuration

Bacula se compose des fichiers suivants :

Le fichier générale de configuration le Director :

/etc/bacula/bacula-dir.conf

Le fichier Storage Daemon concernant le stockage des données :

/etc/bacula/bacula-sd.conf

Celui du File Daemon permettant l'accès aux données installé sur le client à sauvegarder :

/etc/bacula/bacula-fd.conf

Le fichier permettant la connexion entre la console et le directeur :

/etc/bacula/bconsole.conf

Le fichier de configuration du moniteur de ressources :

/etc/bacula/tray-monitor.conf

Ces fichiers représentent les différents services de Bacula, ils peuvent se trouver sur des machines totalement différentes.

La Console

/etc/bacula/bconsole.conf

Director {

Name = NOM_DIR  # le nom du director défini dans le fichier bacula-dir.conf
DIRport = 9101 # le port d'écoute du director
address = nom_resolu_par_dns_ou_IP # ip ou dns du director
Password = "mdp_du_director" # le mot de passe du director
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bacula/keys/ca.crt
TLS Certificate = /etc/bacula/keys/console.crt
TLS Key = /etc/bacula/keys/console.key
}

address : Attention le nom DNS est obligatoire pour une connexion SSL penser à configurer le fichier /etc/hosts ou le serveur dns.

si vous n'utilisez pas de connexion sécurisée vous pouvez mettre une adresse ip directement.

La partie bleu permet la sécurisation des données entre le director et la console ca.crt doit être le même partout les deux autres diffèrent
pour chaque éléments de bacula.
Pour l'instant ne vous préoccupez pas de cette partie, une explication plus complète sera détaillée dans le chapitre sur la sécurisation.
Sachez juste que cela ce trouve là.
D'autres indications dans la documentation de bacula

Le File Daemon

La ressource Client (ou File Daemon) définit le nom du client (tel qu'il est utilisé par le director) ainsi que le port sur lequel le client est à l'écoute des connections du Director.

/etc/bacula/bacula-fd.conf

Director {

Name = NOM_DIR  # le nom du director défini dans le fichier bacula-dir.conf
Password = "mdp_du_director"  # le mot de passe du director
TLS Enable = yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN = "directorCN"
TLS CA Certificate File = /etc/bacula/keys/ca.crt
TLS Certificate = /etc/bacula/keys/filedaemon.crt
TLS Key = /etc/bacula/keys/filedaemon.key

}

Director {

Name = NOM_MON  # le nom du director restreint défini dans le fichier bacula-dir.conf
Password = "mdp_du_director_restreint" # son mot de passe
Monitor = yes

}

FileDaemon {

Name = NOM_FD # le nom du File daemon
FDport = 9102 # son mot port d'écoute'
WorkingDirectory = /var/lib/bacula
Pid Directory = /var/run/bacula
Maximum Concurrent Jobs = 8 # le nombre maximum de sauvegardes simultanées
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bacula/keys/ca.crt
TLS Certificate = /etc/bacula/keys/filedaemon.crt
TLS Key = /etc/bacula/keys/filedaemon.key
PKI Signatures = Yes
PKI Encryption = Yes
PKI Keypair = "/etc/bacula/keys/client.pem"
PKI Master Key = "/etc/bacula/keys/master.crt"

}

Messages {  # les messages sont envoyés au director

Name = Standard
director = NOM_DIR = all, !skipped, !restored

}


Working Directory : Cette directive est obligatoire et spécifie un répertoire dans lequel le File Daemon peut placer ses fichiers d'état.

Ce répertoire ne doit être utilisé que par Bacula, mais peut être partagé par d'autres daemons Bacula les définitions des noms doivent être uniques pour chaque démon.
Sur les systèmes Win32, dans certaines circonstances, vous pourriez avoir besoin de spécifier une lettre de lecteur dans le chemin de répertoire de travail spécifié.
Aussi, s'il vous plaît assurez-vous que ce répertoire est accessible en écriture par l'utilisateur SYSTEM au contraire la restauration peut échouer
(le fichier d'amorçage (bootstrap) qui est transféré vers le File Daemon du directeur est temporairement placé dans ce répertoire avant d'être transmis au Storage Daemon).

Pid Directory Cette directive est obligatoire et spécifie un répertoire dans lequel le directeur peut placer ses fichiers d'identification de processus.

Le fichier d'identification de processus est utilisé pour stopper Bacula et éviter à plusieurs instances de Bacula de fonctionner simultanément.
Cet enregistrement est nécessaire. L'expansion du shell standard de l'annuaire se fait lorsque le fichier de configuration est lu de telle sorte que des valeurs
telles que $HOME seront correctement substituées.
Typiquement, sur les systèmes Linux, vous mettrez: /var/run.Si vous n'installez pas Bacula dans les répertoires système, vous pouvez utiliser le répertoire de travail
tel que défini ci-dessus.

Pour voir toutes les possibilités du File Daemon je vous invite à lire la documentation de Bacula à ce sujet.


Le Storage Daemon

Le fichier de configuration du Storage Daemon a relativement peu de définitions de ressources. Toutefois, en raison de
la grande variation dans les médias de sauvegarde et des capacités du système, le démon de stockage doit être hautement configurable.

En conséquence, il y a un assez grand nombre de directives dans la définition des ressources de périphérique qui vous permet de définir.

toutes les caractéristiques de votre périphérique de stockage (normalement un lecteur de bande). Heureusement, avec des dispositifs

de stockage modernes, les valeurs par défaut sont suffisantes, et très peu de directives sont réellement nécessaires.

/etc/bacula/bacula-sd.conf

Storage {

Name = NOM_SD  # Le nom du Storage Daemon
SDPort = 9103  # son port d'écoute
WorkingDirectory = "/var/lib/bacula"
Pid Directory = "/var/run/bacula"
Maximum Concurrent Jobs = 8  # Le nombre maximum de sauvegardes simultanées par media
SDAddress = nom_dns_ou_ip  # Son addresse ip ou son nom dns
TLS Enable = yes
TLS Require = yes
TLS CA Certificate File = /etc/bacula/keys/ca.crt
TLS Certificate = /etc/bacula/keys/storagedaemon.crt
TLS Key = /etc/bacula/keys/storagedaemon.key

}

Director {

Name = NOM_DIR  # le nom du director défini dans le fichier bacula-dir.conf
Password = "mdp_du_director"  # et son mot de passe
TLS Enable = yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN = "directorCN"
TLS CA Certificate File = /etc/bacula/keys/ca.crt
TLS Certificate = /etc/bacula/keys/storagedaemon.crt
TLS Key = /etc/bacula/keys/storagedaemon.key

}

Director {

Name = NOM_MON  # le nom du director restreint défini dans le fichier bacula-dir.conf
Password = "mdp_du_director_restreint"
Monitor = yes

}

Device {  # ou répertoire

Name = Nom_Device  # Un nom pour l'identifier
Media Type = File  # Son type : File, Tape, Fifo, DVD
Archive Device = /home/sauvegarde/  # Son emplacement
LabelMedia = yes;  # Lui donne un nom
Random Access = Yes;
AutomaticMount = yes;  # monte le media en automatique
RemovableMedia = no;
AlwaysOpen = yes;  # Toujours accessible

}

Messages {  # les messages sont envoyés au director

Name = Standard
director = NOM_DIR = all

}


Random Access : Si Oui, le périphérique est supposé être un moyen d'accès aléatoire qui prend en charge le lseek (Dvd,Usb...)

Non pour les dispositifs d'accès non-aléatoires tels que des bandes.

RemovableMedia : Si oui, cet appareil prend en charge les supports amovibles (par exemple, cassettes ou de CD).

Si Non, les médias ne peuvent pas être supprimés (par exemple, une zone de sauvegarde intermédiaire sur un disque dur).

Pour voir toutes les possibilités du Storage Daemon je vous invite à lire la documentation de Bacula à ce sujet.

Le Director

De tous les fichiers de configuration nécessaires à l'exécution de Bacula, le directeur est le plus compliqué, et celui que vous aurez besoin de modifier
le plus souvent. Afin de simplifier sa comprehension nous le séparons en plusieurs fichiers.
Pour inclure un fichier dans bacula-dir.conf, il suffit de mettre un @ devant le chemin du fichier à inclure.

@/chemin_complet/fichier

Comme toujours vous y gagneriez à lire la documentation du director.

/etc/bacula/bacula-dir.conf

Director {

Name = NOM_DIR  # le nom du director
DIRport = 9101  # son port d'écoute
QueryFile = "/etc/bacula/query.sql"
WorkingDirectory = "/var/lib/bacula"
PidDirectory = "/var/run/bacula"
Maximum Concurrent Jobs = 4  # Le nombre maximum de sauvegardes simultanées
Password = "mdp_du_director"
Messages = Standard
TLS Enable = yes
TLS Require = yes
TLS Verify Peer = yes
TLS Allowed CN = "consolerCN"
TLS CA Certificate File = /etc/bacula/keys/ca.crt
TLS Certificate = /etc/bacula/keys/director.crt
TLS Key = /etc/bacula/keys/director.key

}

@/etc/bacula/configuration/bacula_dir_filset.conf  # On ajoute les fichiers de configuration des sauvegardes
@/etc/bacula/configuration/bacula_dir_job.conf
@/etc/bacula/configuration/bacula_dir_storage.conf
@/etc/bacula/configuration/bacula_dir_pool.conf
@/etc/bacula/configuration/bacula_dir_client.conf
@/etc/bacula/configuration/bacula_dir_schedule.conf

Catalog {  # le catalogue ou Bacula stocke toutes ses informations

Name = MyCatalog  # son nom
dbname = "bacula"; dbuser = "bacula"; dbpassword = "mdp_base_SQL"  # les accés à la base Sql

}

Messages {  # Définitions des messages envoyés par Bacula

Name = Standard  # Un nom pour l'identifier
mailcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula daemon message\" %r"
mail = root@localhost = all, !skipped
console = all, !skipped, !saved
append = "/var/bacula/log" = all, !skipped

}

Console {  # Director restreint utile pour les clients

Name = DIR_MON
Password = "Mdp_du_director_restreint"
CommandACL = status, .status

}

QueryFile = Cette directive est obligatoire et spécifie un répertoire et le fichier dans lequel le directeur peut trouver les états conservés SQL
pour les commandes de requête de la console.

Filset

C'est dans ce fichier que l'on trouve les répertoires et fichiers à sauvegarder.

/etc/bacula/configuration/bacula_dir_filset.conf

FileSet {  # Fileset Windows

Name = "DONNEES_FSET"
Enable VSS = yes  # activation ou non du Volume Shadow copy
Include {
Options {
compression = GZIP  # on compresse la sauvegarde possibilité de donner un niveau de compression ex: GZIP9
signature = MD5  # on vérifie les fichiers sauvegardés avec md5 ou sha1
accurate = yes  # si cette valeur est a "no" même les fichiers effacés seront restaurés
}
File = "C:/DONNEES" # le(s) répertoire(s) / fichier(s) à inclure
}
Exclude {  # le(s) répertoire(s) / fichier(s) à exclure
File = "C:/DONNEES/xxx/yyy/zzz"
File = "C:/DONNEES/xxx/yyy/zzz"
File = "C:/DONNEES/yyy/zzz/yyy"
}

}

FileSet {  # Fileset Linux

Name = "BACULA_FSET"
Enable VSS = no
Include {
Options {
signature = MD5
compression = GZIP9
accurate = yes
}
File = "/etc/bacula/"

}

Vous trouverez le détail des ressources du fileset ici

Storage

C'est ici que vous définissez le Storage Daemon ainsi que le device (répertoire) de sauvegarde à utiliser.

/etc/bacula/configuration/bacula_dir_storage.conf

Storage {

Name = Donnees_st  # Vous lui donnez un nom
Address = nom_dns_ou_ip_du_storagedaemon  # L' adresse du Storage Daemon défini plus haut
SDPort = 9103
Password = "mdp_du_storagedaemon"
Device = donnees_device  # un des devices défini dans le fichier du Storage Daemon

}

Vous trouverez le détail des ressources du storage ici

Pool

Ce fichier décrit la façon dont sont gérés les volumes de sauvegarde.

/etc/bacula/configuration/bacula_dir_pool.conf

Pool{

Name = Donnees_Pool
Pool Type = Backup  # son type Backup, Archive, Cloned, Migration, Copy, Save"
Recycle = yes  # on peut réutiliser les anciens volumes purgés
AutoPrune = yes  # On laisse Bacula gérer les volumes
File Retention = 180 days  # durée de rétention des fichiers
Job Retention = 180 days  # durée de rétention des jobs
Maximum Volume Jobs = 1
Label Format = "${Level}_${Job}_${Year}-${Month:p/2/0/r}-${Day:p/2/0/r}_${Hour:p/2/0/r}h${Minute:p/2/0/r}m"

}

Maximum Volume Jobs = Cette directive n'est pas obligatoire mais en fixant cette valeur à 1 on s'assure
de n'avoir qu'un seul fichier par sauvegarde.
Label Format = permet de nommer son volume de sauvegarde

Vous trouverez le détail des ressources pool ici

Client

Dans ce fichier vous retrouvez tous vos clients à sauvegarder.

/etc/bacula/configuration/bacula_dir_client.conf

Client {

Name = Nom_du_poste_a_savegarder
Address = nom_dns_ou_ip
FDPort = 9102
Catalog = MyCatalog
Password = "mdp_du_client"

}

Vous trouverez le détail des ressources du client ici

Schedule

Dans celui-ci vous définissez les heures et les niveaux de vos sauvegardes automatiques.

/etc/bacula/configuration/bacula_dir_schedule.conf

Schedule {

Name = "Donnees"
Run = Full 1st sun at 23:05  # complète le 1er dimanche du mois à 23:05
Run = Differential 2nd-5th sun at 23:05  # Différentiel le 2em et 5em dimanche du mois à 23:05
Run = Incremental mon-sat at 21:00  # Incrémentiel su lundi au samedi à 21:00

}

Vous trouverez le détail des ressources schedule ici

Job

Et enfin dans ce fichier ci vous assemblez tous vos éléments.

/etc/bacula/configuration/bacula_dir_job.conf

Job {

Name = "DONNEES"
Type = Backup
Level = Incremental  # le niveau de la sauvegarde
Client = SERVEURZZZ
RunBeforeJob = "/usr/bin/prog"  # Execute /usr/bin/prog avant la sauvegarde sur la machine éxecutant le director
RunAfterJob = "/usr/bin/prog2"  # Execute /usr/bin/prog2 après la sauvegarde sur la machine éxecutant le director
ClientRunBeforeJob = "\"C:/Program\ Files/progx/fermeture\ prog.bat\""  # Execute "fermeture prog.bat" avant la sauvegarde sur la machine cliente
ClientRunAfterJob = "\"C:/Program\ Files/progx/ouverture_prog.bat\""  # Execute "ouverture_prog.bat" après la sauvegarde sur la machine cliente
FileSet = "DONNEES_FSET"
Schedule = "Donnees"
Storage = Donnee_st
Pool= Donnees_Pool
Write Bootstrap = /var/lib/bacula/donnee.bsr  # fichier contenant l'ensemble des données de la sauvegarde
Priority = 20  # la priorité du job de sauvegarde : plus le nombre est petit plus la priorité est haute
Messages = Standard

}

Si dans vos différents jobs vous avez les mêmes données (Fileset,Schedule...) vous pouvez créer un JobDefs.

JobDefs {

Name = "JOBCOMMUN"
Type = Backup
Level = Full
FileSet = "DONNEES_FSET"
Schedule = "Donnees"
Pool = Donnees_Pool
Storage = Donnees-st
Messages = Standard

}

Job {

Name = "DONNEES"
JobDefs = "JOBCOMMUN"
Client = SERVEURZZZ
Write Bootstrap = /var/lib/bacula/donnee.bsr
Priority = 10
Messages = Standard

}

Vous trouverez le détail des ressources job ici

Le moniteur de ressources

Sécurisation

Tout au long du chapitre sur la configuration certaines parties en bleue n'ont pas été expliquées, elles concernaient essentiellement
des commandes liées aux connexions SSL et aux Chiffrage des données.

Les connexions SSL

Afin de sécuriser un peu notre système de sauvegarde nous pouvons mettre en place des connexions SSL entre les différents services de Bacula.
Dans un premier temps nous allons créer notre certificat d'autorité de certification, c'est lui qui validera (signera) les autres.

Si vous créez plusieurs certificats le conseil que je vous donne c'est d'éditer le fichier /etc/ssl/openssl.conf et
dans la section :"req_distinguished_name" de mettre vos paramêtres personalisés.

Exemple:

countryName                     = Country Name (2 letter code)
countryName_default             = FR
countryName_min                 = 2
countryName_max                 = 2

stateOrProvinceName             = State or Province Name (full name)
stateOrProvinceName_default     = Votre département

localityName                    = Locality Name (eg, city)
localityName_default            = Votre ville

0.organizationName              = Organization Name (eg, company)
0.organizationName_default      = Votre société

# we can do this but it is not needed normally :-)
#1.organizationName             = Second Organization Name (eg, company)
#1.organizationName_default     = World Wide Web Pty Ltd

organizationalUnitName          = Organizational Unit Name (eg, section)
organizationalUnitName_default  = Interne

commonName                      = Common Name (eg, YOUR name)
commonName_max                  = 64
emailAddress                    = Email Address
emailAddress_default            = Une adresse mail
emailAddress_max                = 64

Commencez par créer le répertoire /etc/bacula/keys/ puis entrez y.

Création du certificat d'autorité de certification :

#openssl genrsa -aes256 -out ca.key 2048 # Génére une clé RSA 2048 bits et son chiffrement en AES 256 un mot de passe vous sera demandé. 
#openssl req -new -key ca.key -x509 -out ca.crt # Génére le certificat publique de la clé. 

Ensuite il faut créer une clé et un certificat par services que nous voulons sécuriser. Par exemple pour le director :

#openssl genrsa -out director.key 2048
#openssl req -new -key director.key > director.csr
#openssl x509 -req -in director.csr -out director.crt -CA ca.crt -CAkey ca.key -CAcreateserial -CAserial ca.srl

Il est obligatoire de mettre le même nom dans le Common Name que le nom résolu par DNS du service.
Si l'adresse dns du director est "director.local" alors le Common Name est "director.local" et n'oubliez pas de configurer
le fichier /etc/hosts ou le serveur DNS.
L'option CAcreateserial n'est nécessaire que la première fois, ensuite pour la console :

#openssl genrsa -out console.key 2048
#openssl req -new -key console.key > console.csr
#openssl x509 -req -in console.csr -out console.crt -CA ca.crt -CAkey ca.key -CAserial ca.srl

Maintenant vous pouvez continuer seul pour les autres certificats (filedaemon.crt/key,storagedaemon.crt/key...).
Pour plus d'informations sur les certificats vous pouvez voir :
N30Secs Blog , Linux-france.org , Madboa.com


Pour établir une connexion sécurisé entre:

Director | Console
Revenons à notre fichier /etc/bacula/bconsole.conf et plus précisement à ces lignes :

Director {
  TLS Enable = yes # Active une connexion SSL
  TLS Require = yes # Oblige une connexion SSL
  TLS CA Certificate File = /etc/bacula/keys/ca.crt# le chemin vers votre certificat publique du ca généré plus haut
  TLS Certificate = /etc/bacula/keys/console.crt # le chemin vers votre certificat publique de la console généré plus haut
  TLS Key = /etc/bacula/keys/console.key # le chemin vers la clé privé de la console généré plus haut
}

Dans le fichier /etc/bacula/bacula-dir.conf :

Director {
  TLS Enable = yes
  TLS Require = yes            
  TLS Verify Peer = yes
  TLS Allowed CN = "consolerCN"# Ici on n'autorise que la console en donnant le Common Name du certificat de la console
  TLS CA Certificate File = /etc/bacula/keys/ca.crt
  TLS Certificate = /etc/bacula/keys/director.crt
  TLS Key = /etc/bacula/keys/director.key 
}

Vous voilà avec une connexion sécurisé entre votre console et le director.

Director | Filedaemon

Dans le fichier /etc/bacula/bacula-fd.conf :

Director {
  TLS Enable = yes
  TLS Require = yes            
  TLS Verify Peer = yes
  TLS Allowed CN = "DirectorCN"# Ici on n'autorise que le director en donnant le Common Name du certificat du director
  TLS CA Certificate File = /etc/bacula/keys/ca.crt
  TLS Certificate = /etc/bacula/keys/filedaemon.crt
  TLS Key = /etc/bacula/keys/filedaemon.key 
}

Dans le fichier /etc/bacula/bacula-dir.conf :

Client {
  TLS Enable = yes 
  TLS Require = yes 
  TLS CA Certificate File = /etc/bacula/keys/ca.crt
  TLS Certificate = /etc/bacula/keys/director.crt
  TLS Key = /etc/bacula/keys/director.key
}

Director | Storagedaemon

Dans le fichier /etc/bacula/bacula-sd.conf :

Director {
  TLS Enable = yes
  TLS Require = yes            
  TLS Verify Peer = yes
  TLS Allowed CN = "DirectorCN"# Ici on n'autorise que le director en donnant le Common Name du certificat du director
  TLS CA Certificate File = /etc/bacula/keys/ca.crt
  TLS Certificate = /etc/bacula/keys/storagedaemon.crt
  TLS Key = /etc/bacula/keys/storagedaemon.key 
}

Dans le fichier /etc/bacula/bacula-dir.conf :

Storage {
  TLS Enable = yes 
  TLS Require = yes 
  TLS CA Certificate File = /etc/bacula/keys/ca.crt
  TLS Certificate = /etc/bacula/keys/director.crt
  TLS Key = /etc/bacula/keys/director.key
}

Filedaemon | Storagedaemon

Dans le fichier /etc/bacula/bacula-sd.conf :

Storage {
  TLS Enable = yes 
  TLS Require = yes 
  TLS CA Certificate File = /etc/bacula/keys/ca.crt
  TLS Certificate = /etc/bacula/keys/storagedaemon.crt
  TLS Key = /etc/bacula/keys/storagedaemon.key
}

Dans le fichier /etc/bacula/bacula-fd.conf :

FileDaemon {
  TLS Enable = yes 
  TLS Require = yes 
  TLS CA Certificate File = /etc/bacula/keys/ca.crt
  TLS Certificate = /etc/bacula/keys/filedaemon.crt
  TLS Key = /etc/bacula/keys/filedaemon.key
}

Sous Windows faites attention aux chemins ce n'est pas un antislash mais deux slashs à la place :

  TLS CA Certificate File = "C:\\keys\\ca.crt"
  TLS Certificate = "C:\\keys\\client_win.crt"
  TLS Key = "C:\\keys\\client_win.key"

Et pensez aussi à modifier le fichier C:\WINDOWS\system32\drivers\etc\hosts ou le dns.

Le chiffrement des sauvegardes

C'est dans les différents File Daemon que cela ce passe, les fameuses lignes PKI :

PKI Signatures = Yes# active les données signées
PKI Encryption = Yes# active le chiffrage
PKI Keypair = "/etc/bacula/keys/client.pem"# paire de clé publique/privée du client
PKI Master Key = "/etc/bacula/keys/master.crt"# clé publique maître


Premiere étape générer une paire de clé maître de 2048 bits et chiffré en AES 256 (un mot de passe vous sera demandé):

# openssl genrsa -aes256 -out master.key 2048 # Votre clé privé : master.key 
# openssl req -new -key master.key -x509 -out master.crt # Votre clé publique : master.crt 

Ensuite on génére une paire de clé pour chaque client :
Générer une clé privée :

# openssl genrsa -aes256 -out client.key 2048

Le fait de chiffrer la clé en AES 256 nous permet de chiffrer notre sauvegarde en AES 256, les autres choix sont :
128, 192, AES-CBC et Blowfish-CBC

Générer la clé publique auto-signée :

# openssl req -new -key -client.key -x509 -out client.crt 

Se débarrasser du mot de passe de la clé (que bacula puisse la lire!) :

# openssl rsa -in client.key -out client.nopass.key

Copier la clé privée et publique dans le fichier .pem :

# cat client.nopass.key client.crt > client.pem # Votre paire de clé publique/privée du client : client.pem 

Si votre paire de clé du client est perdue ou corrompue vous pouvez déchiffrer les données avec la paire de clé maître pour cela il faut :
concaténer la clé privée et publique :

# cat master.key master.crt > master.keypair

puis modifier la ligne PKI Keypair en y mettant la master.keypair :

PKI Keypair = "/etc/bacula/keys/master.keypair"

source :

la documentation de bacula
Data Encryption - subjectKeyIdentifier extension?

Utilisation

En mode Console

Ouvrez un terminal et passez root puis entrez :

# bconsole

Pour quitter la console :

* quit

Pour afficher toutes les commandes :

* help

Pour afficher les messages :

* messages

Je ne vais pas m' éterniser sur cette partie la documentation est très explicite et en français cette fois.

La commande status est très utile pour visualiser votre système Bacula, ce n'est pas obligatoire mais elle prend les arguments dir, storage, client et all.
Lancer un status all permet de vérifier que vous avez bien configuré tout les accés.

Un petit aperçu :

status.png

La commande run permet de lancer un job de sauvegarde (une liste apparaît pour faire votre choix).
La commande restore affiche un choix de restauration (ex: le n°5 permet de restaurer la sauvegarde la plus récente.

En mode Graphique

Une interface graphique Qt existe pour l 'installer :

# aptitude install bacula-console-qt

Son fichier de configuration /etc/bacula/bat.conf se configure comme une console.

Lancer l' interface en étant root :

# gksu bat

Connecté à deux directors celà ressemble à ça :

Haludeis (discussion) 6 mai 2012 à 14:39 (CEST)