Postfix Dovecot SSLDans notre série d’articles sur la mise en place d’un serveur mail sous CentOS avec Postfix et Dovecot, ce quatrième volet sera consacré à la sécurisation du serveur, et plus précisément au chiffrement des connexions. En effet, lors de l’authentification des clients mail sur le serveur, les identifiants de connexion et les mots de passe des utilisateurs se baladent en clair sur le réseau. Pour éviter cela, nous allons ajouter le chiffrement SSL/TLS à Postfix et Dovecot.

Prérequis

Notre serveur héberge les mails pour plusieurs domaines (en l’occurrence slackbox.fr et unixbox.fr), mais Postfix et Dovecot ne peuvent gérer les certificats que pour un seul domaine. Nous avons donc besoin d’un certificat SAN multi-domaines valable pour tous les domaines que nous gérons.

Les connexions sécurisées se font via le port 465 en TCP pour le SMTPS et le port 993 en TCP pour l’IMAPS. Il faut donc songer à ouvrir ces deux ports dans le pare-feu.

$ sudo firewall-cmd --permanent --add-service=smtps
$ sudo firewall-cmd --permanent --add-service=imaps
$ sudo firewall-cmd --reload
$ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: dns ftp http https imap imaps irc smtp smtps ssh
  ports: 50001-50010/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Configurer le chiffrement SSL pour Postfix

Pour activer le chiffrement SSL dans Postfix, il faut éditer /etc/postfix/main.cf et ajouter quatre lignes à la stance qui gère l’authentification SMTP, en précisant le chemin vers le certificat SSL et la clé privée.

# Authentification SMTP
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/letsencrypt/live/sd-100246.dedibox.fr/cert.pem
smtpd_tls_key_file = /etc/letsencrypt/live/sd-100246.dedibox.fr/privkey.pem
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache

# Restrictions SMTP
smtpd_recipient_restrictions = permit_mynetworks,
                               permit_sasl_authenticated,
                               reject_unauth_destination

Ensuite, il faut éditer /etc/postfix/master.cf et décommenter les lignes 26 à 28 du fichier, comme ceci.

smtps  inet  n   -   n   -   -   smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes

Configurer le chiffrement SSL pour Dovecot

Les options relatives au chiffrement SSL pour Dovecot sont rassemblées dans le fichier /etc/dovecot/conf.d/10-ssl.conf. Éditer les premières lignes de ce fichier pour activer le chiffrement SSL et indiquer le chemin vers notre certificat.

ssl = required
...
ssl_cert = </etc/letsencrypt/live/sd-100246.dedibox.fr/cert.pem
ssl_key = </etc/letsencrypt/live/sd-100246.dedibox.fr/privkey.pem

Redémarrer Postfix et Dovecot pour prendre en compte la nouvelle configuration.

$ sudo systemctl restart postfix dovecot

Configuration de Thunderbird

Voici à quoi ressemble la configuration du client mail Thunderbird avec le chiffrement SSL. Le serveur entrant se connecte sur le port 993, le serveur sortant sur le port 465. SSL/TLS est utilisé pour les connexions entrantes et sortantes.

Thunderbird SSL

Notre connexion est désormais sécurisée, et Thunderbird ne nous affiche plus d’avertissement pour notre configuration.


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.