diff options
author | Guilhem Moulin <guilhem@fripost.org> | 2016-05-22 17:21:16 +0200 |
---|---|---|
committer | Guilhem Moulin <guilhem@fripost.org> | 2016-05-22 17:53:58 +0200 |
commit | 8cf4032ecec5b9f58d829e89f231179170432539 (patch) | |
tree | 24947cc32af42e98bca3ed0b6319c69c77321262 /roles/bacula-sd | |
parent | f7a5a19edc504980e2e8f93ab027162756710d59 (diff) |
Tunnel bacula (dir → {fd,sd} and fd → sd) traffic through IPSec.
Diffstat (limited to 'roles/bacula-sd')
-rw-r--r-- | roles/bacula-sd/files/lib/systemd/system/bacula-sd.service | 2 | ||||
-rw-r--r-- | roles/bacula-sd/handlers/main.yml | 3 | ||||
-rw-r--r-- | roles/bacula-sd/tasks/main.yml | 58 | ||||
-rw-r--r-- | roles/bacula-sd/templates/etc/bacula/bacula-sd.conf.j2 | 5 | ||||
-rw-r--r-- | roles/bacula-sd/templates/etc/stunnel/bacula-sd.conf.j2 | 64 |
5 files changed, 3 insertions, 129 deletions
diff --git a/roles/bacula-sd/files/lib/systemd/system/bacula-sd.service b/roles/bacula-sd/files/lib/systemd/system/bacula-sd.service index ca147a7..698ad17 100644 --- a/roles/bacula-sd/files/lib/systemd/system/bacula-sd.service +++ b/roles/bacula-sd/files/lib/systemd/system/bacula-sd.service @@ -4,7 +4,7 @@ After=network.target [Service] Type=forking -PIDFile=/var/run/bacula/bacula-sd.9113.pid +PIDFile=/var/run/bacula/bacula-sd.9103.pid StandardOutput=syslog User=bacula Group=tape diff --git a/roles/bacula-sd/handlers/main.yml b/roles/bacula-sd/handlers/main.yml index c6adb80..3434333 100644 --- a/roles/bacula-sd/handlers/main.yml +++ b/roles/bacula-sd/handlers/main.yml @@ -2,8 +2,5 @@ - name: systemctl daemon-reload command: /bin/systemctl daemon-reload -- name: Restart stunnel@bacula-sd - service: name=stunnel4@bacula-sd state=restarted - - name: Restart bacula-sd service: name=bacula-sd state=restarted diff --git a/roles/bacula-sd/tasks/main.yml b/roles/bacula-sd/tasks/main.yml index 795804f..ad77db4 100644 --- a/roles/bacula-sd/tasks/main.yml +++ b/roles/bacula-sd/tasks/main.yml @@ -1,61 +1,3 @@ -- name: Create /etc/stunnel/certs - file: path=/etc/stunnel/certs - state=directory - owner=root group=root - mode=0755 - -- name: Generate a private key and a X.509 certificate for Bacula SD - command: genkeypair.sh x509 - --pubkey=/etc/stunnel/certs/{{ inventory_hostname_short }}-sd.pem - --privkey=/etc/stunnel/certs/{{ inventory_hostname_short }}-sd.key - --ou=BaculaSD --cn={{ inventory_hostname }} --dns={{ inventory_hostname }} - -t rsa -b 4096 -h sha512 - register: r1 - changed_when: r1.rc == 0 - failed_when: r1.rc > 1 - notify: - - Restart stunnel@bacula-sd - tags: - - genkey - -- name: Fetch Bacula SD X.509 certificate - # Ensure we don't fetch private data - become: False - fetch_cmd: cmd="openssl x509" - stdin=/etc/stunnel/certs/{{ inventory_hostname_short }}-sd.pem - dest=certs/bacula/{{ inventory_hostname_short }}-sd.pem - tags: - - genkey - -- name: Copy Bacula Dir/FD X.509 certificates - assemble: src=certs/bacula regexp="-(dir|fd)\.pem$" remote_src=no - dest=/etc/stunnel/certs/bacula-dir+fds.pem - owner=root group=root - mode=0644 - register: r2 - notify: - - Restart stunnel@bacula-sd - -- name: Configure stunnel - template: src=etc/stunnel/bacula-sd.conf.j2 - dest=/etc/stunnel/bacula-sd.conf - owner=root group=root - mode=0644 - register: r3 - notify: - - Restart stunnel@bacula-sd - -- name: Enable stunnel@bacula-sd - service: name=stunnel4@bacula-sd enabled=yes - -- name: Start stunnel - service: name=stunnel4@bacula-sd state=started - when: not (r1.changed or r2.changed or r3.changed) - -- meta: flush_handlers - - - - name: Install bacula-sd apt: pkg=bacula-sd diff --git a/roles/bacula-sd/templates/etc/bacula/bacula-sd.conf.j2 b/roles/bacula-sd/templates/etc/bacula/bacula-sd.conf.j2 index fbfdca5..5ffa17c 100644 --- a/roles/bacula-sd/templates/etc/bacula/bacula-sd.conf.j2 +++ b/roles/bacula-sd/templates/etc/bacula/bacula-sd.conf.j2 @@ -15,9 +15,8 @@ Storage { # define myself Working Directory = /var/lib/bacula Pid Directory = /var/run/bacula Maximum Concurrent Jobs = 20 - SDAddress = 127.0.0.1 - SDPort = 9113 - Heartbeat Interval = 1 min + SDAddress = {{ ipsec[inventory_hostname_short] }} + SDPort = 9103 } # diff --git a/roles/bacula-sd/templates/etc/stunnel/bacula-sd.conf.j2 b/roles/bacula-sd/templates/etc/stunnel/bacula-sd.conf.j2 deleted file mode 100644 index 051412c..0000000 --- a/roles/bacula-sd/templates/etc/stunnel/bacula-sd.conf.j2 +++ /dev/null @@ -1,64 +0,0 @@ -; ************************************************************************** -; * Global options * -; ************************************************************************** - -; setuid()/setgid() to the specified user/group in daemon mode -setuid = stunnel4 -setgid = stunnel4 - -; PID is created inside the chroot jail -pid = -foreground = yes - -; 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 - -socket = l:TCP_NODELAY=1 -socket = l:SO_KEEPALIVE=1 -socket = l:TCP_KEEPIDLE=60 -socket = l:TCP_KEEPINTVL=15 -socket = l:TCP_KEEPCNT=116 - -socket = r:TCP_NODELAY=1 -socket = r:SO_KEEPALIVE=1 -socket = r:TCP_KEEPIDLE=60 -socket = r:TCP_KEEPINTVL=15 -socket = r:TCP_KEEPCNT=116 - -; Prevent MITM attacks -verify = 4 - -; Disable support for insecure protocols -options = NO_SSLv2 -options = NO_SSLv3 -options = NO_TLSv1 -options = NO_TLSv1.1 - -options = NO_COMPRESSION - -; These options provide additional security at some performance degradation -options = SINGLE_ECDH_USE -options = SINGLE_DH_USE - -; Select permitted SSL ciphers -ciphers = EECDH+AESGCM:!MEDIUM:!LOW:!EXP:!aNULL:!eNULL - -; ************************************************************************** -; * 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 |