{{indexmenu_n>20}} # Récupérer des mails reçus sur une adresse Picasoft Cette page concerne le [[technique:old:etudes:mail:serveurs_de_mail:mda|MDA]], à savoir l'étape de récupération des mails reçus sur une adresse Picasoft. :!: Avant toute configuration, c'est l'installation du paquet Debian ''dovecot-ldap'' qui fournit les principaux fichiers de configuration. ===== Définition de la méthode d'authentification ===== Dovecot permet l'utilisation de différents moyens d'authentification pour accéder aux boîtes mails. Dans le cadre de Picasoft, Dovecot doit interroger un LDAP. La première configuration se fait dans le fichier ''/etc/dovecot/conf.d/10-auth.conf'' : #!include auth-deny.conf.ext #!include auth-master.conf.ext #!include auth-system.conf.ext #!include auth-sql.conf.ext !include auth-ldap.conf.ext #!include auth-passwdfile.conf.ext #!include auth-checkpassword.conf.ext #!include auth-vpopmail.conf.ext #!include auth-static.conf.ext ===== Configuration de l'interrogation du LDAP ===== Le fichier de configuration se trouve sous ''/etc/dovecot/dovecot-ldap.conf.ext''. Une configuration minimale est celle-ci : hosts = ldap.test.picasoft.net // adresse du LDAP dn = cn=mystere,dc=picasoft,dc=net // cn du NSS (pour accéder et lire les infos du LDAP) dnpass = mysterepwd // mot de passe du NSS auth_bind = yes // on réaliser des binds LDAP base = dc=picasoft,dc=net // base à partir de laquelle effectuer la recherche scope = subtree // la recherche s'effectue dans toute l'arborescence sous-jacente user_attrs = // l'implémentation spécifique à Picasoft ne nécessite de récupérer aucun attribut user_filter = (uid=%n) // la correspondance s'effectue sur l'UID (côté LDAP) pass_attrs = uid=user,userPassword=password pass_filter = (uid=%n) Si LDAPS est utilisé, on veillera à ce : * Le certificat soit signé par une autorité de certification installée sur le système (pour Let's Encrypt, installer `ca-certificates` suffit) * Ou que `ldap_tls_cacert_file` point vers le certificat du serveur LDAP. Ceci parce que `saslauthd`, le démon qui se charge de l'authentification, impose que le certificat soit vérifié. Cependant, et spécifiquement à l'implémentation chez Picasoft, nous optimisons le nombre de requêtes LDAP. En effet, puisque nous n'avons pas d'information à récupérer des comptes LDAP((Pour l'instant : si l'utilisateurice existe dans l'annuaire alors elle peut envoyer et recevoir des mails, et son //home directory// ([[https://wiki.dovecot.org/VirtualUsers/Home|au sens mail]]) correspond à son ''uid''.)), les deux recherches classiques de Dovecot pour le mot de passe puis pour les données des utilisateurices ne sont pas nécessaires. On peut alors les fusionner en une seule : on ne cherche qu'à vérifier que l'utilisateurice existe et que les mots de passe coïncident. Pour cela, il faut éditer le fichier ''/etc/dovecot/conf.d/auth-ldap.conf.ext'': passdb { driver = ldap args = /etc/dovecot/dovecot-ldap.conf.ext } # "prefetch" user database means that the passdb already provided the # needed information and there's no need to do a separate userdb lookup. # userdb { driver = prefetch } userdb { // définition spécifique pour la requête LMTP driver = ldap args = /etc/dovecot/dovecot-ldap.conf.ext } ainsi que le fichier ''/etc/dovecot/dovecot-ldap.conf.ext'' : pass_attrs = uid=user,userPassword=password,uid=userdb_user // on récupère l'uid car sinon il y a une erreur (Dovecot veut récupérer un champ utilisateur) mais en soi il ne nous sert à rien. pass_filter = (uid=%n) // la correspondance des mots de passe se fait avec l'utilisateurice correspondant au login entré user_attrs = // définition spécifique pour la requête LMTP