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

Note : [:JeanChristopheAndré:Je] présente ici l'installation sur une Debian Sarge ou Etch.

Installation des outils requis

La version de Postfix livrée avec Sarge nécessite d'installer un paquet supplémentaire :

$ sudo aptitude install postfix-tls

En revanche avec Etch intègre TLS de base dans le paquet postfix.

On aura aussi besoin des outils SSL pour créer un certificat pour le serveur :

$ sudo aptitude install openssl

Création d'un certificat 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.

$ sudo mkdir /etc/postfix/ssl
$ cd /etc/postfix/ssl
$ sudo openssl req -new -x509 -nodes -out smtpd.pem -keyout smtpd.pem -days 365
$ sudo chmod 0600 smtpd.pem

Configuration de Postfix pour utiliser TLS

On pourra utiliser l'extrait de configuration suivant dans /etc/postfix/main.cf :

#===== TLS
tls_random_source = dev:/dev/urandom
#----- connexion entrante
smtpd_tls_loglevel = 2
smtpd_use_tls = yes
#smtpd_enforce_tls = yes
# n'offrir la possibilité de s'authentifier *que* si on est sécurisé via TLS
smtpd_tls_auth_only = yes
smtpd_tls_ask_ccert = yes
#smtpd_tls_req_ccert = yes
smtpd_tls_key_file = $config_directory/ssl/smtpd.pem
smtpd_tls_cert_file = $config_directory/ssl/smtpd.pem
#smtpd_tls_CAfile = $config_directory/ssl/CA.pem
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
#----- connexion sortante
smtp_tls_loglevel = 2
smtp_use_tls = yes
#smtp_enforce_tls = yes
smtp_tls_note_starttls_offer = yes
# ne s'authentifier *que* si on est sécurisé via TLS
smtp_tls_auth_only = yes
smtp_tls_enforce_peername = no
smtp_tls_key_file = $config_directory/ssl/smtpd.pem
smtp_tls_cert_file = $config_directory/ssl/smtpd.pem
#smtp_tls_CAfile = $config_directory/ssl/CA.pem

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

$ sudo invoke-rc.d postfix restart

Documentations

Discussions