Objectifs du chapitre
- Comprendre le principe de base des protocoles de messagerie.
- Distinguer les différents agents (MTA, MDA, MUA).
- Choisir le format de stockage.
- Sécuriser SMTP.
- Maîtriser les fichiers de configuration.
- Mettre en place un serveur de messagerie en utilisant les solutions Postfix et Dovecot et un client de messagerie Thunderbird.
- Mettre en œuvre et tester Fail2ban pour protéger le serveur Dovecot contre les tentatives répétées d’authentification.
1. Introduction
Le service de messagerie électronique (email) est l’un des outils de communication les plus utilisés dans le monde professionnel et personnel : il permet l’échange rapide de messages, de fichiers et de documents entre des utilisateurs situés dans des endroits différents, avec une accessibilité mondiale. Ce service repose sur un ensemble de protocoles qui assurent le transfert, la réception et la gestion des messages de manière sécurisée et fiable.
2. Présentation de SMTP
Simple Mail Transfer Protocol (SMTP) est le protocole de communication standard pour l’envoi de messages électroniques. Il utilise le port TCP 25, a été créé dans les années 1980 et normalisé par la RFC 5321 ; il est adopté comme protocole universel pour la transmission des e-mails.
3. Fonctionnement de SMTP
Exemple : Ahmed (Ahmed@esprit.tn) envoie un mail à Mohamed (Mohamed@microsoft.com), domaines différents.
- Ahmed compose son mail et exécute la commande d’envoi de son logiciel de messagerie.
- Ahmed confie son message au serveur SMTP de son opérateur via le protocole SMTP.
- Le serveur SMTP de l’opérateur fait une recherche DNS pour obtenir l’enregistrement MX du domaine
microsoft.com. - Il route le message vers l’adresse SMTP renvoyée par le DNS, vers le serveur SMTP de
microsoft.com. - Le message est remis dans la boîte aux lettres de Mohamed.
- Mohamed récupère le message sur son poste à l’aide des protocoles POP3 ou IMAP.
Si l’expéditeur et le destinataire se trouvent dans le même domaine, un seul serveur SMTP gère l’envoi et la remise dans la boîte aux lettres, ensuite récupérée en POP3 ou IMAP.
4. Architecture de système de messagerie
Les éléments du dialogue :
| Agent | Rôle | Protocole associé |
|---|---|---|
| MUA (Mail User Agent) | Processus de poste client permettant de rédiger, envoyer et lire les messages (Outlook Express, Thunderbird). | |
| MTA (Mail Transfer Agent) | Processus serveur permettant d’acheminer le courrier. | SMTP |
| MDA (Mail Delivery Agent) | Processus serveur qui délivre les messages dans les boîtes aux lettres utilisateurs. | |
| MAA (Mail Access Agent) | Processus serveur permettant de récupérer les messages dans les boîtes aux lettres utilisateurs. | POP, IMAP |

5. Protocoles de messagerie
Deux catégories de protocoles :
- Protocoles de transfert, SMTP : le principal protocole pour l’envoi d’emails, gère l’envoi des messages du client vers le serveur, puis d’un serveur à un autre, jusqu’à la réception finale.
- Protocoles de réception, POP (Post Office Protocol) et IMAP (Internet Message Access Protocol) : permettent aux utilisateurs de récupérer leurs emails depuis le serveur vers leur client de messagerie, orientés vers la réception et la gestion des e-mails par les utilisateurs finaux.
6. Différence entre POP3 et IMAP
| Critère | POP3 | IMAP |
|---|---|---|
| Mode de fonctionnement | Télécharge les emails et les supprime par défaut du serveur. | Synchronise les emails entre le serveur et les appareils de l’utilisateur. |
| Fonctionnalités | Basiques, téléchargement des emails de la boîte de réception. | Gestion avancée (dossiers, statut lu/non lu, recherche, etc.). |
| Accès multi-appareils | Limité, les emails sont souvent supprimés du serveur. | Idéal, les emails restent sur le serveur et sont synchronisés sur tous les appareils. |
| Mode hors ligne | Accès aux emails téléchargés disponible hors ligne. | Nécessite une connexion pour synchroniser, accès partiel hors ligne. |
| Gestion du stockage | Emails stockés localement, libère de l’espace serveur. | Emails stockés sur le serveur, plus de stockage nécessaire. |
| Utilisation recommandée | Stocker les emails localement sur un seul appareil. | Accès aux emails depuis plusieurs appareils avec synchronisation continue. |
7. Format des boîtes aux lettres
Lorsqu’un email est délivré par le MDA, il doit être stocké dans une boîte aux lettres. Le format de stockage choisi a un impact sur les performances, la fiabilité et la compatibilité avec IMAP.
| Critère | mbox | Maildir |
|---|---|---|
| Stockage | 1 seul fichier par boîte. | 1 fichier par message. |
| Structure | ~/mbox | ~/Maildir/{cur,new,tmp}/ |
| Verrouillage | Nécessaire (risque de corruption). | Aucun. |
| Performance | Lente pour les gros volumes. | Rapide. |
| Sauvegarde | Fichier unique. | Incrémentale possible. |
| Utilisation | Anciens systèmes. | Moderne (Postfix + Dovecot). |
La structure Maildir organise les messages dans trois sous-dossiers selon leur état :
/home/user1/Maildir/
├── cur/ # Messages déjà lus
├── new/ # Messages non lus
└── tmp/ # Messages en cours d'écriture
Chaque message est un fichier unique : pas de verrouillage, ce qui est idéal pour IMAP. Le choix du format se fait dans /etc/postfix/main.cf via le paramètre home_mailbox :
# Format Maildir
home_mailbox = Maildir/
# Format mbox (ancien)
# home_mailbox = mbox
8. Transmission des messages SMTP
Les commandes SMTP
| Phase | Commande | Rôle |
|---|---|---|
| Initiation | HELO / EHLO | S’identifier au serveur. |
| Initiation | MAIL FROM | Indique l’adresse e-mail de l’expéditeur. |
| Initiation | RCPT TO | Précise l’adresse du destinataire. |
| Transfert | DATA | Début du contenu du message (objet, corps, pièces jointes), terminé par la séquence .<CR><LF>. |
| Fin de vie | QUIT | Clôt la session SMTP. |
Les réponses du serveur SMTP
| Code | Signification |
|---|---|
| 250 | Action demandée bien effectuée (message OK). |
| 251 | Utilisateur non local, le message sera retransmis. |
| 354 | Début de transfert du mail, terminez le flux par CRLF.CRLF. |
| 450 | Action demandée non effectuée, boîte aux lettres inaccessible. |
| 451 | Erreur pendant le traitement. |
| 452 | Action demandée non effectuée, espace de stockage insuffisant. |
| 550 | Action non effectuée, boîte aux lettres inexistante. |
| 553 | Action demandée non effectuée, syntaxe erronée. |
| 554 | Échec de la transmission. |
Exemple de session Telnet
D:\>telnet smtp.wanadoo.fr 25
220 mwinf2429.orange.fr ESMTP ABO
EHLO 82.121.159.147
250-mwinf2429.orange.fr
250-PIPELINING
250-SIZE 10485760
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250 8BITMIME
MAIL FROM:<xxxxx.xxxxxxx@ac-grenoble.fr>
250 Ok
RCPT TO:<xxxxx.xxxxxxx@ac-grenoble.fr>
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject:Envoi de test
Ceci est un envoi fait par un client Telnet
.
250 Ok: queued as D29171C0008B
QUIT
221 Bye
9. Type de client de messagerie
| Type | Description | Avantages | Exemples |
|---|---|---|---|
| Client de bureau | Application installée sur l’ordinateur, gère les emails en local et en ligne. | Accès hors ligne, fonctionnalités avancées (calendrier, contacts), interface personnalisable. | Microsoft Outlook, Mozilla Thunderbird, Apple Mail |
| Client web (Webmail) | Accessible via un navigateur web, sans installation, stockage des emails en ligne. | Accessible depuis n’importe quel appareil connecté, interface simplifiée. | Gmail, Yahoo Mail, Outlook.com |
Outils MTA
| Logiciel | Type | Avantages | Inconvénients | Cas d’usage typique |
|---|---|---|---|---|
| Postfix | Open source | Standard moderne, excellente sécurité (sandbox), performances élevées, configuration claire et bien documentée. | Moins flexible qu’Exim pour le routage très complexe. | Serveur mail polyvalent, recommandé pour le TP. |
| Exim | Open source | Ultra-flexible, règles de routage avancées, largement utilisé par cPanel. | Configuration difficile. | Hébergement mutualisé, routage complexe. |
| OpenSMTPD | Open source | Configuration simple et lisible, design minimaliste et très sécurisé. | Communauté réduite, moins de fonctionnalités avancées. | Serveurs légers, environnements sécurisés (BSD/Linux). |
| Microsoft Exchange (rôle SMTP) | Payant (propriétaire) | Intégration parfaite avec Active Directory et Outlook, interface GUI/PowerShell. | Coût élevé, dépendant de Windows, consommateur de ressources. | Entreprises utilisant l’écosystème Microsoft. |
Outils MDA/MAA
| Logiciel | Type | Avantages | Inconvénients | Cas d’usage typique |
|---|---|---|---|---|
| Dovecot | Open source | Standard moderne, support parfait de Maildir (pas de verrouillage), s’intègre nativement avec Postfix, très performant. | Paramétrage avancé parfois complexe pour des besoins très spécifiques. | Serveur mail moderne, recommandé pour le TP. |
| Cyrus IMAP | Open source | Gestion avancée des quotas, clustering intégré, adapté aux très grands volumes. | Format de stockage propriétaire (ne lit pas le Maildir standard), configuration lourde. | Grandes infrastructures (universités, grands comptes). |
| Courier IMAP | Open source | Léger, supporte Maildir, facile à configurer pour des besoins simples. | Moins performant en haute charge, communauté en déclin, fonctionnalités moins modernes. | Anciens serveurs, environnements très légers. |
| Microsoft Exchange (rôle POP3/IMAP) | Payant (propriétaire) | Messagerie unifiée (mail, calendrier, contacts), intégration totale avec Outlook/Active Directory. | Coût très élevé, base de données propriétaire (sauvegarde complexe). | Entreprises utilisant l’écosystème Microsoft. |
10. Sécurité de SMTP
Sécuriser les échanges mail est devenu une nécessité absolue pour éviter l’usurpation d’identité, l’interception des messages et l’exploitation des serveurs en relais ouverts.
Les ports SMTP
| Port | Protocole | Sécurisé | Utilisation |
|---|---|---|---|
| 25 | SMTP | Non (ou STARTTLS) | Transfert entre serveurs (MTA vers MTA). |
| 465 | SMTPS | Oui (SSL/TLS) | Ancienne méthode, dépréciée. |
| 587 | SMTP + STARTTLS | Oui | Soumission par les clients (MUA). |
Le port 25 est réservé aux serveurs. Les clients doivent utiliser le port 587 avec authentification.
STARTTLS : négociation de chiffrement
STARTTLS est une extension du protocole SMTP qui permet de transformer une connexion non chiffrée en une connexion sécurisée, sans changer de port :
Client (MUA) Serveur SMTP
| ---- EHLO example.com ----> |
| <--- 250-STARTTLS --------- | ← le serveur annonce STARTTLS
| ---- STARTTLS -------------> |
| <--- 220 Ready to start TLS | ← négociation TLS
| ====== CANAL CHIFFRÉ ====== |
| ---- AUTH LOGIN -----------> |
Authentification SMTP
Permet au serveur de vérifier l’identité du client avant d’accepter un message, ce qui empêche l’utilisation du serveur comme relais ouvert :
EHLO client.example.com # le client s'identifie
250-mail.example.com
250-AUTH PLAIN LOGIN CRAM-MD5 ← mécanismes proposés par le serveur
250-STARTTLS
250 OK # le serveur répond (code 250 = succès)
AUTH LOGIN # le client demande l'authentification avec la méthode LOGIN
334 VXNlcm5hbWU6 ← "Username:" en Base64, le serveur demande le nom d'utilisateur
user1 # le client envoie son nom d'utilisateur
334 UGFzc3dvcmQ6 ← "Password:" en Base64, le serveur demande le mot de passe
Password # le client envoie son mot de passe (via STARTTLS, la connexion est chiffrée)
235 Authentication successful # authentification réussie, la session peut continuer
Protection contre les attaques
Fail2ban est un outil de sécurité qui surveille les journaux d’authentification (logs) et bannit temporairement les adresses IP présentant des signes d’attaque par force brute.
Principe de fonctionnement :
- Analyse en continu des fichiers de logs (ex.
/var/log/mail.log). - Détection des tentatives de connexion échouées et répétées (SMTP, POP3, IMAP).
- Bannissement temporaire de l’IP source après un nombre défini d’échecs (
maxretry).
Objectif : protéger Postfix et Dovecot contre les attaques par dictionnaire visant les comptes de messagerie.
11. Fichiers de configuration
| Fichier | Rôle |
|---|---|
/etc/postfix/main.cf | Paramètres principaux de Postfix : identité du serveur, domaines acceptés, réseaux autorisés, format des boîtes aux lettres. |
/etc/dovecot/conf.d/10-mail.conf | Définit où et comment Dovecot stocke les emails des utilisateurs. |
/etc/dovecot/conf.d/10-auth.conf | Configure les mécanismes d’authentification des utilisateurs. |
/etc/dovecot/conf.d/10-master.conf | Configure le socket Unix qui permet à Postfix de communiquer avec Dovecot pour l’authentification SMTP. |
Fichier alias : /etc/aliases
Le fichier /etc/aliases permet de rediriger le courrier destiné à un utilisateur système vers une autre adresse. Chaque utilisateur créé avec useradd (user1, user2) peut être relié à une adresse complète du domaine.
sudo gedit /etc/aliases
# ajouter une ligne : nom_utilisateur: adresse@domaine.com
sudo newaliases