OpenSMTPD 5.4 est arrivé !

Il y a quelques jours, sortait la très attendue version 5.4.1 d'OpenSMTPD. Cette nouvelle version se distingue de son aînée au travers de grosses modifications de la grammaire du fichier de configurations, cassant ainsi la compatibilité avec les versions précédentes (bonus: mon tutoriel a été mis à jour). Bien que casser ainsi la rétro-compatibilité ne soit pas toujours ni souhaitable ni apprécié, dans le cas présent c'était la seule manière d'éliminer de gros défauts. Et ça paye : OpenSMTPD est maintenant encore plus simple à configurer. Bref, voici une courte sélections des changements que je trouve les plus significatifs.

Spécification du hostname

Avec les versions précédentes, OpenSMTPD utilisais systématiquement le hostname du système. Si l'on voulais en préciser un différent, il fallait se livrer à une petite gymnastique assez peu pratique. Désormais, relay et listen acceptent la spécification d'un hostname différent :

listen on lo hostname example.org
accept for any relay hostname example.org

On notera également l'ajout de hostnames qui, lui, accepte une table associant des IPs à leur hostname respectif.

Introduction des PKI

Avant, afin de spécifier les certificats nécessaires pour le SSL/TLS, ces derniers devaient obligatoirement se trouver dans le dossier /etc/smtpd/certs/ et respecter une certaine convention de nommage. Ce fonctionnement étant peu pratique, la directive pki a été ajoutée. Cette dernière permet de spécifier, pour chaque domaine, quel certificat utiliser :

pki example.org certificate "/path/to/certificate.pem"
pki example.org key "/path/to/private_key.key"

L'intégration à listen et relay est on ne peut plus simple :

listen on lo smtps pki example.org auth hostname example.org
accept relay hostname example.org pki example.org

TLS et vérifications

Cette nouvelle version apporte des options intéressantes au niveau de TLS. D'une part, il est possible de vérifier la validité d'un certificat dans un relay ou listen, rejetant ainsi les clients ou hosts ayant un certificat non valide. D'autre part, listen propose désormais, en plus de STARTTLS qui était déjà supporté, du SMTPS.

Support de l'IPv6

Je n'ai pas connaissance de l'étendue du problème, mais chez moi OpenSMTPD 5.3 ne supportait pas l'envoi d'emails vers des serveurs IPv6. Dans la quasi-totalité des cas il y un serveur IPv4 et donc ça ne posais pas de problèmes, mais pas toujours (cf doesnotwork.eu). Ce n'est maintenant plus le cas, l'IPv6 est très bien supporté.

Fin du listen on all

Suite à des problèmes posés par le mot clé all sur la version portable d'OpenSMTPD, ce dernier à été retiré. Afin d'écouter sur toutes les interfaces, il faut désormais utiliser ceci :

listen on 0.0.0.0
listen on ::

Liens utiles