Postfix: support du SMTPS authentifié (SASL)

Avoir un serveur SMTP qui envoie des mails est bien, le sécuriser c’est mieux.

La législation française impose d’enregistrer les méta-données de connexion aux serveurs, que ce soit vers l’Internet ou en interne. L’authentification est alors une étape primordiale dans la configuration de notre serveur d’envoi SMTP.

Afin de sécuriser nos échanges, nous ajouterons une couche de chiffrement SSL à Postfix, évitant à des attaquants d’intercepter des mails en clair sur le réseau.

Ce tutoriel a été réalisé et testé sur des infrastructures de production en FreeBSD 9.2 et OpenBSD 5.3

Prérequis

Vérifiez que votre version de postfix est compilée avec le support TLS/SSL et SASL2

Support SSL

Dans un premier temps nous allons créer nos certificats.

Je vous convie à regarder cet article afin de générer des certificats, valides ou non.

Installation de cyrus-sasl avec support LDAP

Nous allons utiliser cyrus-sasl afin d’authentifier nos utilisateurs sous Postfix.

Sous FreeBSD:

Cochez l’option OpenLDAP.

Sous OpenBSD:

Sélectionnez la version ldap.

Configuration de cyrus-sasl (saslauthd)

 La configuration de cyrus-sasl se fait très rapidement. Ouvrez le fichier /usr/local/etc/saslauthd.conf (/etc/saslauthd.conf sur OpenBSD/Debian) et renseignez les champs nécessaires à l’authentification LDAP.

Si vous autorisez la lecture de manière anonyme, vous pouvez retirer les deux dernières lignes.

On va maintenant activer et configurer le lancement du service:

Sous FreeBSD, fichier /etc/rc.conf:

Sous OpenBSD, fichier /etc/rc.conf.local:

Nous devons changer le chemin des pipes SASL afin que postfix puisse les utiliser, celui-ci étant chrooté par défaut. L’option -m est celle qui offre cette possibilité.

Créez ensuite le dossier précédemment cité, nécessaire dans une configuration de postfix chrootée, changez le propriétaire et lancez le service

Sur FreeBSD:

Sur OpenBSD:

Note: sur OpenBSD 5.3 il faut rajouter les droits d’exécution sur /etc/rc.d/saslauthd, autrement il n’est pas possible de lancer le service directement.

Test de cyrus-sasl

On va maintenant tester cyrus-sasl.

Si tout se passe bien vous aurez le résultat suivant:

En cas d’erreur de mot de passe, vous aurez l’erreur suivante, dans ce cas corrigez le mot de passe:

Si vous ne parvenez pas à détecter pourquoi cela ne fonctionne pas, regardez le fichier /var/log/auth.log

Dans l’exemple précédent, vous avez omis d’activer l’option d’authentification LDAP au lancement du service, de ce fait saslauthd veut s’authentifier via le PAM.

Pour terminer on va ajouter les options d’authentification de SASL dans le fichier /usr/local/lib/sasl2/smtpd.conf

Configuration de postfix

On va maintenant configurer postfix. Ouvrez tout d’abord le fichier main.cf. Allez en fin de fichier et collez les lignes suivantes:

On relie ici postfix à l’authentification SASL. On n’autorise pas l’authentification anonyme (smtpd_sasl_security_options) et on rejette tout client non authentifié (smtpd_client_restrictions), ou dont le login est incorrect (reject final). Par ailleurs, on limite le nombre de destinataire d’un message à 200 personnes (smtpd_recipient_limit).

Ajustez les chemins vers vos certificats.

Pour finir ouvrez le fichier main.cf et décommentez les lignes suivantes:

Cela aura pour effet d’activer l’écoute SMTPS (port 465), d’activer TLS et l’authentification SASL).

Attention: il se peut que sur FreeBSD les options du master.cf ne passent pas bien. Dans ce cas ajoutez les lignes suivantes dans le main.cf.

Attention: après redémarrage de postfix, si la commande postconf retourne smtpd_sasl_type = dovecot, rajoutez la ligne suivante dans le fichier master.cf.

Conclusion

Voilà qui conclut cette partie chiffrement et authentification. Prenez bien le temps de vérifier que les authentifications fonctionnent correctement (mot de passe correct et pas d’anonymous), les variables ne sont pas évidentes à ajuster et dépendent des version de Postfix et de votre OS.

Google Plus

2 thoughts on “Postfix: support du SMTPS authentifié (SASL)

  1. Bonjour,

    Il y a une petite inversion dans la partie « configuration de postfix ». Le premier fichier traité est le main.cf et le second le master.cf 😉

    Bonne continuation pour le site !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *