Cette page présente une façon de configurer [:Postfix:] afin d'y activer le chiffrement (et accessoirement l'authentification) des connexions via TLS.

Création d'une clé privée et d'un certificat auto-signé pour le serveur

La création correcte d'un certificat n'étant pas le sujet de cette page, je vous indique simplement une façon d'en produire un rapidement :

Note : le fichier smtpd.pem produit contient à la fois la clé privée (non protégée par un mot de passe) et le certificat public (auto-signé).

On place le fichier où il faut, en le protégeant :

Configuration de Postfix pour utiliser TLS

  1. Pour les connexions entrantes, voici les lignes à placer dans /etc/postfix/main.cf : {{{# extrait de /etc/postfix/main.cf

# on active TLS pour les connexions entrantes : smtpd_tls_security_level = may # NB sur un postfix antérieur à 2.3, c'est smtpd_use_tls = yes smtpd_tls_key_file = $config_directory/ssl/smtpd.pem smtpd_tls_cert_file = $config_directory/ssl/smtpd.pem # on prépare l'avenir : les authentification ne seront possibles # uniquement si le chiffrage TLS est actif sur la communication : smtpd_tls_auth_only = yes }}}

  1. Pour les connexion sortantes (quand le serveur envoie ces mails à un autre serveur qui connait TLS) : {{{# extrait de /etc/postfix/main.cf

# on active TLS pour les connexions sortantes smtp_tls_security_level = may # NB sur un postfix antérieur à 2.3, c'est smtp_use_tls = yes smtp_tls_key_file = $config_directory/ssl/smtpd.pem smtp_tls_cert_file = $config_directory/ssl/smtpd.pem smtp_tls_note_starttls_offer = yes smtp_tls_enforce_peername = no # ne s'authentifier *que* si on est sécurisé via TLS smtp_tls_auth_only = yes }}}

  1. Quelques autres options qui peuvent être utiles (voir man 5 postconf pour les détails) : {{{# quelques options possibles (voir man 5 postconf)

# optimisation vias des cache de session TLS : smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache # demander le certificat au client qui se connecte smtpd_tls_ask_ccert = yes # logs smtp_tls_loglevel = 2 smtpd_tls_loglevel = 2 # divers ... smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s }}}

Il faut bien évidement penser à redémarrer (et non recharger) Postfix :

Voir aussi