Skip to Content

Installation d’un serveur de mail avec Postfix et Dovecot

But de ce document

Ce document me sert de mémo pour l’installation d’un serveur de mail avec Postfix et Dovecot connecté sur un serveur LDAP. Cette installation a été réalisée sur Debian Etch.

Installation des serveurs IMAP et POP Dovecot

# aptitude install dovecot-imapd dovecot-pop3d

Configuration dovecot-ldap.conf

Voici les paramètres à configurer dans le fichier /etc/dovecot/dovecot-ldap.conf :

hosts NomDuServeurLDAP
auth_bind yes
ldap_version 3
base dc=votredomaine,c=org
user_filter (&(objectclass=posixAccount)(uid=%u))
pass_filter (&(objectclass=posixAccount)(uid=%u))
default_pass_schema SSHA
user_global_gid mail

Configuration dovecot.conf

Modifier le fichier /etc/dovecot/dovecot.conf :

Protocols imaps pop3s
Listen *
disable_plaintext_auth yes
ssl_disable no
ssl_cert_file /etc/ssl/certs/dovecot.pem
ssl_key_file /etc/ssl/private/dovecot.pem
mail_location maildir :/var/mail/%u
login_greeting_capability yes
imap_client_workarounds tb-extra-mailbox-sep
Passdb pam Il faut commenter cette région
Passdb ldap Il faut décommenter cette région ET ajouter args = /etc/dovecot/dovecot-ldap.conf
Userdb pam Pareil que passdb pam
Userdb ldap Pareil que passdb ldap
Socket listen Il faut décommenter cette région et changer ces paramètres :décommenter pathdécommenter mode (et mettre 660)décommenter group

Ce qui donne :

 socket listen {
           master {
               path = /var/run/dovecot/auth-master
               mode = 0660
               group = mail
           }
       }

Et on redémarre dovecot 2 fois :

# /etc/init.d/dovecot restart
Restarting mail server: dovecotWarning: Fixing permissions of /var/run/dovecot to be world-readable
Warning: Corrected permissions for login directory /var/run/dovecot/login
.

# /etc/init.d/dovecot restart
Restarting mail server: dovecot.

Remarque : Le premier démarrage va fixer les droits de « /var/run/dovecot » et générer le message d’erreur ci-dessus et le deuxième démarrage ne doit entraîner aucune erreur.

Installation du serveur SMTP Postfix

# aptitude install postfix-ldap

Voici les quelques lignes importantes du fichiers « /etc/postfix/main.cf » :

Ajouter sur cette ligne le domaine géré par Postfix

mydestination = localhost, votredomaine.org

Indiquer sur cette ligne les réseaux autorisés à utiliser le serveur SMTP :

mynetworks = 10.0.0.0/8, 127.0.0.0/8, 192.168.0.0/24

Voici les paramètres à ajouter pour l’authentification avec le LDAP dans le fichier « /etc/postfix/main.cf »

virtual_alias_maps    = ldap:/etc/postfix/ldap-account.cf
virtual_mailbox_maps  = ldap:/etc/postfix/ldap-account.cf

Cette ligne indique que Postfix doit utiliser Procmail pour délivrer les mails ce qui permet d’avoir des mails au format Maildir dans /var/mail :

mailbox_command = procmail -a "$EXTENSION"

Configuration de Procmail pour enregistrer les mails au format Maildir

Création du fichier de configuration de Procmail :

# vim /etc/procmailrc

Voici le contenu du fichier de configuration de Procmail :

VERBOSE=no
SHELL=/bin/bash
PATH=/bin:/usr/bin:/usr/local/bin
MAILDIR=/var/mail/$LOGNAME/
ORGMAIL=$MAILDIR/emergency-inbox
DEFAULT=$MAILDIR
LOGFILE=$MAILDIR/.procmail.log

Configuration du fichier /etc/postfix/ldap-account.cf

Voici le contenu du fichier « /etc/postfix/ldap-account.cf » à adapter suivant la configuration de votre LDAP :

server_host=VotreServeurLDAP
server_post=389
search_base=ou=Users,dc=domaine,c=org
query_filter= (&(objectclass=posixAccount)(mail=%s))
bind = yes
bind_dn = cn=admin,dc=domaine,c=org
bind_pw = ********
result_attribute = uid
version = 3

Remarque : Indiquer le mot de passe en claire à la place des ****

Et on redémarre postfix

# /etc/init.d/postfix restart

Configuration de libnss-ldap

#  aptitude install libnss-ldap

  •  LDAP server Uniform Resource Identifier : ldap ://VotreServeurLDAP
  •  Distinguished name of the search base : dc=votredomaine,c=org
  •  LDAP account for root : cn=admin,o=votredomaine,c=org

    Il faut ajouter « ldap » sur les lignes ci-dessous du fichier « /etc/nsswitch.conf » :

    passwd:    compat  ldap
    group:     compat  ldap
    shadow:    compat  ldap

    Cette commande permet de vérifier que les utilisateurs du LDAP sont reconnus par le serveur de Mail :

    # getent  passwd

    Création des Maildir

    Pour que la création automatique des dossiers au format maildir fonctionne pour tous les utilisateurs, il faut modifier les droits du dossier principal contenant tous les mails :

    # chmod 777 /var/mail/

    Lors de la première connexion au serveur avec Thunderbird, le dossier au format Maildir sera créé automatiquement. Cependant il est possible de créer ce dossier manuellement :

    # maildirmake.dovecot /var/mail/tony
    # chown -R tony: /var/mail/tony

    Attention : Il faut que tout les utilisateurs se soient connectés au moins une fois pour créer les maildir dans « /var/mail/%u ». Sans cette manipulation, Postfix risque de créer un fichier au format mbox au lieu de maildir, et plus rien ne fonctionnera avec ce compte.

    Pour régler ce problème :

    # rm /var/mail/[UTILISATEUR_VEROLEE]

    Puis connecter cet utilisateur pour que tout rentre dans l’ordre.

    Configuration Thunderbird (côté client)

    Pour éviter la validation du certificat à chaque connexion, il faut installer l’extension « Remember Mismatched Domains » :

  •  https://addons.mozilla.org/fr/thunderbird/addon/2131

    Puis à la création du compte il faut cocher connexion type SSL.

    Version de ce document

    Version Date Description
    0.1 30/05/2008 Création par Nicolas
    0.2 06/08/2008 Test, validation et mise en ligne par Tony
  • Commentaires

    Installation d’un serveur de mail avec Postfix et Dovecot

    Le contenu du fichier qui suit ta phrase :
    "Voici le contenu du fichier « /etc/postfix/ldap-account.cf » à adapter suivant la configuration de votre LDAP" a une mauvaise mise à la ligne. Il n’a pas utilisé "alt+entrée".
    C’est du détail...

    Installation d’un serveur de mail avec Postfix et Dovecot

    Les boîtes appartiennent a root dans mon cas.

    Installation d’un serveur de mail avec Postfix et Dovecot

    Bein je ne sais pas trop car c’est mon stagiaire qui à fait l’installation et j’ai simplement vérifié que ça fonctionnait et je n’ai pas essayé sans configurer libnss-ldap

    D’un autre coté, je ne vois pas trop comment le système pourrait créer les dossiers au format Maildir s’il ne connait pas le nom des utilisateurs du LDAP.

    Il faut bien que la commande getend passwd retourne les utilisateurs du ldap

    Installation d’un serveur de mail avec Postfix et Dovecot

    pourquoi tu configure libnss-ldap ?

    Moi j’utilise aussi dovecot en ldap mais pas besoin de libnss

    demande

    salut , vous pouvez m'envoyer la configuration de postfix , car je n'arrive pas à reusir de le configurer avec ldap et merci bcp