1735 Words Cours

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.

  1. Ahmed compose son mail et exécute la commande d’envoi de son logiciel de messagerie.
  2. Ahmed confie son message au serveur SMTP de son opérateur via le protocole SMTP.
  3. Le serveur SMTP de l’opérateur fait une recherche DNS pour obtenir l’enregistrement MX du domaine microsoft.com.
  4. Il route le message vers l’adresse SMTP renvoyée par le DNS, vers le serveur SMTP de microsoft.com.
  5. Le message est remis dans la boîte aux lettres de Mohamed.
  6. 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 :

AgentRôleProtocole 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

Le message passe du MUA émetteur au MTA émetteur en SMTP, traverse Internet, puis, côté destinataire, passe par le MTA, le MDA, la boîte aux lettres et le MAA avant d’être lu par le MUA destination

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èrePOP3IMAP
Mode de fonctionnementTé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ésBasiques, 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-appareilsLimité, 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 ligneAccès aux emails téléchargés disponible hors ligne.Nécessite une connexion pour synchroniser, accès partiel hors ligne.
Gestion du stockageEmails stockés localement, libère de l’espace serveur.Emails stockés sur le serveur, plus de stockage nécessaire.
Utilisation recommandéeStocker 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èremboxMaildir
Stockage1 seul fichier par boîte.1 fichier par message.
Structure~/mbox~/Maildir/{cur,new,tmp}/
VerrouillageNécessaire (risque de corruption).Aucun.
PerformanceLente pour les gros volumes.Rapide.
SauvegardeFichier unique.Incrémentale possible.
UtilisationAnciens 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

PhaseCommandeRôle
InitiationHELO / EHLOS’identifier au serveur.
InitiationMAIL FROMIndique l’adresse e-mail de l’expéditeur.
InitiationRCPT TOPrécise l’adresse du destinataire.
TransfertDATADébut du contenu du message (objet, corps, pièces jointes), terminé par la séquence .<CR><LF>.
Fin de vieQUITClôt la session SMTP.

Les réponses du serveur SMTP

CodeSignification
250Action demandée bien effectuée (message OK).
251Utilisateur non local, le message sera retransmis.
354Début de transfert du mail, terminez le flux par CRLF.CRLF.
450Action demandée non effectuée, boîte aux lettres inaccessible.
451Erreur pendant le traitement.
452Action demandée non effectuée, espace de stockage insuffisant.
550Action non effectuée, boîte aux lettres inexistante.
553Action 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

TypeDescriptionAvantagesExemples
Client de bureauApplication 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

LogicielTypeAvantagesInconvénientsCas d’usage typique
PostfixOpen sourceStandard 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.
EximOpen sourceUltra-flexible, règles de routage avancées, largement utilisé par cPanel.Configuration difficile.Hébergement mutualisé, routage complexe.
OpenSMTPDOpen sourceConfiguration 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

LogicielTypeAvantagesInconvénientsCas d’usage typique
DovecotOpen sourceStandard 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 IMAPOpen sourceGestion 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 IMAPOpen sourceLé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

PortProtocoleSécuriséUtilisation
25SMTPNon (ou STARTTLS)Transfert entre serveurs (MTA vers MTA).
465SMTPSOui (SSL/TLS)Ancienne méthode, dépréciée.
587SMTP + STARTTLSOuiSoumission 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

FichierRôle
/etc/postfix/main.cfParamè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.confDéfinit où et comment Dovecot stocke les emails des utilisateurs.
/etc/dovecot/conf.d/10-auth.confConfigure les mécanismes d’authentification des utilisateurs.
/etc/dovecot/conf.d/10-master.confConfigure 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