Préparation et configuration de dovecot


Dans ce chapitre nous allons voir comment installer dovecot, et le configurer pour qu'il aille lire les données de configuration des utilisateurs virtuels dans une base postgreSQL. Dovecot est un serveur POP3/IMAP écrit avec comme souci premier la sécurité. Il est également très souple à configurer.
  1. Installation de dovecot

    Si votre distribution propose dovecot, installez-le avec votre gestionnaire de paquetages. Vérifiez s'il supporte postgreSQL. Je l'ai personnellement recompilé de cette manière:

    ./configure --with-pop3d --with-pgsql --with-gnu-ld
    make
    su
    make install
    
    Les fichiers de configuration sont situés sous /usr/local/etc/ et s'appellent dovecot*.conf

  2. Configuration de dovecot

    Le fichier principal est très bien commenté. Attention, dans mon cas (recompilation) la plupart des chemins de recherche des binaires contenus dans le fichier sont faux. Par défaut, le fichier de configuration va chercher les binaires sous /usr/libexec. Dans mon cas, ils sont sous /usr/local/libexec. Assurez vous que les chemins correspondent. Je vais m'intéresser dans ce chapitre uniquement à l'aspect POP et IMAP concernant postgreSQL.
    Fichier /usr/local/etc/dovecot.conf:

     (...)
    # User database specifies where mails are located and what user/group IDs
    # own them. 
    auth_userdb = pgsql /usr/local/etc/dovecot-pgsql-user.conf
    
    # Password database specifies only the passwords for users.
    # http://wiki.dovecot.org/Authentication
    auth_passdb = pgsql /usr/local/etc/dovecot-pgsql-pass.conf
     (...)
    
    Si vous modifiez un de ces deux fichiers, il faut redémarrer dovecot pour qu'il le prenne en compte. Par défaut, il ne va pas les relire.
    ---FIXME---: la ligne connect= ne semble pas fonctionner (???) par contre, par la socket, cela passe, avec connect = dbname=vmail user=lecteur. Curieux. ---FIXME---

    Lancez dovecot. Ajustez le niveau de log jusqu'à obtenir un niveau de verbosité suffisant. Il est possible d'utiliser /dev/stderr comme sortie de logs. Voir le fichier de configuration de dovecot et sa documentation associée.

  3. Tests de la configuration

    Dans le chapitre précédent, nous avons envoyé un mail à l'utilisateur kevin@boum.org. Le mot de passe associé dans la base était le crypt de 'secret'. Vérifions le fonctionnement:

    kevin@zipslack:~$ telnet localhost 110
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    +OK dovecot ready.
    user kevin@boum.org
    +OK
    pass secret
    +OK Logged in.
    list
    +OK 1 messages:
    1 428
    .
    quit
    +OK Logging out.
    Connection closed by foreign host.
    
    Dovecot nous autorise bien a venir chercher le courrier

    Envoyez maintenant un mail à l'utilisateur boum@boum.org, par exemple
    echo hello | mail -s "test" boum@boum.org
    Puis testez de nouveau dovecot avec l'utilisateur boum@boum.org et le mot de passe 'boum'.
    kevin@zipslack:~$ telnet localhost 110
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    +OK dovecot ready.
    user boum@boum.org
    +OK
    pass boum
    +OK Logged in.
    list
    +OK 1 messages:
    1 507
    .
    quit
    +OK Logging out.
    Connection closed by foreign host.
    kevin@zipslack:~$
    
    dovecot a lu dans la base de données le mot de passe. Il n'a pas reconnu de cryptage (le pw ne commence pas par $1) et retombe en authentification par défaut, c'est à dire PLAINTEXT.
  4. Remarques


Dans tous ces tests, j'ai souvent utilisé des valeurs par défaut. Faites attention en adaptant à votre configuration.
Les fichiers dovecot-pgsql* contenant des mots de passe, il est conseillé de ne pas les laisser en lecture à tout le monde.
Selon votre distribution, arrangez vous pour lancer à chaque démarrage le serveur dovecot.
Chapitre précédent
Retour à l'index
Chapitre suivant