Bacula
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
- Options {
- }
- 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/"
- Options {
}
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 :
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 :

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)