Authentification SASL et binds LDAP

Un service de mail englobe plusieurs services et ressources et il faut parfois en limiter l’accès. Nous mettons donc en place de l’authentification, c’est-à-dire qu’un utilisateur doit prouver son identité (à l’aide d’un login et d’un mot de passe) pour avoir le droit d’effectuer certaines opérations. De plus, ces services doivent aussi contrôler les données qui passent à travers eux (des mails), et parfois ces données sont liées à l’existence d’utilisateurs autorisés a priori. Par exemple, quand le MTA reçoit un mail destiné à trucbidule@picasoft.net, il doit vérifier que trucbidule est bien un utilisateur possédant une boîte mail. Cependant, cette vérification se fait sans que trucbidule aie besoin de se connecter à un service quelconque.

Le LDAP

Nous utilisons un serveur LDAP qui centralise:

Ces informations peuvent être une photo, l’appartenance à un groupe, un mot de passe, etc. Nous utilisons beaucoup LDAP pour vérifier:

On peut voir que les vérifications dans le LDAP ont des finalités différentes. On peut en différencier deux types de connexion à un serveur LDAP:

Noter que le SASL est un protocole standard qui est supporté pas seulement par LDAP mais aussi par PAM (framework UNIX), IMAP et bien d’autres services permettant de protéger l’accès à une ressource.

Voici, à ce jour, les connexions LDAP qui sont effectuées par les différents composants du système de mail. Vous pouvez cliquer sur les liens pour voir l’implémentation technique.

Type Effectuée par But
SASL saslauthd pour postfix Protéger l'émission de courriels en @picasoft.net
Bind ldap-virtual-mailbox-maps pour postfix Vérifier que des adresses mail existent
SASL et Bind dovecot Réserver à un utilisateur l’accès à sa boîte mail
Bind dovecot Contrôler l’existence de boîtes mails

On pourrait éventuellement rajouter un bind permettant aux bons utilisateurs d’émettre des mails avec leurs adresses.