Friday, May 26, 2023

Specifying TLS versions for OpenSMTPD

Hi,

I am currently configuring an e-mail server with OpenSMTPD. While it is
2023, I am aware of the fact that some remote mail servers will support
insecure TLS protocols or fall back to plaintext. Because of that, I
want to advertise legacy TLS support (TLSv1.0 and up), for port 25 while
keeping modern TLS versions (TLSv1.2-1.3), for submission.

An excerpt of my current config is:

/etc/mail/smtpd.conf
. . .
listen on lo0 port 25 tls pki my.server.com protocols "all"
listen on lo0 port 587 tls-require pki my.server.com protocols
"secure" auth <virtual_creds>

The strings I have used ("all", "secure") come from: man 3
tls_config_parse_protocols, which is referenced in: man smtpd.conf under
the "protocols" keyword.

A quick syntax check:

$ doas smtpd -n

... shows no issues.

When I test this via:

openssl s_client -connect 127.0.0.1:25 -starttls smtp -tls1

... I cannot conduct a regular interactive SMTP transaction - the
connection is established and then drops before I can: EHLO example.com
and so on.

Am I specifying this correctly ? I tried enclosing "all" and "secure"
in double quotes, but testing with: openssl does not seem to work when
explicitly specifying TLSv1.0, TLSv1.1. It seems that OpenSMTPD is only
happy if the connection is TLSv1.2 or TLSv1.3.

Thanks,

-J

No comments:

Post a Comment