no title - source : 3_logo.svg

Depuis la dernière mise à jour de Dovecot qui s'est déroulée aux alentours du 1er Octobre 2019 sous Debian 10.1, Dovecot refusait la connexion en protocole imaps et plus généralement toute connexion SSL/TLS.

Première investigation :

openssl s_client -connect imap.domaine.tld:993

Le serveur coupe aussitôt la connexion. Pas bon du tout !

On continue l'investigation:

systemctl status dovecot.service

Cette commande vous permet de consulter l'état du service dovecot sous Debian et vous renvoie également les messages de debug (si Dovecot est en mode debug).

Pour ma part, voici ce que renvoyait cette commande :

dovecot[10871]: imap-login: Error: Failed to initialize SSL server context: Can't load DH parameters: error:1408518A:SSL routines:ssl3_ctx_ctrl:dh key too small: user=<>, rip=xxx...

On note clairement l'impossibilité pour le service dovecot de charger le fichier de paramètres DH avec une précision "dh key too small".

À ce stade, on connaît l'origine du problème.

 

Seconde investigation :

Vérifier que le fichier de paramètres DH existe et est bien chargé par le service Dovecot

ls -lisa /etc/dovecot/dh.pem 
792947 4 -rw-r--r-- 1 root dovecot 1440 févr. 12  2014 /etc/dovecot/dh.pem

Le fichier existe bien, il date du 12 Février 2014 et les droits sont bons, donc quel est le problème ?

 

Résolution du problème :

Assez récemment, je sais que d'importantes modifications ont été apportées à openssl sur le support v3 en particulier et nécessitant de regénérer les certificats pour les serveurs Web.

En toute logique, il faut donc regénérer le fichier DH pour chaque service utilisant TLS/SSL.

Pour se faire, voici la commande (en root):

openssl dhparam -out /etc/dovecot/dh.pem 4096

Bon, ça prend du temps. C'est le moment d'un bon café ;-)

 

Une fois terminée, on redémarre le service Dovecot :

systemctl restart dovecot.service

On vérifie la sortie de la commande :

systemctl status dovecot.service

Le service a bien redémarré et le message d'erreur a disparu, c'est bon signe ;-)

 

Test et validation de connexion IMAPS :

La dernière étape consiste à tester que la connexion au service Dovecot en IMAPS fonctionne :

openssl s_client -connect imap.domaine.tld:993

Voilà, les choses sont évidentes. La connexion est établie et nous pouvons exécuter des commandes IMAP ;-)