Chapitre 11. Courrier électronique

L'apparition du courrier électronique (ou email) remonte au début des années 1960. La boîte aux lettres se présentait sous la forme d'un fichier dans le répertoire personnel d'un utilisateur que seul ce dernier pouvait lire. Les applications de messagerie primitives ajoutaient des nouveaux messages de texte au bas du fichier et l'utilisateur devait parcourir tout le fichier qui ne cessait de grandir, afin de retrouver tout message spécifique. Ce système ne pouvait envoyer de messages qu'aux utilisateurs d'un même système.

Le premier transfert réseau d'un courrier électronique a eu lieu en 1971 lorsqu'un ingénieur informatique nommé Ray Tomlinson a envoyé un message test entre deux ordinateurs via ARPANET — le précurseur de l'Internet. De là, la popularité de la communication par email s'est rapidement développée et en moins de deux ans, elle représentait 75 pour cent du trafic d'ARPANET.

Au fil du temps, les systèmes de messagerie électronique basés sur des protocoles réseau standardisés ont évolué de telle manière qu'ils font désormais partie des services les plus couramment utilisés sur l'Internet. Red Hat Enterprise Linux offre de nombreuses applications avancées permettant de servir et accéder aux emails.

Ce chapitre examine d'une part les protocoles de courrier électronique utilisés à l'heure actuelle et d'autre part, certains des programmes de messagerie électronique conçus pour envoyer et recevoir des emails.

11.1. Protocoles de courrier électronique

De nos jours, le courrier électronique est délivré à l'aide d'une architecture client/serveur. Un message électronique est créé au moyen d'un programme client de messagerie électronique. Ce programme envoie ensuite le message à un serveur. Ce dernier transmet à son tour le message au serveur de messagerie du destinataire où il est transmis au client de messagerie du destinataire final.

Afin de rendre ce processus possible, une vaste gamme de protocoles réseau standard permettent à différents ordinateurs exécutant souvent différents systèmes d'exploitation et utilisant des programmes de messagerie électroniques différents, d'envoyer et de recevoir des emails.

Les protocoles suivants qui sont abordés dans ce chapitre sont ceux le plus fréquemment utilisés pour le transfert de courrier électronique entre systèmes.

11.1.1. Protocoles de transfert de courrier électronique

La livraison de courrier d'une application cliente au serveur et d'un serveur d'origine à un serveur de destination est traitée par le protocole nommé Simple Mail Transfer Protocol (ou SMTP).

11.1.1.1. SMTP

L'objectif primaire de SMTP consiste à transférer le courrier électronique entre les serveurs de messagerie. Toutefois, il a également une importance critique pour les clients de messagerie. Afin d'envoyer un email, le client envoie le message électronique à un serveur de messagerie sortant, qui à son tour contacte le serveur de messagerie de destination pour la livraison du message. Dans de telles circonstances, il est nécessaire de spécifier un serveur SMTP lors de la configuraton d'un client de messagerie.

Sous Red Hat Enterprise Linux, un utilisateur peut configurer un serveur SMTP sur l'ordinateur local afin qu'il traite la livraison du courrier. Toutefois, il est également possible de configurer des serveurs SMTP distants pour le courrier sortant.

Il est important de noter ici que le protocole SMTP n'a pas besoin d'authentification pour fonctionner. Ainsi, quiconque utilisant l'Internet peut envoyer des emails à toute autre personne ou même à de grands groupes de personnes. C'est cette caractéristique de SMTP qui permet l'envoi de pourriel (aussi appelé junk email) ou de spam. Les serveurs SMTP modernes essaient néanmoins de minimiser ce comportement en n'autorisant que les hôtes connus à accéder au serveur SMTP. Les serveurs n'imposant pas ce genre de restriction sont appelés serveurs open relay.

Par défaut, Sendmail (/usr/sbin/sendmail) est le programme SMTP par défaut sous Red Hat Enterprise Linux. Néanmoins, une application serveur de messagerie plus simple appelée Postfix (/usr/sbin/postfix) est également disponible.

11.1.2. Protocoles d'accès au courrier

Pour récupérer le courrier électronique stocké sur les serveurs de messagerie, les applications client de messagerie utilisent deux protocoles primaires : Post Office Protocol (ou POP) et Internet Message Access Protocol (ou IMAP).

Contrairement à SMTP, ces deux protocoles exigent des clients qui se connectent de s'authentifier au moyen d'un nom d'utilisateur (aussi appelé identifiant) et d'un mot de passe. Par défaut, les mots de passe pour les deux protocoles sont transmis à travers le réseau de manière non-cryptée.

11.1.2.1. POP

Sous Red Hat Enterprise Linux, le serveur POP par défaut est /usr/sbin/ipop3d qui est inclus dans le paquetage imap. Lors de l'utilisation d'un serveur POP, les messages électroniques sont téléchargés par des applications client de messagerie. Par défaut, la plupart des clients de messagerie POP sont configurés automatiquement pour supprimer les messages sur le serveur une fois le transfert effectué ; toutefois, cette configuration peut souvent être modifiée.

Le protocole POP est compatible à 100 % avec des normes de messagerie Internet importantes, telles que Multipurpose Internet Mail Extensions (ou MIME), qui permet l'envoi de pièces jointes.

Le protocole POP est le plus approprié pour les utilisateurs disposant d'un système sur lequel ils peuvent lire leurs courrier électronique. Il fonctionne également bien pour des utilisateurs n'ayant pas de connexion continue à l'Internet ou à un réseau sur lequel le serveur de messagerie se trouve. Malheureusement, pour les utilisateurs ayant des connexions réseau lentes, POP requiert que les programmes client, après authentification, téléchargent la totalité du contenu de chaque message. Cette opération peut être longue si certains messages contiennent des pièces jointes.

La version la plus courante du protocole POP standard est POP3.

Il existe néanmoins de nombreuses variantes moins utilisées du protocole POP :

  • APOP — POP3 avec authentification MDS. Un hachage codé du mot de passe de l'utilisateur est envoyé du client de messagerie au serveur plutôt qu'une version de ce dernier sous forme non-cryptée.

  • KPOP — POP3 avec authentification Kerberos. Reportez-vous au Chapitre 19 pour obtenir de plus amples informations.

  • RPOP — POP3 avec authentification RPOP. Cette variante utilise un identificateur (ID) publié pour chaque utilisateur, semblable à un mot de passe, pour authentifier les requêtes POP. Cependant, étant donné que cet ID n'est pas crypté, RPOP n'est pas plus sécurisé que le POP standard.

Pour une sécurité accrue, il est possible d'utiliser le cryptage Secure Socket Layer (SSL) pour l'authentification des clients et pour les sessions de transfert de données. Cette fonctionnalité peut être activée en utilisant le service ipop3s ou le programme /usr/sbin/stunnel. Reportez-vous à la Section 11.5.1 pour obtenir de plus amples informations.

11.1.2.2. IMAP

Sous Red Hat Enterprise Linux, /usr/sbin/imapd est le serveur IMAP par défaut, fourni par le paquetage imap. Lors de l'utilisation d'un serveur de messagerie IMAP, le courrier électronique est conservé sur le serveur où les utilisateurs peuvent lire et supprimer les emails. IMAP permet également aux applications client de créer, renommer ou supprimer des répertoires de messagerie sur le serveur afin d'organiser ou de stocker le courrier électronique.

Le protocole IMAP est utile tout particulièrement pour les utilisateurs accédant à leur courrier électronique au moyen d'ordinateurs multiples. Ce protocole est également pratique pour les utilisateurs se connectant au serveur de messagerie par le biais d'une connexion lente, car seule l'information d'en-tête du message est téléchargée jusqu'à ce qu'il soit ouvert, économisant ainsi de la largeur de bande. En outre, l'utilisateur peut également supprimer des messages sans devoir les lire ou les télécharger.

Par commodité, les applications IMAP client peuvent mettre en cache localement des copies des messages afin que l'utilisateur puissent naviguer parmi des messages déjà lus même lorsqu'il n'est pas directement connecté au serveur IMAP.

IMAP, tout comme POP, est compatible à 100 % avec des normes de messagerie Internet importantes, telles que MIME (Multipurpose Internet Mail Extensions) pour permettre l'envoi de pièces jointes.

Pour une sécurité accrue, il est possible d'utiliser le cryptage SSL pour l'authentification des clients et pour les sessions de transfert de données. Cette fonctionnalité peut être activée en utilisant le service imaps ou le programme /usr/sbin/stunnel Reportez-vous à la Section 11.5.1 pour obtenir de plus amples informations.

D'autres clients et serveurs IMAP libres et commerciaux sont disponibles ; un certain nombre d'entre eux poussent encore plus les possibilités du protocole IMAP et fournissent des fonctionnalités supplémentaires. Une liste compréhensive de ces derniers est disponible en ligne à l'adresses suivante : http://www.imap.org/products/longlist.htm.