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:
- la liste des utilisateurs
- des informations quelconques sur ces utilisateurs
Ces informations peuvent être une photo, l’appartenance à un groupe, un mot de passe, etc. Nous utilisons beaucoup LDAP pour vérifier:
- L’identité d’un utilisateur (on lui demande son mot de passe, c’est un challenge SASL)
- Qu’un utilisateur existe
- Qu’une adresse mail existe
- Qu’une boîte mail existe
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:
- Le SASL, qui consiste à donner accès à une ressource à un utilisateur ayant réussi un challenge (souvent donner un login et un mot de passe)
- Les recherches ou binds, qui consistent à parcourir l’ensemble ou une partie de l’arborescence LDAP en sélectionnant des entrées selon certains critères.
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.