enable_mta_sts
Since: Version 2023.11.28-b5252a41
The functionality described in this section requires version 2023.11.28-b5252a41 of KumoMTA, or a more recent version.
When set to true (which is the default), a resolved
MTA-STS policy for the
destination domain will be used to adjust the effective value of enable_tls.
You can set it to false to prevent a policy from raising the TLS posture for
this egress path.
Since: Dev Builds Only
The functionality described in this outlined box requires a dev build of KumoMTA. You can obtain a dev build by following the instructions in the Installation section.
This option influences only whether the TLS portion of the MTA-STS policy
is applied on this particular egress path. It doesn't control whether the
MTA-STS records are queried. Since MTA-STS records can influence the
effective site_name, they are now queried before we instantiate the
egress path.
kumo.dns.set_mta_sts_enabled
controls whether MTA-STS records are used. In earlier versions,
enable_mta_sts controlled both querying and TLS level, which could lead to
broken routing for certain types of domains sharing the same MXs.
For example, for gmail.com we'll issue a TXT lookup for
_mta-sts.gmail.com and an HTTP GET for
https://mta-sts.gmail.com/.well-known/mta-sts.txt as described in the MTA-STS
RFC. The latter resource returns the MTA-STS policy, which at the time of writing
looks like this for gmail.com:
version: STSv1
mode: enforce
mx: gmail-smtp-in.l.google.com
mx: *.gmail-smtp-in.l.google.com
max_age: 86400
The mode field describes the intended policy of the destination site, while
the mx fields place restrictions on the allowable list of MX hosts.
If the mode for the destination domain is set to "enforce", then the
connection will be made with enable_tls="Required". Candidate MX hosts that do
not match the mx fields are removed during resolution, so by the time a
connection is attempted the candidate set already satisfies the policy.
If the mode is set to "testing", then the connection will be made
with enable_tls="OpportunisticInsecure".
If the mode is set to "none", then your configured value for enable_tls
will be used.
If enable_dane=true and TLSA records are present, then any MTA-STS policy
will be ignored.