Postfix auth TLS
| Fiche express | |
|---|---|
| Domaine | Chiffrement TLS de la session SMTP (côté serveur) |
| Fichier | /etc/postfix/main.cf
|
| Niveau usuel | smtpd_tls_security_level = may
|
| Voir aussi | Configure Postfix to use SASL authentication with TLS security |
Cette page couvre uniquement le chiffrement de la session SMTP côté serveur
(smtpd_tls_*) — l'authentification des clients par SASL est un mécanisme
distinct, traité sur Configure Postfix to use SASL authentication with TLS security. Les
deux se combinent en pratique : TLS protège le canal, SASL authentifie l'expéditeur.
Paramètres de base
STARTTLS s'active en ajoutant à main.cf :
data_directory = /var/lib/postfix
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
inet_protocols = ipv4
smtp_fallback_relay = [hostname.fqdn]
smtpd_tls_security_level = may rend TLS opportuniste : le client peut
choisir de chiffrer (STARTTLS) ou non, la connexion n'échoue jamais faute de TLS. C'est le
réglage recommandé pour un serveur exposé sur Internet (la RFC 2487 déconseille de rendre TLS
obligatoire pour du SMTP public, au risque de perdre des messages provenant de MTA distants
mal configurés). smtpd_tls_auth_only = yes interdit en revanche l'authentification
SASL en clair : une fois STARTTLS proposé, l'authentification ne peut se faire qu'à
l'intérieur du canal chiffré.
Certificat
smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
smtpd_tls_key_file = /etc/ssl/private/postfix.key
Un certificat auto-signé suffit pour du TLS opportuniste (il ne fait qu'établir le chiffrement, pas une identité vérifiée par une autorité tierce) ; pour un serveur qui doit être reconnu comme un MX de confiance par d'autres MTA (DANE, MTA-STS), un certificat émis par une autorité reconnue est nécessaire.
Restreindre les protocoles et suites de chiffrement
Les recommandations ci-dessous datent d'une époque où SSLv2/SSLv3/TLSv1.0 étaient encore courants ; à ne plus utiliser telles quelles aujourd'hui (à vérifier selon la version de Postfix/OpenSSL disponible — les versions récentes de Postfix (≥ 3.x) désactivent SSLv2/SSLv3 par défaut et acceptent nativement TLSv1.2/TLSv1.3). Elles restent utiles pour comprendre la logique de durcissement :
smtpd_tls_mandatory_protocols = !SSLv2, !SSLv3
smtp_tls_mandatory_protocols = !SSLv2, !SSLv3
smtpd_tls_protocols = TLSv1.2, TLSv1.3
smtp_tls_protocols = TLSv1.2, TLSv1.3
smtpd_tls_exclude_ciphers = aNULL, DES, 3DES, MD5, RC4, SEED, ECDSA
smtpd_tls_mandatory_ciphers = high
(La forme historique du paramètre tls_high_cipherlist, longue liste de suites
séparées par :, est mieux gérée aujourd'hui en laissant OpenSSL choisir via
ciphers = high plutôt qu'en la recopiant à la main — la liste explicite se
périme rapidement à mesure que de nouvelles vulnérabilités sont découvertes sur d'anciennes
suites.)
Configuration de référence
Un jeu de paramètres simple et robuste pour un serveur Postfix récent, avec TLS opportuniste et un certificat auto-signé de test :
# Certificat / clé
smtpd_tls_cert_file = /etc/ssl/certs/postfix.pem
smtpd_tls_key_file = /etc/ssl/private/postfix.key
# Niveau de journalisation TLS (0 = minimal)
smtpd_tls_loglevel = 0
# TLS opportuniste, en émission comme en réception
smtpd_tls_security_level = may
smtp_tls_security_level = may
# N'autoriser l'authentification SASL qu'après STARTTLS
smtpd_tls_auth_only = yes
# Désactiver la compression TLS (vulnérabilité CRIME)
tls_ssl_options = NO_COMPRESSION
Voir aussi
- Configure Postfix to use SASL authentication with TLS security — authentification des clients par SASL
- Configuration postfix — autres directives de
main.cf - Postfix gmail — cas particulier du chiffrement côté client (relais sortant)