Aller au contenu

Dovecot

De Wiki Pat-Informatik
🏠 Accueil 📚 Index 🐧 Linux 🌐 Réseau 🔒 Cybersécurité 🖥️ Virtualisation ✅ Checklists d'intervention 📚 Tutoriels 🤝 Services
📬 Dovecot — Serveur de messagerie IMAP et POP3
Boîtes aux lettres • Authentification • Sécurité • Diagnostic

Administrer l'accès aux courriers électroniques et comprendre la distribution des messages sous Linux.

📌 Présentation de Dovecot

Dovecot est un logiciel de messagerie pour Linux qui permet aux utilisateurs d'accéder à leurs boîtes aux lettres électroniques. Il est principalement utilisé pour les protocoles IMAP et POP3.

Il peut également assurer, selon la configuration, des fonctions d'authentification, de distribution locale des messages et de filtrage.

Dovecot est fréquemment associé à Postfix pour constituer un serveur de messagerie complet.

💡 À retenir : Postfix transporte les courriers, tandis que Dovecot permet notamment de consulter les boîtes aux lettres. Leur configuration doit être cohérente pour que les messages reçus soient disponibles dans le logiciel de messagerie.

🏗️ Architecture d'un serveur de messagerie

Composant Fonction
Postfix Reçoit et transmet les courriers électroniques via SMTP.
Dovecot Fournit l'accès aux boîtes aux lettres via IMAP ou POP3 et peut participer à leur distribution.
DNS Permet d'identifier le serveur de messagerie et les domaines concernés.
TLS Protège les connexions en chiffrant les échanges.
Client de messagerie Permet à l'utilisateur de lire, classer et envoyer ses messages.

🔄 Fonctionnement simplifié

Expéditeur
    |
    | SMTP
    v
+------------------+
|     POSTFIX      |
| Transport SMTP   |
+------------------+
    |
    | Distribution du message
    v
+------------------+
| Boîte aux lettres|
| Maildir ou mbox  |
+------------------+
    |
    | IMAP ou POP3
    v
+------------------+
|    DOVECOT       |
| Accès utilisateur|
+------------------+
    |
    v
Logiciel de messagerie

Ce schéma représente un fonctionnement courant. Selon l'installation, Dovecot peut aussi recevoir les messages via LMTP ou un autre mécanisme de distribution.

📦 Installation sous Ubuntu

Pour installer Dovecot avec la prise en charge d'IMAP et de POP3 :

sudo apt update
sudo apt install dovecot-imapd dovecot-pop3d

Si tu souhaites uniquement consulter les messages en IMAP, le paquet `dovecot-imapd` peut suffire. Le choix dépend des protocoles réellement utilisés.

Vérifier le service

sudo systemctl status dovecot

Démarrer le service :

sudo systemctl start dovecot

Activer le démarrage automatique :

sudo systemctl enable dovecot

Redémarrer après une modification :

sudo systemctl restart dovecot

Recharger la configuration :

sudo doveadm reload

⚙️ Fichiers de configuration

Les principaux fichiers se trouvent dans le répertoire `/etc/dovecot/`.

Fichier Utilité
/etc/dovecot/dovecot.conf Fichier principal de configuration.
/etc/dovecot/conf.d/10-mail.conf Paramètres de stockage et d'emplacement des boîtes aux lettres.
/etc/dovecot/conf.d/10-auth.conf Paramètres liés à l'authentification.
/etc/dovecot/conf.d/10-ssl.conf Configuration du chiffrement TLS.
/etc/dovecot/conf.d/10-master.conf Services et sockets utilisés par Dovecot.
/etc/dovecot/conf.d/10-logging.conf Paramètres de journalisation, selon la configuration installée.

Les fichiers inclus et les paramètres disponibles peuvent varier selon la version de Dovecot installée.

Afficher la configuration

Afficher les paramètres non définis par défaut :

sudo doveconf -n

Afficher la version :

dovecot --version

Vérifier les erreurs de configuration et les messages au démarrage :

sudo journalctl -u dovecot -n 100 --no-pager

Avant de modifier les fichiers, faire une copie de sauvegarde :

sudo cp -a /etc/dovecot /etc/dovecot.bak

📥 Les protocoles IMAP et POP3

Protocole Port habituel Utilisation
IMAP 143/TCP Consultation et synchronisation des messages conservés sur le serveur.
IMAPS 993/TCP Consultation IMAP avec TLS implicite.
POP3 110/TCP Récupération des messages selon les paramètres du client.
POP3S 995/TCP Récupération POP3 avec TLS implicite.

Pour la plupart des utilisateurs qui consultent leurs courriers depuis plusieurs appareils, IMAP avec TLS sur le port 993 constitue un choix courant.

Le port 143 peut également être utilisé avec STARTTLS lorsque cette configuration est prévue.

Le port 110 et le port 995 sont nécessaires uniquement si POP3 est utilisé. Il n'est pas obligatoire d'activer tous les protocoles.

📂 Stockage des courriers

Dovecot prend notamment en charge deux formats de stockage courants : Maildir et mbox.

Format Principe Point d'attention
Maildir Les messages sont stockés individuellement dans des répertoires, souvent `cur`, `new` et `tmp`. Vérifier le chemin, les permissions et le mécanisme de livraison.
mbox Plusieurs messages sont stockés dans un fichier de boîte aux lettres. Vérifier le fichier utilisé, les droits d'accès et les mécanismes de verrouillage.

Le format utilisé doit correspondre à la configuration de Dovecot et au mécanisme de distribution des messages.

Afficher les paramètres de stockage :

sudo doveconf -n | grep -E 'mail_driver|mail_location|mail_path'

Selon la version installée, les noms des paramètres peuvent varier. Sur de nombreuses installations Ubuntu utilisant Dovecot 2.3, le paramètre classique est `mail_location`.

Exemple de chemin Maildir

Un exemple de chemin souvent rencontré est :

mail_location = maildir:~/Maildir

Cette ligne est un exemple, pas une configuration universelle. Ne l'ajoute pas sans vérifier le chemin réel des boîtes et la version de Dovecot.

👤 Comptes utilisateurs et authentification

Dovecot doit déterminer quel utilisateur se connecte et comment retrouver sa boîte aux lettres.

Selon l'architecture, les comptes peuvent être :

  • Des comptes système Linux.
  • Des comptes virtuels stockés dans des fichiers.
  • Des comptes gérés par une base de données.
  • Des comptes reliés à un annuaire externe.

Afficher les paramètres d'authentification :

sudo doveconf -n | grep -E 'auth_mechanisms|disable_plaintext_auth'

Les paramètres disponibles dépendent de la version et des méthodes d'authentification activées.

Sécurité des identifiants

  • Ne jamais transmettre de mot de passe en clair sur une connexion non chiffrée.
  • Utiliser TLS pour les connexions des clients.
  • Choisir des mots de passe robustes et uniques.
  • Limiter les comptes et méthodes d'authentification inutiles.
  • Éviter de communiquer les mots de passe dans les journaux ou les comptes rendus.
  • Vérifier les permissions des fichiers contenant des identifiants ou des secrets.

⚠️ Important : n'active pas l'authentification en clair sur une connexion non chiffrée accessible depuis Internet. Vérifie la politique TLS avant de modifier les paramètres d'authentification.

🔐 Configuration TLS

TLS permet de protéger les connexions entre le client de messagerie et Dovecot.

La configuration se trouve généralement dans :

/etc/dovecot/conf.d/10-ssl.conf

Les paramètres classiques de Dovecot 2.3 peuvent ressembler à ceci :

ssl = yes
ssl_cert = </etc/letsencrypt/live/mail.exemple.fr/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.exemple.fr/privkey.pem

Remplacer `mail.exemple.fr` par le nom réel du serveur et vérifier que les chemins correspondent à un certificat valide.

⚠️ Attention : ces directives correspondent à une configuration courante de Dovecot 2.3. Dovecot 2.4 a fait évoluer certains paramètres ; il faut vérifier la syntaxe adaptée à la version installée avant d'appliquer un exemple.

Après une modification :

sudo doveconf -n
sudo systemctl restart dovecot
sudo systemctl status dovecot

Le certificat doit être valide pour le nom utilisé par le client et la clé privée doit être accessible au service avec des permissions adaptées.

🔎 Diagnostic et dépannage

1. Vérifier l'état du service

sudo systemctl status dovecot

Si le service est arrêté, consulter les journaux avant de le redémarrer.

2. Consulter les journaux

sudo journalctl -u dovecot --since "1 hour ago"

Suivre les événements en direct :

sudo journalctl -u dovecot -f

Chercher les erreurs d'authentification, de certificat, de permissions ou d'accès aux boîtes aux lettres.

3. Vérifier les ports d'écoute

sudo ss -ltnp | grep -E ':(110|143|993|995)\b'

Si aucun port attendu n'apparaît, vérifier les protocoles activés, la configuration et l'état du service.

4. Vérifier la configuration effective

sudo doveconf -n

Ne publier cette sortie que si elle a été relue : certaines configurations peuvent révéler des informations internes qu'il est préférable de ne pas diffuser publiquement.

5. Vérifier les boîtes aux lettres

Pour un compte géré par le système :

getent passwd nom_utilisateur

Vérifier ensuite le chemin réel de la boîte, l'existence des messages et les permissions des répertoires.

Ne modifie pas récursivement les propriétaires ou les permissions sans connaître le modèle de stockage et les utilisateurs internes configurés.

📭 Problème : les messages arrivent sur le serveur mais ne sont pas visibles

Si les messages entrants semblent rester sur le serveur, le problème peut se situer à plusieurs endroits :

  • Postfix a accepté le message mais la distribution n'a pas abouti.
  • Le message a été livré dans un autre répertoire.
  • Le chemin de stockage configuré dans Dovecot ne correspond pas au chemin de livraison.
  • Les permissions empêchent Dovecot d'accéder à la boîte.
  • Le client de messagerie se connecte au mauvais compte ou au mauvais serveur.
  • Une règle de filtrage a déplacé le message dans un autre dossier.

Étape 1 — Vérifier Postfix

sudo postqueue -p
sudo journalctl -u postfix --since "2 hours ago"

Une file d'attente vide ne prouve pas à elle seule que le message a été livré dans la boîte attendue.

Étape 2 — Vérifier Dovecot

sudo systemctl status dovecot
sudo journalctl -u dovecot --since "2 hours ago"
sudo doveconf -n

Rechercher les erreurs d'accès, d'authentification et de stockage.

Étape 3 — Comparer les chemins de livraison

Dans Postfix :

sudo postconf home_mailbox
sudo postconf mailbox_command
sudo postconf virtual_transport

Dans Dovecot :

sudo doveconf -n | grep -E 'mail_location|mail_driver|mail_path'

Ces paramètres ne sont pas tous utilisés dans chaque installation. Leur absence peut être normale si le serveur utilise un autre mécanisme de distribution ou des boîtes virtuelles.

Le chemin de livraison de Postfix et celui utilisé par Dovecot doivent être compatibles.

Étape 4 — Vérifier le client de messagerie

Contrôler :

  • Le nom du serveur IMAP.
  • Le port et le mode TLS.
  • L'identifiant utilisé pour la connexion.
  • L'état de l'authentification.
  • Les dossiers affichés et les éventuelles règles de filtrage.

Étape 5 — Tester la réception

Envoyer un message de test depuis une adresse externe, puis suivre son parcours dans les journaux Postfix et Dovecot. Noter l'heure, l'expéditeur, le destinataire et l'identifiant du message lorsqu'il est disponible.

Ne pas supprimer la file d'attente ni déplacer manuellement les messages avant d'avoir identifié la cause du problème.

🧪 Tests de fonctionnement

Test Résultat attendu
Service Dovecot Le service est actif et ne signale pas d'erreur critique.
Ports IMAP Les ports prévus sont en écoute.
TLS Le certificat et le nom du serveur sont valides pour les clients.
Authentification Un compte autorisé peut se connecter.
Accès aux messages Les messages de la boîte sont visibles par IMAP.
Distribution Les messages reçus par Postfix sont livrés à l'emplacement prévu.
Journaux Aucune erreur persistante ne bloque la consultation ou la distribution.

🛠️ Bonnes pratiques

  • Sauvegarder les fichiers de configuration avant les changements.
  • Vérifier la version de Dovecot avant d'appliquer une procédure.
  • Utiliser TLS pour les accès distants.
  • N'activer que les protocoles nécessaires.
  • Surveiller les journaux et les tentatives de connexion.
  • Protéger les clés privées et les fichiers d'authentification.
  • Vérifier les sauvegardes des boîtes aux lettres.
  • Tester la restauration de messages importants.
  • Coordonner la configuration de Dovecot et de Postfix.
  • Documenter les interventions et les résultats des tests.

📚 Ressources officielles

🔗 Pages associées du Wiki Pat-Informatik

🏷️ Catégories