Installation d'un serveur mail complet sous debian : Dovecot (4/5)

Posted on lun. 05 janvier 2015 in tuto

Cet article est le cinquième d'une série sur l'installation d'un serveur mail sur debian wheezy. Accéder aux autres articles :


Maintenant qu'on arrive à faire circuler les mails sur notre serveur, et qu'on les arrête quand ils sont pour nous, il faut pouvoir les récupérer pour les mettre dans les dossiers. C'est le rôle de dovecot.

La configuration de dovecot est éclatée dans plusieurs fichiers, qui se trouvent dans /etc/dovecot/conf.d/.

Configuration auth :

Le premier fichier à modifier est 10-auth.conf. Il faut modifier les mécanismes de connexions. Votre ligne doit ressembler à :

    auth_mechanisms = plain login

Par défaut, dovecot utilise les utilisateurs réels du système. Nous, nous utilisons des utilisateurs en base de données. Il faut donc modifier les includes à la fin du fichier :

1
2
3
4
5
6
!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 SQL :

Il faut ensuite modifier le fichier auth-sql.conf.ext. Commentez les sections userdb existantes et saisissez celles-ci :

    userdb {
        driver = static
        args = uid=vmail gid=vmail home=/var/vmail/%d/%n
    }

Configuration mail :

Dans le fichier 10-mail.conf, modifiez le paramètre mail_location comme ceci :

    mail_location = maildir:/var/vmail/%d/%n/Maildir

Ainsi, les mails reçus seront placés dans le dossier /var/vmail/[domaine]/[utilisateur]/Maildir.

Vérifiez que le separator a bien pour valeur /, et non ..

Configuration master :

Dans le fichier 10-master.conf, dans le bloc service auth, spécifiez le smtp-auth de postfix :

# Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
}

Configuration SSL :

Pour utiliser les certificats SSL créés en partie 1, modifiez le fichier 10-ssl.conf :

ssl_cert = </etc/ssl/certs/mailserver.pem
ssl_key = </etc/ssl/private/mailserver.pem

Configuration LDA :

Il faut activer le plugin sieve pour placer les fichier dans les dossiers. Pour cela, dans le fichier 15-lda.conf, trouvez le bloc protocol lda (ou créez le si besoin) :

protocol lda {
    # Space separated list of plugins to load (default is global mail_plugins).
    mail_plugins = $mail_plugins sieve
}

Connexion SQL :

Il faut indiquer a Dovecot comment se connecter à la base de données SQL. Pour cela, modifiez le ficher /etc/dovecot/dovecot-sql.conf.ext. Le fichier est plutot bien documenté. Trouvez (ou ajoutez à la fin) ces lignes :

    driver = mysql
    connect = host=127.0.0.1 dbname=postfixadmin user=mailuser password=azerty
    password_query = SELECT username,domain,password FROM mailbox WHERE username='%u';

(Pensez à modifier le mot de passe)

Ici aussi, on change les droits de ce fichier vu qu'il contient un mot de passe :

# chown root:root /etc/dovecot/dovecot-sql.conf.ext
# chmod go= /etc/dovecot/dovecot-sql.conf.ext

Finalisation :

Modifiez les droits du fichier de configuration, pour que dovecot soit lancé en tant qu'utilisateur vmail :

# chgrp vmail /etc/dovecot/dovecot.conf
# chmod g+r /etc/dovecot/dovecot.conf

Redémarrez dovecot :

    # service dovecot restart

Comme à chaque redémarrage de service, vérifiez les logs (# tail /var/log/mail.log). Ils doivent finir par la ligne

    ... dovecot: master: Dovecot v2.1.7 starting up (core dumps disabled)

Connecter Postfix à Dovecot :

Maintenant, on a d'un coté Postfix qui sait quand un mail qui passe est pour lui, et Dovecot qui sait où mettre les mails qu'on lui donne. Il faut donc que Postfix passe les mails a Dovecot qui les range.

Pour cela, ajoutez les lignes suivantes à la fin du fichier /etc/postfix/master.cf :

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/dovecot-lda -f ${sender} -d ${recipient}

(Attention, la deuxième ligne est indentée par deux espaces)

Et redémarrez postfix :

    service postfix restart

La fin du fichier /var/log/mail.log :

    postfix/master[…]: daemon started -- version 2.9.6, configuration /etc/postfix

Et modifiez la configuration de postfix pour qu'il utilise ce qu'on vient de lui donner :

    postconf -e virtual_transport=dovecot
    postconf -e dovecot_destination_recipient_limit=1