Serveur de Mail avec OpenLDAP

Dernière mise à jour : 09/09/2009

    Nous allons couvrir dans cet article comment param√©trer un serveur de mail pour s'authentifier √† un serveur OpenLDAP (utilisateurs virtuels) et pouvoir envoyer/recevoir des emails de fa√ßon transparente avec authentification SMTP/TLS. Ce tutoriel a √©t√© effectu√© sur une Debian. Je vous conseille d'avoir un serveur OpenLDAP bien configur√©. Afin de simplifier les commandes, on consid√®re que le serveur LDAP est local. Dans cet exemple, la base LDAP est frlinux.net (dc=frlinux,dc=net).

    Attention : Avant de continuer, je tiens √† pr√©ciser que cette page me sert plus de pense-b√™te que de tutoriel facile √† suivre. Donc il se peut que j'ai oubli√© des choses, mais la configuration d'un serveur LDAP avec cette m√©thode n'est pas ais√©e, donc je ne peux pas vraiment vous aider si quelque chose ne fonctionne pas chez vous (et cela essentiellement du √† tous les paquets √† installer pour que cela fonctionne).

    Installez les paquets suivants : apt-get install postfix postfix-ldap postgrey slapd amavisd-new courier-maildrop libnet-ldap-perl courier-authdaemon courier-authlib-ldap ldap-utils. Il faut commencer par ajouter les bons sch√©mas dans OpenLDAP, √©ditez donc /etc/ldap/slapd.conf pour ajouter les lignes suivantes :

    Il se peux qu'il vous manque le fichier /etc/ldap/schema/courier.schema. Voici donc une copie du miens :

    Pensez √©galement √† modifier /etc/courier/authdaemonrc pour contenir authldap dans la ligne authmodulelist.

    Il vous faut ensuite rentrer les bonnes informations dans l'annuaire OpenLDAP, nous commen√ßons donc par les acl et le tout qui va bien. Je me sers d'ACLs pour prot√©ger le serveur et √©viter les envois/r√©ceptions mails de personnes non d√©clar√©es.

    Ajoutez ensuite un compte comme ceci (attention, il vous faut remplacer le mot de passe en xxxxxxx par des hashes valides en MD5) :

    Changez ensuite le mot de passe comme ceci : ldappasswd -S -x -D "cn=Administrator,dc=frlinux,dc=net" -W "uid=frlinux,ou=People,dc=frlinux,dc=net". Notez qu'il faut remplacer Administrator par le bon compte servant √† g√©rer votre OpenLDAP. Il y a encore quelques informations √† entrer pour faire quelque chose de bien propre :

    Pour g√©rer les emails et la livraison, j'utilise un petit outil exotique du nom de gnarwl. Il vous permettra de permettre √† vos utilisateurs de mettre une r√©ponse automatique si n√©cessaire. Il vous faut pour cela ajouter les informations suivantes dans OpenLDAP :

    J'ai du patcher gnarwl afin de g√©rer le dereferencing sous OpenLDAP. Voici le patch √† appliquer (sauvez le sous le nom gnarwl.patch):

    Editez votre /etc/apt/sources.list pour ajouter ceci (ce n'est pas par erreur qu'on prends gnarwl depuis unstable, il n'existe plus dans lenny) :

    Il faut ensuite patcher et compiler :

   

    Voici le fichier de configuration de /etc/gnarwl.cfg

    Passons maintenant √† la partie amusante : postfix. Il y a beaucoup de configuration √† faire. Commen√ßons donc par main.cf (je ne liste ici que ce qui est √† ajouter, notez aussi que les uid et gid d√©pendent de votre installation) :

    Comme vous avez pu le constater, nous avons ajout√©s 4 fichiers : virtualmaps, accounts et virtualdomains. Pensez √©galement √† faire un postmap /etc/postfix/mailscripts :

    Modifier ensuite /etc/postifx/master.cf et ajouter les lignes suivantes :

    Il faut ensuite modifier amavis et particulier /etc/amavis/conf.d/50-user :

    Nous passons √† pr√©sent √† la configuration de courier. Editez /etc/courier/authdaemonrc et changez la ligne authmodulelist= pour ne contenir que ceci :

    Editez ensuite /etc/courier/authldaprc pour contenir ceci :

    Installez courier-imap-ssl : apt-get install courier-imap-ssl et editez /etc/courier/imapd.cnf pour qu'il corresponde √† vos crit√®res. Puis red√©marrez le serveur imap : dpkg-reconfigure courier-imap-ssl. Pour r√©ussir √† faire marcher l'authentification, j'ai du changer le mot de passe √† la main gr√Ęce √† cette commande : ldappasswd -S -x -D "cn=Administrator,dc=frlinux,dc=net" -W "uid=frlinux,ou=People,dc=frlinux,dc=net". Pensez a donner la bonne permission au d√©mon authdaemon
    Voil√† ceci conclu l'installation d'un serveur de mail g√©r√© par LDAP. Sous peu je rajouterais comment ajouter un domaine virtuel avec des alias.