Configuration de Dovecot - Debian 5.0 Lenny
Rédigé par Marc GUILLAUME | Aucun commentaireConfigurer le logiciel Dovecot chargé de la distribution du courrier aux utilisateurs.
Il est maintenant temps de configurer Dovecot qui sera chargé :
- de récupérer les mails envoyés par Postfix et les sauver sur le disque
- de vérifier les quotas (quel espace un utilisateur a-t-il le droit d'utiliser sur le disque)
- d'exécuter les règles de filtrage utilisateur "sieve" (qui sont utilisées pour distribuer les mails dans différents dossiers)
- de permettre aux utilisateurs de récupérer leur courrier en utilisant POP3 ou IMAP
Avant d'en venir à la configuration proprement dite, je vous suggère, pour des questions de sécurité, de créer un nouvel utilisateur système qui possèdera toutes les boites à lettre vrituelles. la commande shell suivante va créer un group "vmail" avec un GID (identifiant de groupe) 5000 et un utilisateur système "vmail" avec un UID (identifiant d'utilisateur) 5000. (Assurez-vous avant que cet UID et ce GID ne sont pas déjà utilisés sur votre système. Dans ce cas choisissez-en un autre, le nombre peut être un nombre inutilisé quelconque entre 1000 et 65000.)
$> groupadd -g 5000 vmail $> useradd -g vmail -u 5000 vmail -d /var/vmail -m
Les fichiers de configuration de Dovecot se trouvent sous /etc/dovecot
. Commencez avec le fichier principal...
Le fichier /etc/dovecot/dovecot.conf
Commencez par voir la ligne des protocoles et définissez ceux que vous voulez offrir. Par défaut cette ligne est :
protocols = imap imaps pop3 pop3s
de telle sorte que Dovecot démarre les services IMAP et POP3 et leur équivlents fonctionnant avec une connexion cryptée SSL (secur socket layer).
bien qu'il s'agisse d'un règlage moins sécure, vous en aurez certainement besoin :
disable_plaintext_auth = no
Cela autorisera les mots de passe en clair sur un connexion non sécurisée (sans SSL). Par défaut le réglage est 'yes' pour des raisons de sécurité. Le mettre à 'no' apportera une moins grande sécurité, mais aidera les utilisateurs d'un "certain" logiciel de courrier de Microsoft qui comporte de nombreux bugs.
Un réglage plus important est :
mail_location = maildir:/var/vmail/%d/%n/Maildir
Qui signifie que les boîtes des utilisateurs doivent se trouver à /var/vmail/DOMAIN/USER/Maildir
et doivent utiliser le format maildir
Il existe une section "namespace private"
dans votre fichier dovecot.conf
qui est désactivée par des signes "#"
de commentaire. L'espace de nom "privé" désigne une boîte à lettre utilisable uniquement par un certain utilisateur. Vous pouvez laisser cette section désactivée et utiliser un schéma de répertoires maildir dans ce genre :
/var/vmail/christoph.haas/email/Maildir/.spam
Si vous aviez suivi une version précédente de ce tutoriel, alors il est possible que vos répertoires soient un peu différents. Si vous avez plutôt :
/var/vmail/christoph.haas/email/Maildir/.INBOX.spam
alors il faut que vous le déclariez dans la section "namespace private"
comme indiqué ci-dessous. Activez cette section et assurez vous d'assigner une valeur à ces variables :
namespace private { separator = . inbox = yes }
Ensuite recherchez une section appellée "auth default"
. Commencez par définir les méchanismes d'identification autorisés.
mechanisms = plain login
En parcourant le fichier jusqu'à cette section vous voyez les nombreux utilitaires que Dovecot peut utiliser pour obtenir les informations de l'utilisateur. Dans cette section il faut déclarer :
passdb sql { args = /etc/dovecot/dovecot-sql.conf }
Ce qui indique à Dovecot que les mots de passe sont stockés dans une base SQL et :
userdb static { args = uid=5000 gid=5000 home=/var/vmail/%d/%n allow_all_users=yes }
Pour indiquer à Dovecot où sont situées les boîtes aux lettres. C'est semblable à la configuration de mail_location. L'utilisateur est identifié via la section "passdb sql"
. Ainsi la section "userdb static"
définit où sont situés les répertoires de courrier. L'utilisation de "userdb sql"
n'est pas nécessaire tant que toutes les boîtes à lettre respectent un schéma d'arborescence défini de manière fixe.
Vous devrez également commenter la section appelée "passdb pam"
qui correspond aux utilisateurs du système. Si vous ne le faites pas, Dovecot cherchera également dans les utilisateurs système lorsqu'un utilisateur viendra récupérer son courrier, ce qui entraînera des messages d'alerte dans votre fichier de log.
Cherchez maintenant une autre section appellée "socket listen"
. A cet endroit vous définissez des fichiers de socket qui sont utilisés pour se connecter au méchanisme d'identification de Dovecot. Rédigez ainsi cette section :
socket listen { master { path = /var/run/dovecot/auth-master mode = 0600 user = vmail } client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } }
la section "master"
est nécessaire pour autoriser l'agent de distribution de Dovecot (le programme qui enregistre les nouveaux messages dans les boîtes à lettres des utilisateurs) à accéder aux informations userdb. La section client crée un socket à l'intérieur du répertoire "chroot"
de Postfix. Chroot signifie que certains processus de Postfix sont emprisonnés dans /var/spool/postfix
et ne peuvent accéder qu'à des fichiers de ce répertoire ou de ses sous-répertoires. C'est une bonne mesure de sécurité car ainsi, même si Postfix avait un bug et pouvait être hacké l'attaquant ne pourrait pas atteindre par exemple /etc/passwd
car il est en dehors de /var/spool/postfix
.
Et pour finir, la section "protocol lda"
doit être personnalisée. Le LDA (local delivery agent : agent de distribution local) est plus puissant que l'agent de distribution virtuel inclus dans Postfix. Il autorise l'utilisation de quotas et du filtre Sieve (qui fait partie du paquet dovecot-common
). La section doit ressembler à :
protocol lda { log_path = /var/vmail/dovecot-deliver.log auth_socket_path = /var/run/dovecot/auth-master postmaster_address = postmaster@example.com mail_plugins = cmusieve }
Bien entendu changez l'adresse mail ci-dessus pour une adresse valide où l'administrateur peut être joint.
l'option log_path
(chemin des logs) est facultative, mais peut vous aider à comprendre pourquoi un certain filtre côté serveur ne fonctionne pas comme vous l'attendiez. Comme le fichier dovecot-deliver.log
peut grossir très vite, vous devriez créer un fichier de configuration de logrotate /etc/logrotate.d/dovecot.deliver
qui contiendra :
/var/vmail/dovecot-deliver.log { weekly rotate 14 compress }
Éditez le fichier /etc/dovecot/dovecot-sql.conf
et modifiez ces réglages :
driver = mysql connect = host=127.0.0.1 dbname=mailserver user=mailuser password=mailuser2009 default_pass_scheme = PLAIN-MD5 password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';
Redémarrez Dovecot :
$> /etc/init.d/dovecot restart
Maintenant vous devriez lire dans votre fichier journal /var/log/mail.log
:
dovecot: Dovecot v1.0.rc15 starting up dovecot: auth-worker(default): mysql: Connected to 127.0.0.1 (mymailserver)
Avant d'envoyer un premier mail de test vous devez régler les permissions du système de fichier pour le fichier /etc/dovecot/dovecot.conf
de manière à ce que l'utilisateur vmail
puisse accéder à la configuration de Dovecot. Ceci parce que Postfix démarre l'agent de distribution avec les permissions de vmail.
$> chgrp vmail /etc/dovecot/dovecot.conf $> chmod g+r /etc/dovecot/dovecot.conf