Introduzione
MTA-STS (Mail Transfer Agent Strict Transport Security) è uno standard che permette di forzare connessioni TLS cifrate tra mail server SMTP, prevenendo downgrade attack. In questa guida vediamo come configurarlo.
Il problema che risolve
SMTP utilizza tipicamente STARTTLS per cifrare connessioni, ma è opportunistico: se l'handshake fallisce o un'attaccante manipola la negoziazione (downgrade attack), il server cade in chiaro. MTA-STS forza il mail server mittente a usare TLS o rifiutare la consegna.
Componenti necessari
- Record DNS TXT sul sottodominio
_mta-sts. - Policy HTTPS servita da
mta-sts.dominio.it. - Mail server con TLS valido e certificato fidato.
Record DNS
_mta-sts.esempio.it. IN TXT "v=STSv1; id=20250105T120000;"
Il campo id è arbitrario ma deve cambiare ogni volta che modifichi la policy.
Policy HTTPS
Crea un file su https://mta-sts.esempio.it/.well-known/mta-sts.txt:
version: STSv1 mode: enforce mx: mail.esempio.it mx: backup.esempio.it max_age: 604800
Modalità (mode)
- none: disabilita MTA-STS.
- testing: i server mittenti rispettano la policy ma inviano email anche in caso di fallimento (con report).
- enforce: i server mittenti rifiutano la consegna se TLS fallisce.
Esempio step-by-step
1. Configura DNS
_mta-sts.esempio.it. IN TXT "v=STSv1; id=20250105T120000;" mta-sts.esempio.it. IN A 1.2.3.4
2. Configura web server
Su Nginx:
server {
listen 443 ssl;
server_name mta-sts.esempio.it;
ssl_certificate /etc/letsencrypt/live/mta-sts.esempio.it/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/mta-sts.esempio.it/privkey.pem;
location /.well-known/mta-sts.txt {
root /var/www/mta-sts;
default_type text/plain;
}
}3. Crea il file policy
version: STSv1 mode: testing mx: mail.esempio.it max_age: 86400
4. Inizia in testing
Lascia in testing per qualche settimana, monitora i report (vedi TLS-RPT), poi passa a enforce.
max_age
Tempo di cache della policy in secondi. Valori raccomandati:
- Testing: 86400 (24 h).
- Enforce stabile: 604800 (7 gg) o più.
Server che supportano MTA-STS
- Gmail / Google Workspace.
- Microsoft 365.
- Yahoo.
- Comcast.
- Apple iCloud.
Best practice
- Inizia sempre in
mode: testing. - Verifica i certificati TLS su tutti gli MX.
- Abilita anche TLS-RPT per ricevere report.
- Includi tutti i wildcard di MX nel campo
mx:. - Aggiorna
ida ogni modifica della policy.
Errori comuni
- Certificato TLS scaduto o self-signed sull'MX.
- Mismatch tra nome MX e CN certificato.
- File policy non raggiungibile (404).
- HTTPS senza certificato fidato su
mta-sts..
Verifica
Strumenti utili:
Hai bisogno di aiuto?
Se vuoi gestione DNS affidata a G Tech Group, scrivici tramite il modulo di contatto.