From 00d6d904dc26592553ba93710c205603757e3faf Mon Sep 17 00:00:00 2001 From: Guilhem Moulin Date: Wed, 3 Jun 2015 21:13:10 +0200 Subject: Configure Bacula File Daemon / Storage Daemon / Director. Using client-side data signing/encryption and wrapping inter-host communication into stunnel. --- .../templates/etc/bacula/bacula-sd.conf.j2 | 56 ++++++++++++++++++++++ .../templates/etc/stunnel/bacula-sd.conf.j2 | 53 ++++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 roles/bacula-sd/templates/etc/bacula/bacula-sd.conf.j2 create mode 100644 roles/bacula-sd/templates/etc/stunnel/bacula-sd.conf.j2 (limited to 'roles/bacula-sd/templates') diff --git a/roles/bacula-sd/templates/etc/bacula/bacula-sd.conf.j2 b/roles/bacula-sd/templates/etc/bacula/bacula-sd.conf.j2 new file mode 100644 index 0000000..7be783b --- /dev/null +++ b/roles/bacula-sd/templates/etc/bacula/bacula-sd.conf.j2 @@ -0,0 +1,56 @@ +# +# Default Bacula Storage Daemon Configuration file +# +# For Bacula release 5.2.6 (21 February 2012) -- debian jessie/sid +# +# You may need to change the name of your tape drive +# on the "Archive Device" directive in the Device +# resource. If you change the Name and/or the +# "Media Type" in the Device resource, please ensure +# that dird.conf has corresponding changes. +# + +Storage { # define myself + Name = {{ inventory_hostname_short }}-sd + Working Directory = /var/lib/bacula + Pid Directory = /var/run/bacula + Maximum Concurrent Jobs = 20 + SDAddress = 127.0.0.1 + SDPort = 9113 +} + +# +# List Directors who are permitted to contact Storage daemon +# +{% for dir in groups['bacula-dir'] | sort %} +Director { + Name = {{ hostvars[dir].inventory_hostname_short }}-dir + @|"sed -n '/^{{ hostvars[dir].inventory_hostname_short }}-dir\\s/ {s//Password = /p; q}' /etc/bacula/passwords-sd" +} + +# +# Send all messages to the Director, +# mount messages also are sent to the email address +# +Messages { + Name = Standard + director = {{ hostvars[dir].inventory_hostname_short }}-dir = all +} +{% endfor %} + +# +# Devices supported by this Storage daemon +# To connect, the Director's bacula-dir.conf must have the +# same Name and MediaType. +# + +Device { + Name = FileStorage + Media Type = File + Archive Device = /mnt/backup/bacula + LabelMedia = yes; # lets Bacula label unlabeled media + Random Access = Yes; + AutomaticMount = yes; # when device opened, read it + RemovableMedia = no; + AlwaysOpen = no; +} diff --git a/roles/bacula-sd/templates/etc/stunnel/bacula-sd.conf.j2 b/roles/bacula-sd/templates/etc/stunnel/bacula-sd.conf.j2 new file mode 100644 index 0000000..b193826 --- /dev/null +++ b/roles/bacula-sd/templates/etc/stunnel/bacula-sd.conf.j2 @@ -0,0 +1,53 @@ +; ************************************************************************** +; * Global options * +; ************************************************************************** + +; setuid()/setgid() to the specified user/group in daemon mode +setuid = stunnel4 +setgid = stunnel4 + +; PID is created inside the chroot jail +pid = /var/run/stunnel4/bacula-sd.pid + +; Only log messages at severity warning (4) and higher +debug = 4 + +; ************************************************************************** +; * Service defaults may also be specified in individual service sections * +; ************************************************************************** + +; Certificate/key is needed in server mode and optional in client mode +cert = /etc/stunnel/certs/{{ inventory_hostname_short }}-sd.pem +key = /etc/stunnel/certs/{{ inventory_hostname_short }}-sd.key + +; Some performance tunings +socket = l:TCP_NODELAY=1 +socket = r:TCP_NODELAY=1 + +; Prevent MITM attacks +verify = 4 + +; Disable support for insecure protocols +options = NO_SSLv2 +options = NO_SSLv3 +options = NO_TLSv1 +options = NO_TLSv1.1 + +; These options provide additional security at some performance degradation +options = SINGLE_ECDH_USE +options = SINGLE_DH_USE + +; Select permitted SSL ciphers +ciphers = EECDH+AES:EDH+AES:!MEDIUM:!LOW:!EXP:!aNULL:!eNULL:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1 + +; ************************************************************************** +; * Service definitions (remove all services for inetd mode) * +; ************************************************************************** + +[{{ inventory_hostname_short }}-sd] +client = no +accept = 9103 +connect = 127.0.0.1:9113 +CAfile = /etc/stunnel/certs/bacula-dir+fds.pem + +; vim:ft=dosini -- cgit v1.2.3