summaryrefslogtreecommitdiffstats
path: root/roles/bacula-dir/templates/etc/stunnel
diff options
context:
space:
mode:
Diffstat (limited to 'roles/bacula-dir/templates/etc/stunnel')
-rw-r--r--roles/bacula-dir/templates/etc/stunnel/bacula-dir.conf.j270
1 files changed, 70 insertions, 0 deletions
diff --git a/roles/bacula-dir/templates/etc/stunnel/bacula-dir.conf.j2 b/roles/bacula-dir/templates/etc/stunnel/bacula-dir.conf.j2
new file mode 100644
index 0000000..aae49bc
--- /dev/null
+++ b/roles/bacula-dir/templates/etc/stunnel/bacula-dir.conf.j2
@@ -0,0 +1,70 @@
+; **************************************************************************
+; * 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-dir.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 }}-dir.pem
+key = /etc/stunnel/certs/{{ inventory_hostname_short }}-dir.key
+client = yes
+socket = a:SO_BINDTODEVICE=lo
+
+; 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) *
+; **************************************************************************
+
+{% if 'bacula-sd' not in group_names %}
+[{{ hostvars[ groups['bacula-sd'][0] ].inventory_hostname_short }}-sd]
+accept = 127.0.{{ n }}.1:9113
+connect = {{ groups['bacula-sd'][0] }}:9103
+delay = yes
+CAfile = /etc/stunnel/certs/{{ hostvars[ groups['bacula-sd'][0] ].inventory_hostname_short }}-sd.pem
+{% endif %}
+
+{% set n = 0 %}
+{% for fd in groups.all | sort %}
+{% set n = n + 1 %}
+{% if fd != inventory_hostname %}
+[{{ hostvars[fd].inventory_hostname_short }}-fd]
+accept = 127.0.{{ n }}.1:9112
+connect = {{ fd }}:9102
+delay = yes
+CAfile = /etc/stunnel/certs/{{ hostvars[fd].inventory_hostname_short }}-fd.pem
+{% endif %}
+
+{% endfor %}
+
+; vim:ft=dosini