Réseau - Web - GNU/Linux

2013 22 août

Configuration de Dovecot - Debian 7.0 Wheezy

Rédigé par Marc GUILLAUME | Aucun commentaire
Article précédent Mail façon FAI - Debian 7.0 Wheezy Article suivant

Configurer le logiciel Dovecot chargé de la distribution du courrier aux utilisateurs.

Configurons maintenant Dovecot qui va effectuer diverses tâches pour nous :

  • Recevoir les mails transmis par Postfix et les enregistrer sur le disque ;
  • exécuter les règles de filtrage sieve définies par les utilisateurs (qui peuvent être utilisées pour répartir les courriers dans différents dossiers) ;
  • permettre aux utilisateurs de récupérer leur courrier en utilisant les protocoles POP3 ou IMAP.

Avant d'en venir à la configuration proprement dite, pour des raisons de sécurité je vous recommande de créer un nouvel utilisateur système à qui appartiendront toutes les boîtes mail des domaines virtuels. Les commandes shell suivantes vont créer un groupe système vmail avec un GID (identifiant de groupe) 5000 et un utilisateur système vmail avec un UID (identifiant d'utilisateur) 5000 (assurez-vous auparavant que ces UID et GID ne sont pas déjà utilisés, sinon choisissez en un autre - vous pouvez choisir un nombre entre 1000 et 65000 qui ne soit pas déjà utilisé) :

groupadd -g 5000 vmail
useradd -g vmail -u 5000 vmail -d /var/vmail -m

Assurez vous également que ce répertoire possède les permissions adéquates :

chown -R vmail:vmail /var/vmail
chmod u+w /var/vmail

Le fichier de configuration de Dovecot se situe dans le répertoire /etc/dovecot. Dans les guides précédents il n'existait que deux fichiers de configuration. Mais dans la version de Dovecot incluse dans Debian Wheezy apparaît un nouveau répertoire conf.d qui contient à-peu-près 30 fichiers de configuration. La réunion de tous ces fichiers forme la configuration complète de Dovecot. Cette réunion est effectuée par cette ligne magique dans le fichier dovecot.conf :

!include conf.d/*.conf

Il charge tous les fichiers se terminant par .conf se trouvant dans /etc/dovecot/conf.d/ et triés par ordre alphabétique. Ainsi le fichier 10-auth.conf est chargé avant 90-quota.conf. Le gros avantage est que vous pouvez éditer ou remplacer une partie de la configuration sans avoir à reprendre la configuration entière. L'inconvénient est que si vous mettez à jour votre serveur de mail depuis une ancienne version de Debian vous devez tout reconfigurer dans Dovecot. Le fichier principal /etc/dovecot/dovecot.conf ne requiert aucun changement. Les autres fichiers dans conf.d par contre doivent être édités.

conf.d/

10-auth.conf

Si vous vous attendez à ce que vos utilisateurs emploient Outlook de Microsoft™ comme client de mail, vous devez activer le mécanisme d'authentification LOGIN en plus du mécanisme PLAIN.

auth_mechanisms = plain login

Ce sont des façons d'envoyer un mot de passe de mail en texte clair (non chiffré) . Mais rassurez-vous, par défaut Dovecot possède l'option disable_plaintext_auth = yes (désactivation des identification en texte clair) qui assure que chaque connexion est chiffrée en utilisant TLS.

A la fin de ce fichier vous allez trouver les différentes techniques d'authentification que Dovecot peut utiliser. Par défaut il utilise les utilisateurs système (ceux listés dans /et/passwd). Mais nous voulons qu'il utilise la méthode basée sur MySQL donc allons-y et modifions également ce bloc :

#!include auth-system.conf.ext
!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

Maintenant éditez le fichier de configuration SQL :

auth-sql.conf.ext

Commentez la section standard userdb (en ajoutant des # en début de ligne).

Puis ajoutez :

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

ATTENTION :

  • Il ne doit y avoir qu'une seule section userdb ;
  • il existe une section très semblable. Mais elle utilise %u au lieu de %d/%n. Elle conviendrait pour un système de fichiers ayant la structure /var/vmail/USER@DOMAIN au lieu de notre /var/vmail/DOMAIN/USER.

10-mail.conf

Modifiez les réglages de mail_location en  :

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

Il s'agit du répertoire où Dovecot cherchera le courrier pour un utilisateur particulier. La variable %d représente la partie domaine et %n représente la partie utilisateur d'une adresse email. Par exemple pour john@example.org cela conduira à un chemin /var/vmail/example.org/john/Maildir

INFORMATION : Le format maildir spécifie que chaque email est représenté par un fichier particulier sur le disque en utilisant un format de nom de fichier défini. Le format mbox est un système plus ancien et moins souple qui stocke tous les emails dans un seul répertoire dans un seul fichier qui rend l'effacement des emails plus lent parce que pour de grandes « mbox » il faut lire et réécrire le fichier entièrement.

Ci-dessous vous trouverez des sections définissant les espaces de nom (namespaces). Les espaces de noms sont les structures de répertoires que voit votre client de mail quand il se connecte à votre serveur. Si vous utilisez POP3 vous ne pouvez accéder qu'au répertoire inbox, qui est celui dans lequel sont stockés tous les mails entrants. En utilisant le protocole IMAP vous avez accès à toute une hiérarchie de dossiers et de sous-dossiers. Et vous pouvez même avoir des répertoires partagés entre utilisateurs. Ou même un répertoire public accessible par n'importe qui, même anonymement.

Jetez un oeil sur la section namespace inbox du wiki de Dovecot. Si vous avez déjà des courriels sur votre serveur venant d'une précédente version du guide ISPmail vous devez changer ici la ligne separator = .. Par défaut le séparateur est / ce qui crée des structures de répertoire du genre /var/vmail/example.org/john/Maildir/INBOX/staff/marketing/simon. Mais les précédentes versions du guide utilisaient un . comme séparateur ce qui fait que le fichier ci-dessus serait plutôt /var/vmail/example.org/john/Maildir/.INBOX.staff.marketing.simon.

10-master.conf

Ce fichier de configuration traite des services qui autorisent la communication avec les autres processus. Par exemple il active ou désactive POP3 ou IMAP. Ne vous occupez pas des ports TCP standards non chiffrés 110 (pour POP3) et 143 (pour IMAP). Il peuvent rester accessibles. Si un utilisateur se connecte à ces ports il devra publier une commande STARTTLS pour basculer dans le mode chiffré avant que l'on ne leur permette d'envoyer leur mot de passe. Il n'y a pas de différence fondamentale entre l'utilisation d'un port non chiffré comme 110 pour POP3 avec ensuite une bascule vers STARTTLS et se connecter sur le port chiffré 995 pour POP3S (S pour sécurisé). Voyez la documentation de Dovecot pour plus d'explications.

La plupart des réglages ici sont bons et n'ont pas besoin d'être modifiés. Cependant une modification est nécessaire dans la section service auth car nous voulons que Postfix autorise Dovecot à devenir le service d'authentification. C'est pour ceci qu'il faut utiliser :

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

10-ssl.conf

Plus haut dans ce guide vous avez créé à la fois une clé et un certificat pour chiffrer les communications via POP3, IMAP et HTTPS entre les utilisateurs et votre serveur de courrier. Vous devez dire à Dovecot où trouver ces fichiers :

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

15-lda.conf

Dans ce fichier de configuration vous pouvez activer le plugin sieve. Utiliser sieve est une manière de manipuler les règles de gestion des emails côté serveur. Une règle est un ensemble de conditions et d'actions. Par exemple si l'adresse de l'expéditeur correspond à steve@example.org vous pourriez dire à Dovecot de déposer ce courrier dans votre dossier staff/sales/steve. Ces règles sont conservées sur le serveur où est installé Dovecot et sont exécutées automatiquement. Elles n'ont pas besoin d'être lancées depuis un client de mail de l'utilisateur. Quelle que soit la façon dont vous vous connectez, depuis votre smartphone, votre portable ou via l'accès webmail, les règles fonctionneront toujours.

Localisez la section protocol lda à la fin du fichier. Ajoutez sieve sur la liste des plugins de mail :

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

/etc/dovecot/dovecot-sql.conf.ext

Ce fichier est appelé par /etc/dovecot/conf.d/auth-sql.conf.ext. Il dit à Dovecot comment accéder à la base de données MySQL et où trouver les informations concernant les utilisateurs et les comptes. Vous le trouverez abondament documenté. Assurez-vous qu'il contienne bien ces lignes (vous pouvez simplement les ajouter à la fin du fichier si vous le désirez) :

driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=mailuser password=fLxsWdf5ABLqwhZr   <--- utilisez votre propre mot de passe de base de donnée ici
default_pass_scheme = PLAIN-MD5
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';

Que signifient ces lignes ? :

  • driver : le type de base de donnée ;
  • connect : où trouver la base de données et comment l'utiliser (nom d'utilisateur, mot de passe) ;
  • default_pass_scheme : le format dans lequel sont stockés les mots de passe (nous utilisons un hachage MD5 sans « sel ») ;
  • password_query : une requête SQL qui retourne le nom d'utilisateur (c'est à dire l'adresse mail) et le mot de passe (le hachage MD5) dans la base de données où %u représente le nom d'utilisateur de connexion (nous utilisons l'adresse mail de l'utilisateur comme nom d'utilisateur d'un compte mail). Chaque fois que Dovecot a besoin de vérifier le mot de passe d'une adresse mail il va lancer la requête ci-dessus. Il va créer un hachage MD5 du mot de passe de l'utilisateur et le comparer avec celui qu'il a trouvé dans la table virtual_users de la base de données.

Dernier acte

Avant de démarrer Dovecot il faut commencer par régler les permissions sur le système de fichier pour le fichier /etc/dovecot/dovecot.conf pour que seul l'utilisateur vmail puisse accéder à la configuration de Dovecot. Ceci parce que Postfix lance l'agent de livraison avec les permissions vmail :

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

Vous devriez également vous assurer que seul root puisse accéder au fichier de configuration SQL de manière à ce que personne d'autre ne puisse lire le mot de passe d'accès à votre base de données :

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

Redémarrez Dovecot en ligne de commande :

service dovecot restart

Regardez votre fichier de log /var/log/mail.log. Vous devriez voir :

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

Si vous obtenez un quelconque message d'erreur re-lisez cette page et re-vérifiez vos fichiers de configuration.

Écrire un commentaire

Quelle est la dernière lettre du mot uskyu ?

Fil RSS des commentaires de cet article

À propos

Yakati.com - Réseau - Web - GNU/Linux © 2017

Généré par PluXml en 0.038s  - Administration

Mes coordonnées

Marc Guillaume
contact[at]yakati.com
79150 ÉTUSSON

Crédits

Pour la gestion du contenu

Généré par PluXml, le Blog ou Cms sans base de données

Pour le contenu

Licence Creative Commons
Ce(tte) œuvre est mise à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.

Pour le thème

Thème SOLID de blacktie.co adapté pour PluXml