1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
#!/bin/sh
set -e
POSTFIX_BCKFILE="/var/backups/mail-stack-delivery/main.cf-backup"
set_postfix_option() {
opt="$1"
# Backup the existion value of the option
postconf $(echo ${opt} | cut -d= -f1) >> ${POSTFIX_BCKFILE} || true
# Set the new value of the option
postconf -e "${opt}"
echo -n '.'
}
if [ "$1" = "configure" ]; then
# Create initial symlinks for certificates
if [ ! -e "/etc/ssl/private/ssl-mail.key" ]; then
ln -s /etc/ssl/private/ssl-cert-snakeoil.key /etc/ssl/private/ssl-mail.key
fi
if [ ! -e "/etc/ssl/certs/ssl-mail.pem" ]; then
ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/ssl/certs/ssl-mail.pem
fi
# Configure postfix either on new install
# or if the postfix backup file is no longer there
# (only deleted when the pkg is removed)
if [ -f "/etc/postfix/main.cf" ]; then
if [ -e "$POSTFIX_BCKFILE" ]; then
cp $POSTFIX_BCKFILE ${POSTFIX_BCKFILE}-$(date +%Y%m%d%H%M)
fi
if [ -z "$2" -o ! -e "$POSTFIX_BCKFILE" ]; then
if which postconf >/dev/null; then
# Setup postfix
echo 'Mail stack delivery changes some postfix settings.'
echo 'Old values are stored in '$POSTFIX_BCKFILE'.'
echo 'Feel free to revert any of them when the process is done.'
echo -n 'Configuring postfix for mail-stack-delivery integration: '
set_postfix_option "home_mailbox = Maildir/"
set_postfix_option "smtpd_sasl_auth_enable = yes"
set_postfix_option "smtpd_sasl_type = dovecot"
set_postfix_option "smtpd_sasl_path = private/dovecot-auth"
set_postfix_option "smtpd_sasl_authenticated_header = yes"
set_postfix_option "smtpd_sasl_security_options = noanonymous"
set_postfix_option "smtpd_sasl_local_domain = \$myhostname"
set_postfix_option "broken_sasl_auth_clients = yes"
set_postfix_option "smtpd_recipient_restrictions = reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination"
set_postfix_option "smtpd_sender_restrictions = reject_unknown_sender_domain"
set_postfix_option "mailbox_command = /usr/lib/dovecot/deliver -c /etc/dovecot/conf.d/01-mail-stack-delivery.conf -m \"\${EXTENSION}\""
set_postfix_option "smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem"
set_postfix_option "smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key"
set_postfix_option "smtpd_use_tls = yes"
set_postfix_option "smtp_use_tls = yes"
set_postfix_option "smtpd_tls_received_header = yes"
set_postfix_option "smtpd_tls_mandatory_protocols = SSLv3, TLSv1"
set_postfix_option "smtpd_tls_mandatory_ciphers = medium"
set_postfix_option "smtpd_tls_auth_only = yes"
set_postfix_option "tls_random_source = dev:/dev/urandom"
echo ' done.'
fi
fi
else
echo ""
echo "Postfix not configured. Run"
echo "sudo dpkg-reconfigure postfix and choose"
echo "the type of mail server. Then run"
echo "sudo dpkg-reconfigure mail-stack-delivery to"
echo "finish mail-stack-delivery installation."
echo ""
fi
if [ -x "/etc/init.d/dovecot" ]; then
if [ -x /usr/sbin/invoke-rc.d ]; then
invoke-rc.d dovecot restart
else
service dovecot restart
fi
fi
if [ -x "/etc/init.d/postfix" ]; then
if [ -x /usr/sbin/invoke-rc.d ]; then
invoke-rc.d postfix restart
else
service postfix restart
fi
fi
fi
#DEBHELPER#
|