Exim

Un article de Wikipédia, l'encyclopédie libre.

Exim
Développeur Philip Hazel
Dernière version 4.67 (le 17 avril 2007)
Environnement Multi-plate-forme
Type Serveur de messagerie électronique
Licence GNU GPL
Site web www.exim.org

Exim est un serveur de messagerie électronique (ou Mail Transfer Agent en anglais) utilisé sur de nombreux systèmes de type UNIX. La première version a été écrite en 1995 par Philip Hazel pour le service informatique de l'Université de Cambridge: le nom signifiait alors EXperimental Internet Mailer (gestionnaire de mail internet expérimental). Basé au départ sur smail, il a largement évolué pour devenir l'un des MTA les plus flexibles et robustes.

Exim, comme Smail, suit le modèle selon lequel a été conçu sendmail, où un programme unique contrôle toutes les fonctionnalités du MTA. Ce design monolithique est généralement considéré comme structurellement non sécurisé à cause du manque de séparation des composants individuels du système. Néanmoins, l'historique de la sécurité d'Exim est assez bon, avec seulement quelques problèmes diagnostiqués au fil des ans. Il n'y a pas eu de problème sérieux depuis la sortie de la version 4 ; ce qui est probablement du à la prise en compte de la sécurité dès le début de la conception de cette version refaite à partir de zéro. (car les problèmes de sécurité de sendmail étaient connus depuis longtemps).

Exim est hautement configurable, et donc possède des fonctionnalités manquantes dans les autres serveurs de mail. Il a toujours eu des fonctions substantielles de gestion de la politique de flux des courriers, permettant à l'administrateur de décider qui envoie ou fait passer du mail à travers le système. Dans la version 4.x, ceci est devenu plus mature avec un système d'Access Control Lists qui autorise un contrôle très pointu et flexible. L'intégration d'un cadre pour le filtrage du contenu, apparu dans les versions 4.x, autorise l'intégration plus facile de mesures anti-spam et anti-virus, ce qui rend Exim adapté au respect de diverses politiques de mail.

La configuration est faite via plusieurs fichiers de configuration, qui doivent inclure une section principale avec des réglages généraux, ainsi que des sections optionelles :

  • Access Control List (ACL), qui définit le comportement durant la session SMTP ;
  • router, qui inclut certain éléments de traitement des adresses (la logique de livraison) ;
  • transport, inclus les éléments qui envoient les messages vers la destination ;
  • retry, qui définit la politique de renvoi des messages qui n'ont pas pu être envoyés du premier coup ;
  • rewrite, définit si et comment le système de mail réécrit les adresses des messages qu'il reçoit ;
  • authentification, avec les réglages du SMTP AUTH.

Exim a été déployé dans des environnements très chargés, traitant souvent plusieurs milliers de messages à l'heure efficacement. Il a été conçu pour délivrer les messages tout de suite, sans les mettre en file d'attente. Cependant, les performances de sa gestion de la file d'attente sont relativement mauvaises quand celle-ci devient grande, ce qui arrive régulièrement sur des sites à haut débit. À l'inverse de qmail, postfix et zmailer, exim n'a pas de gestion de queue centralisée (un équivalent de qmail-send, qmgr, ou du scheduler des autres programmes). Il n'y a donc pas de gestion de load balencing centralisée, ni de la file d'attente (ce qui mène à des temps de gestion du même message démesurés) ni de la concurrence des transports de mail (ce qui mène à un problème dit thundering herd, quand de multiples messages destinés à un même serveur sont envoyés en même temps). D'après Phillipe Hazel :

« Le fond du problème est que Exim ne se comporte pas particulièrement bien dans des environnements où la file d'attente devient très longue. Il n'a jamais été conçu pour ça, et les envois de mail à partir de la file d'attente ont toujours été censés être l'exception plutôt que la norme. »

En 1997, Philip Hazel remplaça la bibliothèque des expressions régulières POSIX écrite par Henry Spencer, par une nouvelle bibliothèque, écrite par lui-même, et appelée PCRE (Perl Compatible Regular Expression : expressions régulières compatibles Perl). Les expressions régulières de Perl sont beaucoup plus puissantes que celles de POSIX et autres dérivés, et la PCRE est devenue populaire dans d'autres applications que Exim (dont son concurrent postfix).

Exim est un logiciel libre distribué sous les termes de la licence GNU GPL, il a été porté sur plusieurs systèmes Unix, ainsi que sur Microsoft Windows en utilisant la couche d'émulation cygwin. C'est le MTA par défaut de Debian GNU/Linux.