Mail – Configuration de Courier IMAP en backend LDAP

Introduction

Ce document va expliquer la configuration d’un serveur IMAPs en utilisant la suiteCourier et plus particlulièrement le daemon IMAP, le tout avec un stockage des comptes dans un annuaire LDAP. Les utilisateurs seront virtuels et n’auront donc pas de compte réel sur le serveur.

Cela s’applique aussi bien à une distribution Linux, testé sur Debian Sarge & Etch, que sur FreeBSD, testé en 6.2.

Dans ce document, les extraits de fichiers de configuration seront ceux de Debian.

 

Prérequis

Il faudra biensûr avoir un serveur LDAP fonctionnel. Pour cela, vous pouvez suivre le document suivant: Configuration SLAPD standard.

Je considère aussi que vous avez suivi le document sur la configuration de Postfix: Configuration de Postfix en backend LDAP. Cela est nécessaire car les informations que nous avons inséré pour Postfix dans l’annuaire LDAP serviront aussi pour Courier.

Sur Debian, il faudra installer les paquets: courier-imap-ssl. Alors que sur FreeBSD, nous devrons installer le port courier-imap avec au moins les options OPENSSL & AUTH_LDAP au moment de la configuration.

Comme cela était expliqué dans le document sur la configuration de Postfix, une partie de la suite Courier a déjà été installé pour avoir le schema LDAP.

 

La configuration de Courier

La configuration de la suite Courrier va se faire en plusieurs parties. Il y a aura d’abord tout ce qui est authentification, puis ce qui touche au daemon IMAP.

 

Le fichier authdaemonrc

Ce fichier va nous permettre de spécifier au daemon qui gère l’authentification quel module utiliser. Dans notre cas, nous utiliserons uniquement le LDAP.

Voici un extrait des paramètres importants du fichier de configuration:

[...]
# La liste des modules que l'on souhaite utiliser pour les authentifications
# LDAP uniquement dans notre cas
authmodulelist="authldap"
# Le nombre de daemon pour l'authentification
# A augmenter selon le nombre d'utilisateur simultané
daemons=10
# Le niveau de debug pour les authentifications
# 1: debug normal
# 2: debug avec les mots de passe en clair !
DEBUG_LOGIN=0
[...]

 

Le fichier authldaprc

Ce fichier va nous permettre de spécifier au daemon d’authentification comment accéder à notre annuaire LDAP.

Voici un extrait des paramètres importants du fichier de configuration:

[...]
# L'URL d'accès à l'annauire LDAP
LDAP_URI                ldap://localhost
# Le protocole à utiliser
LDAP_PROTOCOL_VERSION   3 
# La branche de l'annuaire qui contient les informations relatives au mail
LDAP_BASEDN             ou=mail,o=free-4ever,dc=net
# Le login d'un compte qui a le droit de faire des modifications dans cette branche
# Nécessaire car on peut changer le mot de passe par le protocole IMAP
LDAP_BINDDN             cn=mailadmin,ou=mail,o=free-4ever,dc=net
# Le mot de passe associé au BINDDN en clair
LDAP_BINDPW             toto
# Le daemon se reconnecte sur le LDAP avec le user/password de l'utilisateur
# plutôt que de uniquement le vérifier en le parcourant avec le BINDDN
LDAP_AUTHBIND           1
# L'attribut que l'on recherche
LDAP_MAIL               mail
# Le filtre que l'on applique
# On recherche des objets de type CourierMailAccount comme avec Postfix
LDAP_FILTER           (objectClass=CourierMailAccount)
# On spécifie un UID et un GID global
# C'est à lui qu'appartienne les boites mail de nos utilisateurs virtuels
# C'est vmail comme avec Postfix
LDAP_GLOB_UID           vmail
LDAP_GLOB_GID           vmail
# L'attribut LDAP que l'on doit chercher pour trouver le homedir de l'utilisateur
LDAP_HOMEDIR            mailbox
# Le répertoire physique dans lequel se trouve les homedirs
# C'est le homedir de notre utilisateur vmail
LDAP_MAILROOT        /srv/vmail
# On ne spécifie pas le paramètre LDAP_MAILDIR
# Le Maildir se trouve dans le homedir de l'utilisateur
# Courier construit le chemin seul.
# Le nom complet de l'utilisateur
LDAP_FULLNAME           cn
# Le champ LDAP où se trouve le mot de passe crypté
LDAP_CRYPTPW            userPassword
# Pas de TLS
LDAP_TLS                0
[...]

 

Le fichier imapd

Ce fichier va permettre de spécifier la configuration du daemon IMAP de Courier. Il est nécessaire d’ajuster ses paramètres car IMAP SSL s’appuie aussi sur ce fichier.

Voici un extrait des paramètres importants du fichier de configuration:

[...]
# L'adresse sur laquelle on écoute
# Uniquement la loopback. je ne veux pas de connexion non sécurisé depuis l'extérieur
# Par contre, cela me sert pour le webmail qui se trouve en local
ADDRESS=127.0.0.1
# Le port d'écoute
PORT=143
# Le nombre maximum de daemon
MAXDAEMONS=50
# Le nombre maximal de connexions pour une seule adresse
# Attention au accès depuis un réseau natté !
MAXPERIP=50
# Pour que les clients puissent demander les nouveaux messages dans tous les répertoires
# et pas seulement dans la inbox
# Nécessaire quand on a des filtres côté serveur
IMAP_CHECK_ALL_FOLDERS=1
# Le nom du répertoire qui est la poubelle:
IMAP_TRASHFOLDERNAME=Trash
# Vidage automatique de la poubelle tous les 7 jours.
# indépendamment du client mail
IMAP_EMPTYTRASH=Trash:7
# Les messages supprimés vont dans la poubelle
# et ne sont donc pas supprimés directement
IMAP_MOVE_EXPUNGE_TO_TRASH=1
# Pour utiliser le daemon IMAP sans SSL
IMAPDSTART=YES
# Le nom du répertoire Maildir
MAILDIRPATH=Maildir
[...]

Le fichier imapd-ssl

Ce fichier va permettre de spécifier la configuration du daemon IMAP SSL de Courier.

Voici un extrait des paramètres importants du fichier de configuration:

[...]
# L'adresse sur laquelle on écoute
# On écoute sur toutes les interfaces
SSLADDRESS=0
# Le port d'écoute
SSLPORT=993
# Pour utiliser le daemon IMAP avec SSL
IMAPDSSLSTART=YES
# On utilise pas le TLS
IMAP_TLS_REQUIRED=0
# Le protocole SSL que l'on utilise
TLS_PROTOCOL=SSL3
# Le fichier contenant le certificat
TLS_CERTFILE=/etc/courier/imapd.pem
# On ne vérifie pas le certificat du client
TLS_VERIFYPEER=NONE
# Le nom du répertoire Maildir
MAILDIRPATH=Maildir
[...]

Le fichier imapd.pem doit contenir le certificat et la clef à la suite. Pour générer un certificat et sa clef signé par soi-même, vous pouvez suivre les documents suivants: Création de l’autorité de certification et Création d’un certificat avec le CA.

 

Application des modifications

Il ne reste plus qu’à redémarrer les différents daemons. On commence par le daemon pour les authentifications:

/etc/init.d/courier-authdaemon restart

Puis le daemon IMAP si on l’utilise:

/etc/init.d/courier-imap restart

Et enfin le daemon IMAP SSL:

/etc/init.d/courier-imap-ssl restart

 

Mot de la fin

Notre serveur IMAPs est maintenant configuré. Il n’y a aucune opération à faire quand on ajoute un nouvel utilisateur dans l’annuaire LDAP. Les informations que ajoute pour Postfix sont suffisantes dans le mesure où l’on crée de suite le champ userPassword qui lui n’est pas nécessaire pour Postfix.

 

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s