Réseau - Web - GNU/Linux

2011 12 mai

Configuration de Dovecot - Debian 5.0 Lenny

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

Configurer 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

Écrire un commentaire

Quelle est la deuxième lettre du mot ffio ?

Fil RSS des commentaires de cet article

À propos

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

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

Mes coordonnées

Marc Guillaume
contact[at]yakati.info
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