Table des matières

Gestion du serveur IMAP dovecot

Dovecot permet de récupérer les informations des utilisateurs depuis un annuaire LDAP. Dans cet exemple, on utilise pas de boite virtuelle, les mails sont remis dans le répertoire personnel de chaque utilisateurs. Les utilisateurs doivent donc avoir un compte UNIX valide, en plus des extensions de mails (à activer dans l'interface de Fusion Directory).

L'agent de remise local de dovecot (LDA) sera utilisé, il pourra donc appliquer des filtres sieve au moment de la remise. Les quotas peuvent être appliqués depuis l'interface de Fusion Directory, dovecot les prendra en compte

Plugins nécessaires

Les plugins systems et mail sont nécessaires pour cette partie, voir cette page pour la configuration d'OpenLDAP

Installation des composants

yum install dovecot dovecot-pigeonhole

Configuration de dovecot

auth_username_format = %n
auth_verbose = yes
lda_mailbox_autocreate = yes
lda_mailbox_autosubscribe = yes
mail_plugins = quota quota fts fts_squat
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date
passdb {
  args = /etc/dovecot/conf.d/dovecot-ldap.conf.ext
  driver = ldap
}
plugin {
  quota = maildir:User quota
  quota2 = fs:Disk quota
  sieve = ~/.dovecot.sieve
  sieve_dir = ~/sieve
}
protocols = imap lmtp
service lmtp {
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0600
    user = postfix
  }
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
}
shutdown_clients = no
ssl_cert = </etc/dovecot/ssl/mail.firewall-services.com.crt
ssl_key = </etc/dovecot/ssl/mail.firewall-services.com.key
login_trusted_networks = 10.10.1.10/32
userdb {
  driver = prefetch
}
userdb {
  args = /etc/dovecot/conf.d/dovecot-ldap.conf.ext
  driver = ldap
}
protocol lmtp {
  mail_plugins = quota quota fts fts_squat quota sieve
  postmaster_address = postmaster@firewall-services.com
}
protocol lda {
  mail_plugins = quota quota fts fts_squat sieve
}
protocol imap {
  mail_plugins = quota quota fts fts_squat imap_quota
}
Dans cet exemple, la ligne
login_trusted_networks = 10.10.1.10/32

permet de faire tourner un proxy IMAP sur la machine 10.10.1.10. Cette directive permet de:

  • Ne pas imposer de sécurité (SSL/TLS) pour l'authentification depuis cette IP
  • De loguer l'IP réelle du client au lieu de celle du proxy

Dans la plupart des cas, vous pouvez commenter cette ligne, si vous n'utilisez pas de proxy IMAP

uris = ldap://ldap.firewall-services.com
dn = cn=mail,ou=DSA,dc=firewall-services,dc=com
dnpass = dsa_p@ssw0rd
tls = yes
tls_ca_cert_file = /etc/pki/tls/certs/ca-firewall-services.com.pem
tls_require_cert = hard
ldap_version = 3
auth_bind = yes
base = dc=firewall-services,dc=com
user_attrs = homeDirectory=home,uidNumber=uid,gidNumber=gid,gosaMailQuota=quota_rule=*:bytes=%$M
user_filter = (&(objectClass=gosaMailAccount)(objectClass=posixAccount)(uid=%u))
pass_filter = (&(objectClass=gosaMailAccount)(objectClass=posixAccount)(uid=%u))
pass_attrs = uid=user,userPassword=password,homeDirectory=userdb_home,uidNumber=userdb_uid,gidNumber=userdb_gid,gosaMailQuota=userdb_quota_rule=*:bytes=%$M
iterate_attrs = uid=user
iterate_filter = (&(objectClass=posixAccount)(objectClass=gosaMailAccount))
Avec cette configuration, le quota de la boite mail saisi dans l'interface de FusionDirectory est exprimé en Mo

Il ne reste plus qu'à démarrer le service dovecot. Dans cette configuration, les mails seront remis dans des boites au format Maildir dans le répertoire personnel de chaque utilisateur (~/Maildir)