summaryrefslogtreecommitdiffstats
path: root/roles/webmail
diff options
context:
space:
mode:
Diffstat (limited to 'roles/webmail')
-rw-r--r--roles/webmail/handlers/main.yml4
-rw-r--r--roles/webmail/tasks/mail.yml27
-rw-r--r--roles/webmail/templates/etc/stunnel/smtp.conf.j2 (renamed from roles/webmail/templates/etc/stunnel/postfix.conf.j2)5
3 files changed, 15 insertions, 21 deletions
diff --git a/roles/webmail/handlers/main.yml b/roles/webmail/handlers/main.yml
index f7e403e..6009de0 100644
--- a/roles/webmail/handlers/main.yml
+++ b/roles/webmail/handlers/main.yml
@@ -1,6 +1,6 @@
---
-- name: Restart stunnel
- service: name=stunnel4 pattern=/usr/bin/stunnel4 state=restarted
+- name: Restart stunnel@smtp
+ service: name=stunnel4@smtp state=restarted
- name: Restart Nginx
service: name=nginx state=restarted
diff --git a/roles/webmail/tasks/mail.yml b/roles/webmail/tasks/mail.yml
index 7603a56..78eee38 100644
--- a/roles/webmail/tasks/mail.yml
+++ b/roles/webmail/tasks/mail.yml
@@ -1,39 +1,32 @@
-- name: Install stunnel
- apt: pkg=stunnel4
-
-- name: Auto-enable stunnel
- lineinfile: dest=/etc/default/stunnel4
- regexp='^(\s*#)?\s*ENABLED='
- line='ENABLED=1'
- owner=root group=root
- mode=0644
-
- name: Create /etc/stunnel/certs
file: path=/etc/stunnel/certs
state=directory
owner=root group=root
mode=0755
- name: Copy the SMTP outgoing proxy's X.509 certificate
assemble: src=certs/postfix regexp="{{ groups.out | difference([inventory_hostname]) | join('|') }}\.pem$" remote_src=no
- dest=/etc/stunnel/certs/postfix.pem
+ dest=/etc/stunnel/certs/smtp.pem
owner=root group=root
mode=0644
register: r1
notify:
- - Restart stunnel
+ - Restart stunnel@smtp
- name: Configure stunnel
- template: src=etc/stunnel/postfix.conf.j2
- dest=/etc/stunnel/postfix.conf
+ template: src=etc/stunnel/smtp.conf.j2
+ dest=/etc/stunnel/smtp.conf
owner=root group=root
mode=0644
register: r2
notify:
- - Restart stunnel
+ - Restart stunnel@smtp
+
+- name: Enable stunnel@smtp
+ service: name=stunnel4@smtp enabled=yes
-- name: Start stunnel
- service: name=stunnel4 pattern=/usr/bin/stunnel4 state=started
+- name: Start stunnel@smtp
+ service: name=stunnel4@smtp state=started
when: not (r1.changed or r2.changed)
- meta: flush_handlers
diff --git a/roles/webmail/templates/etc/stunnel/postfix.conf.j2 b/roles/webmail/templates/etc/stunnel/smtp.conf.j2
index 9003686..ba38bfa 100644
--- a/roles/webmail/templates/etc/stunnel/postfix.conf.j2
+++ b/roles/webmail/templates/etc/stunnel/smtp.conf.j2
@@ -1,30 +1,31 @@
; **************************************************************************
; * 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/postfix.pid
+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/postfix/ssl/{{ ansible_fqdn }}.pem
key = /etc/postfix/ssl/{{ ansible_fqdn }}.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
@@ -34,24 +35,24 @@ 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) *
; **************************************************************************
[smtp]
accept = localhost:2525
connect = outgoing.fripost.org:{{ postfix_instance.out.port }}
-CAfile = /etc/stunnel/certs/postfix.pem
+CAfile = /etc/stunnel/certs/smtp.pem
protocol = smtp
; vim:ft=dosini