<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>3. Compression du courrier électronique </title> <link rel="stylesheet" href="style.css" type="text/css"> <meta name="generator" content="DocBook XSL Stylesheets V1.64.1"> <link rel="home" href="index.html" title=" Compressions des sessions TCP/IP avec des outils de type SSH "> <link rel="up" href="index.html" title=" Compressions des sessions TCP/IP avec des outils de type SSH "> <link rel="previous" href="ar01s02.html" title="2. Compresser HTTP, FTP… "> <link rel="next" href="ar01s04.html" title="4. Notes sur les performances "> </head> <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr><th colspan="3" align="center">3. Compression du courrier électronique </th></tr> <tr> <td width="20%" align="left"> <a accesskey="p" href="ar01s02.html">Précédent</a> </td> <th width="60%" align="center"> </th> <td width="20%" align="right"> <a accesskey="n" href="ar01s04.html">Suivant</a> </td> </tr> </table> <hr> </div> <div class="section" lang="fr"> <div class="titlepage"> <div><div><h2 class="title" style="clear: both"> <a name="id2479229"></a>3. Compression du courrier électronique </h2></div></div> <div></div> </div> <div class="section" lang="fr"> <div class="titlepage"> <div><div><h3 class="title"> <a name="id2479236"></a>3.1. Courrier entrant (POP3, IMAP4) </h3></div></div> <div></div> </div> <p> La plupart des internautes rapatrient leur courrier électronique à partir de leur serveur de messagerie via le protocole POP3. Ce protocole présente de nombreux inconvénients : </p> <p> </p> <div class="orderedlist"><ol type="1"> <li><p> POP3 fait transiter le mot de passe en clair (des versions de POP et d'IMAP utilisant SSL ont été développées et un mécanisme d'authentification via un protocole de type défi-réponse est défini dans les RFC 2095 et 2195). </p></li> <li><p> POP3 est un protocole très bavard : le client doit tout d'abord demander un message. Puis le serveur lui envoie le message. Ensuite, le client demande la suppression du message transféré. Le serveur lui confirme la suppression. Une fois cela fait, le serveur est prêt à passer au message suivant. Cela nécessite donc 4 transactions par courrier électronique. </p></li> <li><p> POP3 transfère les courriers électroniques sans aucune compression, bien que les courriers électroniques soient hautement compressible (d'un facteur de 3,5). </p></li> </ol></div> <p> </p> <p> Vous pourriez compresser les connexions POP3 en redirigeant le port 110 de la machine locale (<tt class="literal">localhost:110</tt>) via une connexion compressée vers le serveur POP3 de votre fournisseur d'accès. Après cela, il suffirait de configurer votre client de messagerie pour qu'il se connecte sur l'adresse <tt class="literal">localhost:110</tt> afin de télécharger le courrier électronique. Ce qui permettrait de sécuriser et d'accélérer la connexion — mais le temps de téléchargement reste inhérent à la surcharge due au protocole POP3. </p> <p> Il est intéressant de substituer au protocole POP3 un protocole plus efficace. L'idée est de télécharger la boîte aux lettres toute entière en une seule fois sans avoir à supporter la surcharge due au protocole. De plus, il est intéressant de compresser cette connexion. L'outil approprié offrant ces deux caractéristiques est SCP. Vous pouvez télécharger votre fichier boîte aux lettres de la manière suivante : </p> <pre class="screen"> scp -C identifiant@serveur-de-messagerie:/var/spool/mail/identifiant \ /tmp/nouveau_courrier </pre> <p> Mais il y a un problème : que se passe-t-il si un nouveau courrier arrive sur le serveur pendant que vous téléchargez votre boîte aux lettres ? Le nouveau courrier serait perdu. On a plutôt intérêt à utiliser les commandes suivantes : </p> <pre class="screen"> ssh identifiant@serveur-de-messagerie \ "mv /var/spool/mail/identifiant /tmp/identifiant_a_rapatrier" scp -C identifiant@serveur-de-messagerie:/tmp/identifiant_a_rapatrier \ /tmp/nouveau_courrier </pre> <p> Un déplacement de fichier (mv) est une opération élémentaire, donc vous n'aurez pas de problème si vous recevez de nouveaux courriers durant l'exécution des commandes. Cependant si les répertoires /tmp et /var/spool/mail/ du serveur de messagerie ne sont pas sur le même disque, vous pourriez avoir des problèmes. Une solution est de créer un fichier de verrouillage sur le serveur avant d'exécuter la commande de déplacement : </p> <pre class="screen"> touch /var/spool/mail/identifiant.lock </pre> <p> Vous devrez le supprimer après coup. Une meilleure solution est de déplacer le fichier identifiant dans le même répertoire : </p> <pre class="screen"> ssh identifiant@serveur-de-messagerie \ "mv /var/spool/mail/identifiant /var/spool/mail/identifiant_a_rapatrier" </pre> <p> Après cela, vous pourrez utiliser formail à la place de procmail pour filtrer /tmp/nouveau_courrier dans les répertoires correspondants : </p> <pre class="screen"> formail -s procmail < /tmp/nouveau_courrier </pre> </div> <div class="section" lang="fr"> <div class="titlepage"> <div><div><h3 class="title"> <a name="id2450406"></a>3.2. Courrier sortant (SMTP) </h3></div></div> <div></div> </div> <p> Envoyez des courriers électroniques au travers de connexions SSH compressées et chiffrées, permet de : </p> <p> </p> <div class="itemizedlist"><ul type="disc"> <li><p> Économiser du trafic réseau. </p></li> <li><p> Sécuriser la connexion (cela n'a pas d'intérêt si le courrier électronique transite par des réseaux non sécurisés par la suite). </p></li> <li><p> Authentifier l'émetteur. Beaucoup de serveurs de messagerie n'autorisent pas le transit des courriers pour éviter les abus. Si vous envoyez un courrier au travers d'une connexion SSH, le serveur de messagerie distant (par exemple Sendmail ou MS Exchange) pensera être connecté localement, et acceptera donc de faire transiter le message. </p></li> </ul></div> <p> </p> <p> Si vous avez un accès SSH au serveur de messagerie, vous aurez besoin de la commande suivante : </p> <pre class="screen"> ssh -C -L2525:serveur_de_messagerie:25 identifiant@serveur_de_messagerie </pre> <p> Si vous n'avez pas d'accès SSH au serveur de messagerie, mais que vous avez un accès SSH à un serveur autorisé à utiliser le serveur de messagerie comme relais, la commande sera la suivante : </p> <pre class="screen"> ssh -C -L2525:serveur_de_messagerie:25 identifiant@autre_server </pre> <p> Après cela, vous pourrez configurer votre client de messagerie local (ou le serveur de messagerie, recherchez de la documentation sur les relais de messagerie (<span class="foreignphrase"><i class="foreignphrase">smarthosts</i></span>)) pour envoyer les messages sortants vers le port 2525 de la machine locale (<tt class="literal">localhost</tt>). </p> </div> </div> <div class="navfooter"> <hr> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"> <a accesskey="p" href="ar01s02.html">Précédent</a> </td> <td width="20%" align="center"><a accesskey="u" href="index.html">Niveau supérieur</a></td> <td width="40%" align="right"> <a accesskey="n" href="ar01s04.html">Suivant</a> </td> </tr> <tr> <td width="40%" align="left" valign="top">2. Compresser HTTP, FTP… </td> <td width="20%" align="center"><a accesskey="h" href="index.html">Sommaire</a></td> <td width="40%" align="right" valign="top"> 4. Notes sur les performances </td> </tr> </table> </div> </body> </html>