Module 11 · Lesson 24 of 26

TLS hardening and MTA-STS

Part of Mailcow: Self-Hosted Mail Server Mastery — Hardening, fail2ban, TLS, MTA-STS.

TLS profile (UI → Configuration → Configuration → TLS):

  • Set minimum to TLSv1.2. Disable TLSv1.0/1.1.
  • Cipher suites: pick Intermediate (Mozilla SSL Config Generator profile). Modern breaks too many older relays.

MTA-STS (RFC 8461): advertises that your domain requires TLS for inbound mail. Two pieces:

  1. DNS TXT at _mta-sts.example.com:
v=STSv1; id=20260101;

Bump id= whenever you change the policy.

  1. Policy file at https://mta-sts.example.com/.well-known/mta-sts.txt:
version: STSv1
mode: enforce
mx: mail.example.com
max_age: 604800

TLS-RPT complements MTA-STS — DNS TXT at _smtp._tls.example.com pointing at a reporting mailbox. You'll get JSON reports when remote senders fail TLS to you.

Start mode: testing for two weeks, then switch to enforce once TLS-RPT shows zero failures.

Sign in to keep track of what you have read.

Pulse · self-hosted sending

Own the infrastructure your pipeline depends on.

One install script on your own server. Pulse sets up the MTA, mailboxes, certificates and dashboard; you add domains and start sending.

# on a fresh Ubuntu server
$ cd pulse && sudo ./install.sh
→ docker compose up · kumomta · stalwart · caddy
→ dashboard ready on https://pulse.yourdomain.com
$

Also from us:Beat — monitoring that tells you the fixConsulting — $65/hr, no retainer