<h2>But de ce document</h2>
<p class="spip">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.</p>

<h2>Installation des serveurs IMAP et POP Dovecot</h2>
<p class="spip"><code class='spip_code' dir='ltr'># aptitude install dovecot-imapd dovecot-pop3d </code></p>

<h3>Configuration dovecot-ldap.conf</h3>
<p class="spip">Voici les paramètres à configurer dans le fichier /etc/dovecot/dovecot-ldap.conf :</p>

<table class="spip">
<tbody>
<tr class="row_even"><td>hosts</td><td>NomDuServeurLDAP</td></tr>
<tr class="row_odd"><td>auth_bind</td><td>yes</td></tr>
<tr class="row_even"><td>ldap_version</td><td>3</td></tr>
<tr class="row_odd"><td>base</td><td>dc=votredomaine,c=org</td></tr>
<tr class="row_even"><td>user_filter</td><td>(&(objectclass=posixAccount)(uid=%u))</td></tr>
<tr class="row_odd"><td>pass_filter</td><td>(&(objectclass=posixAccount)(uid=%u))</td></tr>
<tr class="row_even"><td>default_pass_schema</td><td>SSHA</td></tr>
<tr class="row_odd"><td>user_global_gid</td><td>mail</td></tr>
</tbody>
</table>
<h3>Configuration dovecot.conf</h3>
<p class="spip">Modifier le fichier /etc/dovecot/dovecot.conf :</p>

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

<div style='text-align: left;' class='spip_code' dir='ltr'><code>  socket listen {<br />
            master { <br />
                path = /var/run/dovecot/auth-master <br />
                mode = 0660 <br />
                group = mail <br />
            } <br />
        } </code></div>
<p class="spip">Et on redémarre dovecot 2 fois :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># /etc/init.d/dovecot restart<br />
Restarting mail server: dovecotWarning: Fixing permissions of /var/run/dovecot to be world-readable<br />
Warning: Corrected permissions for login directory /var/run/dovecot/login<br />
.<br />
<br />
# /etc/init.d/dovecot restart<br />
Restarting mail server: dovecot.</code></div>
<p class="spip"><strong class="spip">Remarque</strong> : 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.</p>

<h2>Installation du serveur SMTP Postfix</h2>
<p class="spip"><code class='spip_code' dir='ltr'># aptitude install postfix-ldap</code></p>

<p class="spip">Voici les quelques lignes importantes du fichiers « <strong class="spip">/etc/postfix/main.cf</strong> » :</p>

<p class="spip">Ajouter sur cette ligne le domaine géré par Postfix</p>

<p class="spip"><code class='spip_code' dir='ltr'>mydestination = localhost, votredomaine.org</code></p>

<p class="spip">Indiquer sur cette ligne les réseaux autorisés à utiliser le serveur SMTP :</p>

<p class="spip"><code class='spip_code' dir='ltr'>mynetworks = 10.0.0.0/8, 127.0.0.0/8, 192.168.0.0/24</code></p>

<p class="spip">Voici les paramètres à ajouter pour l’authentification avec le LDAP dans le fichier « /etc/postfix/main.cf »</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>virtual_alias_maps    = ldap:/etc/postfix/ldap-account.cf<br />
virtual_mailbox_maps  = ldap:/etc/postfix/ldap-account.cf</code></div>
<p class="spip">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 :</p>

<p class="spip"><code class='spip_code' dir='ltr'>mailbox_command = procmail -a "$EXTENSION"</code></p>

<h3>Configuration de Procmail pour enregistrer les mails au format Maildir</h3>
<p class="spip">Création du fichier de configuration de Procmail :</p>

<p class="spip"><code class='spip_code' dir='ltr'># vim /etc/procmailrc</code></p>

<p class="spip">Voici le contenu du fichier de configuration de Procmail :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>VERBOSE=no<br />
SHELL=/bin/bash<br />
PATH=/bin:/usr/bin:/usr/local/bin<br />
MAILDIR=/var/mail/$LOGNAME/<br />
ORGMAIL=$MAILDIR/emergency-inbox<br />
DEFAULT=$MAILDIR<br />
LOGFILE=$MAILDIR/.procmail.log</code></div>
<h3>Configuration du fichier /etc/postfix/ldap-account.cf</h3>
<p class="spip">Voici le contenu du fichier  « <strong class="spip">/etc/postfix/ldap-account.cf</strong> » à adapter suivant la configuration de votre LDAP :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>server_host=VotreServeurLDAP<br />
server_post=389<br />
search_base=ou=Users,dc=domaine,c=org<br />
query_filter= (&(objectclass=posixAccount)(mail=%s))<br />
bind = yes<br />
bind_dn = cn=admin,dc=domaine,c=org<br />
bind_pw = ********<br />
result_attribute = uid<br />
version = 3</code></div>
<p class="spip"><strong class="spip">Remarque</strong> : Indiquer le mot de passe en claire à la place des ****</p>

<p class="spip">Et on redémarre postfix</p>

<p class="spip"><code class='spip_code' dir='ltr'># /etc/init.d/postfix restart</code></p>

<h2>Configuration de libnss-ldap</h2>
<p class="spip"><code class='spip_code' dir='ltr'>#  aptitude install libnss-ldap</code>
<br /></p>
<li> LDAP server Uniform Resource Identifier :  ldap ://VotreServeurLDAP
<br /><li> Distinguished name of the search base : dc=votredomaine,c=org
<br /><li> LDAP account for root : cn=admin,o=votredomaine,c=org
<p class="spip">Il faut ajouter « ldap » sur les lignes ci-dessous du fichier « <strong class="spip">/etc/nsswitch.conf</strong> » :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>passwd:    compat  ldap<br />
group:     compat  ldap<br />
shadow:    compat  ldap </code></div>
<p class="spip">Cette commande permet de vérifier que les utilisateurs du LDAP sont reconnus par le serveur de Mail :</p>

<p class="spip"><code class='spip_code' dir='ltr'># getent  passwd</code></p>

<h2>Création des Maildir</h2>
<p class="spip">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 :</p>

<p class="spip"><code class='spip_code' dir='ltr'># chmod 777 /var/mail/</code></p>

<p class="spip">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 :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># maildirmake.dovecot /var/mail/tony<br />
# chown -R tony: /var/mail/tony </code></div>
<p class="spip"><strong class="spip">Attention</strong> : 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.</p>

<p class="spip">Pour régler ce problème :</p>

<p class="spip"><code class='spip_code' dir='ltr'># rm /var/mail/[UTILISATEUR_VEROLEE]</code></p>

<p class="spip">Puis connecter cet utilisateur pour que tout rentre dans l’ordre.</p>

<h2>Configuration Thunderbird (côté client)</h2>
<p class="spip">Pour éviter la validation du certificat à chaque connexion, il faut installer l’extension « Remember Mismatched Domains » :
<br /></p>
<li> <a href="https://addons.mozilla.org/fr/thunderbird/addon/2131" class="spip_out">https://addons.mozilla.org/fr/thunderbird/addon/2131</a>
<p class="spip">Puis à la création du compte il faut cocher connexion type SSL.</p>

<h2>Version de ce document</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Description</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.1</td><td>30/05/2008</td><td>Création par Nicolas </td></tr>
<tr class="row_odd"><td>0.2</td><td>06/08/2008</td><td>Test, validation et mise en ligne par Tony</td></tr>
</tbody>
</table>