Dovecot
| 🏠 Accueil | 📚 Index | 🐧 Linux | 🌐 Réseau | 🔒 Cybersécurité | 🖥️ Virtualisation | ✅ Checklists d'intervention | 📚 Tutoriels | 🤝 Services |
|---|
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
- Documentation officielle Dovecot
- Documentation Dovecot 2.3
- Guide Dovecot pour Ubuntu Server
- Documentation Ubuntu sur les services de messagerie