On Tue, Jun 29, 2021 at 11:59:49PM +0200, Gerald Galster wrote:
> > Do you concatenate the server certificate, key, and CA cert chain
> > (and in what order) or do you leave them separate ?
>
> smtpd_use_tls = yes
This is obsolete. The non-obsolete syntax is:
smtpd_tls_security_level = may
> smtpd_tls_key_file = /etc/letsencrypt/live/mx1.mailserver.com/privkey.pem
With a sufficiently recent version of Postfix, one can also
use:
http://www.postfix.org/postconf.5.html#smtpd_tls_chain_files
with Let's encrypt this would look like:
smtpd_tls_chain_files =
# Each key must precede the chain file, or be the first PEM
# object in the same file as the certificate chain. The EE
# (end-entity) (server) certificate must precede the issuing
# CA(s).
#
/etc/letsencrypt/live/mx1.mailserver.com/privkey.pem,
/etc/letsencrypt/live/mx1.mailserver.com/fullchain.pem
> smtpd_tls_CAfile = /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
>
> - this is used when postfix needs to verify connections to other hosts
No, that's would be what 'smtp_tls_CAfile' is for, the "smtpd" version
is for verifying incoming *client* certificates, which is not widely
used. But even 'smtp_tls_CAfile' is only useful if one is actually
authenticating some remote destinations, not just doing opportunistic
unauthenticated TLS. Otherwise, no CAfile is needed in either
direction.
> # Postfix smtp-auth
> unix_listener /var/spool/postfix/private/auth {
> mode = 0666
> }
I have somewhat tighter permissions:
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0660
user = postfix
}
}
> broken_sasl_auth_clients = yes
> smtpd_sasl_security_options = noanonymous
With authentication enabled only for TLS, there's no need to allow
plaintext auth when TLS is absent. Best to leave that parameter
alone. Also leave "smtpd_sasl_auth_enable = no" by default, and
only enable it via master.cf for the submission services.
> for incoming connections:
> smtpd_tls_security_level = may
Correct this time.
> for outgoing connections:
> smtp_tls_security_level = may
Or perhaps "dane", if you have a local validating resolver, with just
"127.0.0.1" and/or "::1" in /etc/resolv.conf and also set:
smtp_dns_support_level = dnssec
--
Viktor.