Modifications entre les versions 5 et 6
Version 5 à la date du 2010-11-12 12:28:58
Taille: 1807
Éditeur: ShafeekSumser
Commentaire:
Version 6 à la date du 2012-11-20 00:30:26
Taille: 6120
Commentaire: révision complète… manque encore les parties SQL et LDAP !
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
Dovecot est un serveur IMAP (Internet Message Access Protocol) et POP3 (Post Office Protocol, ou Protocole de Bureau de Poste) Il est rapide, simple à installer, n'exige aucune administration spéciale et il utilise très peu de mémoire.

A l’AUF, nos serveurs utilisent Dovecot avec IMAP.
<<TableOfContents()>>
Dovecot est le service de boîte aux lettres recommandé à l'AuF.

Il supporte IMAP et POP3, ainsi que !ManageSieve et SSL/TLS.
Ligne 7: Ligne 8:
"Que fait le serveur IMAP ?"

* Sur un
serveur IMAP, les messages restent toujours sur le serveur de courrier : seuls les en-têtes sont téléchargés en local, puis les messages eux-mêmes.

* Il gère plusieurs accès simultanés : possibilité de récupérer son courrier à partir de plusieurs postes.

* comme les messages restent sur le serveur, leur gestion peut se faire également sur le serveur : possibilité de tri, de classement, à partir du lieu de travail ou de chez soi, etc.

* assure une mise à jour depuis la dernière connexion
 * Sur un serveur IMAP, les messages restent toujours sur le serveur de courrier : seuls les en-têtes sont téléchargés en local, puis les composantes des messages eux-mêmes (corps et attachements).
 * Il gère plusieurs accès simultanés : possibilité de récupérer son courrier à partir de plusieurs postes.
 * Comme les messages restent sur le serveur, leur gestion peut se faire également sur le serveur : possibilité de tri, de classement, à partir du lieu de travail ou de chez soi, etc.
 * Il permet la synchronisation des changements effectués hors-ligne, entre chaque connexions.
Ligne 19: Ligne 14:
Pour installer Dovecot: {{{
# aptitude install dovecot-common dovecot-imapd
}}}


Pour installer Dovecot : {{{
# aptitude install dovecot-imapd
}}}
Ligne 27: Ligne 21:

Après une installation à partir des sources fournies par Debian, {{{$aptitude install dovecot-imapd }}}, le fichier de configuration peut se retrouver sur /etc/dovecot/dovecot.conf.

Deux chosses sont à changer.

* les protocoles à utiliser
Le paramètre {{{protocols}}} permet de spécifier les protocoles à utiliser pour Dovecot. A l’AUF nous l’utilisons pour les protocoles imap et imaps
{{{protocols = imap imaps}}}

* la localisation des mailbox
Par défaut, Dovecot détecte automatiquement l’endroit où se trouvent les mailbox mais il est conseillé de l’ajouter manuellement dans le paramètre
{{{mail_location = maildir :~/Maildir }}}

A suivre …

== Postfix et Dovecot ==
Pour utiliser le Dovecot LDA avec postfix + Sieve voir ceci PostfixDovecot
Quelques paramètres sont à ajuster dans `/etc/dovecot/dovecot.conf`.

=== Global ===

 * les protocoles à activer : {{{
protocols = imap imaps managesieve
}}}
 . puis : {{{
protocol imap {
  # connexion sans SSL autorisée uniquement pour les tests locaux
  listen = 127.0.0.1, [::1]
  ssl_listen = *, [::]
}
protocol managesieve {
  # http://lists.debian.org/debian-user/2009/12/msg00380.html
  # port 2000 attribué à Cisco SCCP depuis 2003 !
  listen = *:4190, [::]:4190
}
}}}

 * quelques paramètres de sécurité : {{{
disable_plaintext_auth = yes
}}}
 . et : {{{
shutdown_clients = yes
}}}

 * activation de SSL/TLS, rendu obligatoire : {{{
ssl = required
}}}
 . puis les certificats : {{{
# note : http://wiki.auf.org/wikiteki/PKI#Obtenir_un_certificat
ssl_cert_file = /etc/ssl/certs/mail.XX.auf.org-cert.pem
ssl_key_file = /etc/ssl/private/mail.XX.auf.org-key.pem
ssl_ca_file = /etc/ssl/certs/ca-certificates.crt
}}}
 . et en cas de besoin de débogage des connexions SSL/TLS : {{{
#verbose_ssl = yes
}}}

 * emplacement des boîtes aux lettres par défaut (peut être revu par utilisateur) : {{{
# home = /var/mail/%Ld/%Ln
mail_location = maildir:~/Maildir
}}}
 . et privilège d'accès au dossier des boîtes : {{{
mail_uid = vmail
mail_gid = vmail
}}}

 * pour la performance d'écriture dans les boîtes : {{{
fsync_disable = yes
}}}

 * pour une meilleure visibilité des processus en cours : {{{
verbose_proctitle = yes
}}}

 * utilisateurs autorisés, à supposer que 888 est l'UID de l'utilisateur `vmail` : {{{
first_valid_uid = 888
last_valid_uid = 888
}}}
 . et groupes autorisés, à supposer que 888 est le GID du groupe `vmail` : {{{
first_valid_gid = 888
last_valid_gid = 888
}}}

 * pour la performance des copies de messages : {{{
maildir_copy_with_hardlinks = yes
maildir_copy_preserve_filename = yes
maildir_very_dirty_syncs=yes
}}}

=== LDA ===

 * pour permettre à Dovecot de livrer les messages dans les boîtes (LDA), avec filtrage Sieve à l'arrivée : {{{
protocol lda {
  postmaster_address = postmaster@XX.auf.org
  hostname = mail.XX.auf.org
  mail_plugins = sieve
  mail_plugin_dir = /usr/lib/dovecot/modules/lda
  quota_full_tempfail = yes
  auth_socket_path = /var/run/dovecot/auth-master
}
}}}
 . (!) Voir aussi la partie ''service d'authentification pour Postfix'' dans la section ''Authentification''

=== Authentification ===

 * pour faciliter l'analyse des problèmes : {{{
auth_verbose = yes
#auth_debug = yes
auth_debug_passwords = no
}}}

 * configurer l'authentification par défaut : {{{
auth default {
  mechanisms = plain login
  …
  # commenter l'authentification via PAM si on ne l'utilise pas
  #passdb pam {
    …
  #}
  …
  # dé-commenter l'authentification via LDAP si on l'utilise
  passdb ldap {
    args = /etc/dovecot/dovecot-ldap.conf
  }
  …
  # commenter les infos utilisateurs via PAM si on ne l'utilise pas
  #userdb pam {
    …
  #}
  …
  # dé-commenter les infos utilisateurs via LDAP si on l'utilise
  userdb ldap {
    args = /etc/dovecot/dovecot-ldap.conf
  }
  …
  # dé-commenter les infos utilisateurs via SQL si on l'utilise
  userdb sql {
    args = /etc/dovecot/dovecot-sql.conf
  }
  …
  # service d'authentification pour Postfix
  socket listen {
    master {
      path = /var/run/dovecot/auth-master
      mode = 0600
      user = vmail # User running Dovecot LDA
      group = vmail
    }
    client {
      path = /var/spool/postfix/private/auth
      mode = 0660
      user = postfix
      group = postfix
    }
  }
}
}}}

=== Sieve ===

 * configurer l'extension Sieve : {{{
plugin {
  …
  # filtre en cours d'utilisation (lien vers un fichier dans le sieve_dir)
  sieve=~/dovecot.sieve
  # dossier de stockage des filtres Sieve
  sieve_dir=~/sieve
  # filtre imposé à toutes les boîtes
  sieve_before = /var/lib/dovecot/sieve/discard-spams.sieve
  …
}
}}}

 * créer le dossier `/var/lib/dovecot/sieve` avec ces commandes (sous `root`) : {{{
mkdir -p /var/lib/dovecot/sieve
chmod 0750 /var/lib/dovecot
chgrp vmail /var/lib/dovecot
}}}

 * créer le filtre imposé sur toutes les boîtes dans `/var/lib/dovecot/sieve/discard-spams.sieve` : {{{
require ["fileinto"];
if header :contains "X-Spam-Flag" "YES" {
  fileinto "Junk";
  stop;
}
#if header :comparator "i;ascii-casemap" :contains "Subject" "***SPAM***" {
# fileinto "Junk";
# stop;
#}
}}}
 . puis le compiler avec cette commande (sous `root`) : {{{
sievec /var/lib/dovecot/sieve/discard-spams.sieve
}}}

 * pour pouvoir utiliser la gestion des filtres Sieve par SOGo, créer un lien dans chaque boîte utilisateur avec cette commande (sous `root`) : {{{
cd /var/mail/ ; for bal in */*; do ln -s sieve/sogo.sieve $bal/dovecot.sieve ; done
}}}

=== Kerberos ===

/!\ Ne pas mettre en place sans maîtriser Kerberos !

 * configurer le nom et les clés : {{{
auth_gssapi_hostname = mail.XX.auf.org
auth_krb5_keytab = /etc/dovecot/krb5.keytab
}}}

 * ajouter le support GSSAPI aux mécanismes d'authentification : {{{
mechanisms = plain login gssapi
}}}

Dovecot est le service de boîte aux lettres recommandé à l'AuF.

Il supporte IMAP et POP3, ainsi que ManageSieve et SSL/TLS.

Principe

  • Sur un serveur IMAP, les messages restent toujours sur le serveur de courrier : seuls les en-têtes sont téléchargés en local, puis les composantes des messages eux-mêmes (corps et attachements).
  • Il gère plusieurs accès simultanés : possibilité de récupérer son courrier à partir de plusieurs postes.
  • Comme les messages restent sur le serveur, leur gestion peut se faire également sur le serveur : possibilité de tri, de classement, à partir du lieu de travail ou de chez soi, etc.
  • Il permet la synchronisation des changements effectués hors-ligne, entre chaque connexions.

Installation

Pour installer Dovecot :

# aptitude install dovecot-imapd

Configuration

Quelques paramètres sont à ajuster dans /etc/dovecot/dovecot.conf.

Global

  • les protocoles à activer :

    protocols = imap imaps managesieve
  • puis :

    protocol imap {
      # connexion sans SSL autorisée uniquement pour les tests locaux
      listen = 127.0.0.1, [::1]
      ssl_listen = *, [::]
    }
    protocol managesieve {
      # http://lists.debian.org/debian-user/2009/12/msg00380.html
      # port 2000 attribué à Cisco SCCP depuis 2003 !
      listen = *:4190, [::]:4190
    }
  • quelques paramètres de sécurité :

    disable_plaintext_auth = yes
  • et :

    shutdown_clients = yes
  • activation de SSL/TLS, rendu obligatoire :

    ssl = required
  • puis les certificats :

    # note : http://wiki.auf.org/wikiteki/PKI#Obtenir_un_certificat
    ssl_cert_file = /etc/ssl/certs/mail.XX.auf.org-cert.pem
    ssl_key_file = /etc/ssl/private/mail.XX.auf.org-key.pem
    ssl_ca_file = /etc/ssl/certs/ca-certificates.crt
  • et en cas de besoin de débogage des connexions SSL/TLS :

    #verbose_ssl = yes
  • emplacement des boîtes aux lettres par défaut (peut être revu par utilisateur) :

    # home = /var/mail/%Ld/%Ln
    mail_location = maildir:~/Maildir
  • et privilège d'accès au dossier des boîtes :

    mail_uid = vmail
    mail_gid = vmail
  • pour la performance d'écriture dans les boîtes :

    fsync_disable = yes
  • pour une meilleure visibilité des processus en cours :

    verbose_proctitle = yes
  • utilisateurs autorisés, à supposer que 888 est l'UID de l'utilisateur vmail :

    first_valid_uid = 888
    last_valid_uid = 888
  • et groupes autorisés, à supposer que 888 est le GID du groupe vmail :

    first_valid_gid = 888
    last_valid_gid = 888
  • pour la performance des copies de messages :

    maildir_copy_with_hardlinks = yes
    maildir_copy_preserve_filename = yes
    maildir_very_dirty_syncs=yes

LDA

  • pour permettre à Dovecot de livrer les messages dans les boîtes (LDA), avec filtrage Sieve à l'arrivée :

    protocol lda {
      postmaster_address = postmaster@XX.auf.org
      hostname = mail.XX.auf.org
      mail_plugins = sieve
      mail_plugin_dir = /usr/lib/dovecot/modules/lda
      quota_full_tempfail = yes
      auth_socket_path = /var/run/dovecot/auth-master
    }
  • (!) Voir aussi la partie service d'authentification pour Postfix dans la section Authentification

Authentification

  • pour faciliter l'analyse des problèmes :

    auth_verbose = yes
    #auth_debug = yes
    auth_debug_passwords = no
  • configurer l'authentification par défaut :

    auth default {
      mechanisms = plain login
      # commenter l'authentification via PAM si on ne l'utilise pas
      #passdb pam {
      #}
      # dé-commenter l'authentification via LDAP si on l'utilise
      passdb ldap {
        args = /etc/dovecot/dovecot-ldap.conf
      }
      # commenter les infos utilisateurs via PAM si on ne l'utilise pas
      #userdb pam {
      #}
      # dé-commenter les infos utilisateurs via LDAP si on l'utilise
      userdb ldap {
        args = /etc/dovecot/dovecot-ldap.conf
      }
      # dé-commenter les infos utilisateurs via SQL si on l'utilise
      userdb sql {
        args = /etc/dovecot/dovecot-sql.conf
      }
      # service d'authentification pour Postfix
      socket listen {
        master {
          path = /var/run/dovecot/auth-master
          mode = 0600
          user = vmail # User running Dovecot LDA
          group = vmail
        }
        client {
          path = /var/spool/postfix/private/auth
          mode = 0660
          user = postfix
          group = postfix
        }
      }
    }

Sieve

  • configurer l'extension Sieve :

    plugin {
      # filtre en cours d'utilisation (lien vers un fichier dans le sieve_dir)
      sieve=~/dovecot.sieve
      # dossier de stockage des filtres Sieve
      sieve_dir=~/sieve
      # filtre imposé à toutes les boîtes
      sieve_before = /var/lib/dovecot/sieve/discard-spams.sieve
    }
  • créer le dossier /var/lib/dovecot/sieve avec ces commandes (sous root) :

    mkdir -p /var/lib/dovecot/sieve
    chmod 0750 /var/lib/dovecot
    chgrp vmail /var/lib/dovecot
  • créer le filtre imposé sur toutes les boîtes dans /var/lib/dovecot/sieve/discard-spams.sieve :

    require ["fileinto"];
    if header :contains "X-Spam-Flag" "YES" {
      fileinto "Junk";
      stop;
    }
    #if header :comparator "i;ascii-casemap" :contains "Subject" "***SPAM***"  {
    #  fileinto "Junk";
    #  stop;
    #}
  • puis le compiler avec cette commande (sous root) :

    sievec /var/lib/dovecot/sieve/discard-spams.sieve
  • pour pouvoir utiliser la gestion des filtres Sieve par SOGo, créer un lien dans chaque boîte utilisateur avec cette commande (sous root) :

    cd /var/mail/ ; for bal in */*; do ln -s sieve/sogo.sieve $bal/dovecot.sieve ; done

Kerberos

/!\ Ne pas mettre en place sans maîtriser Kerberos !

  • configurer le nom et les clés :

    auth_gssapi_hostname = mail.XX.auf.org
    auth_krb5_keytab = /etc/dovecot/krb5.keytab
  • ajouter le support GSSAPI aux mécanismes d'authentification :

    mechanisms = plain login gssapi

Dovecot (dernière édition le 2014-06-02 19:20:04 par WillyManga)