Le projet Sendmail a été lancé en 1979 par Eric Allman. Il a longtemps constitué le serveur SMTP de référence du monde du libre et continue à être extrêmement répandu. Pourtant plusieurs problèmes demeurent :
- C'est l'archétype du logiciel gros et complexe ;
- Il a connu de nombreuses failles de sécurité critiques ;
- Son fichier de configuration est difficilement compréhensible ;
- Ses performances ne sont pas optimales.
Pour remédier à ces faiblesses, une réécriture majeure est prévue - au point que l'on peut se demander si il est opportun de conserver le nom du programme.
L'idée générale est de fragmenter au maximum le programme (qui est actuellement assez monolithique) pour se diriger vers une architecture légère et modulaire regroupant plusieurs processus coopérants. Le fichier de configuration utilisera une syntaxe proche du C. Le design général de SendmailX :
- Le queue manager est le coeur de SendmailX : son rôle est de gérer les messages et de les déplacer dans le système, de prendre les décisions de délivrance, etc.
- Le SMTP server accepte les mails entrants venant du réseau et les envoie vers le queue manager
- Le SMTP client passe les mails aux autres systèmes pour réception.
- Le address resolver est chargé de comprendre et de réécrire l'adresse du destinataire ; il s'occupe également du filtrage général et des listes noires
- Le master control program contrôle tous les autres processus et gère les redémarrages et les contrôles après erreurs (il est dérivé du programme inetd utilisé dans les systèmes BSD)
Une documentation complète est disponible sur le site et il existe également un descriptif extrêmement détaillé du futur logiciel (60 pages pour l'architecture et 100 pages pour la description fonctionnelle).
Une version pré-alpha de SendmailX est téléchargeable sur le site.
(*) Un MTA est un logiciel différent de ceux utilisés pour lire le courrier (comme Evolution, Kmail ou Thunderbird) : ces programmes sont des Mail User Agent (MUA).
Commentaires :
Parmi les divers commentaires postés sur Linux Weekly News beaucoup insistent sur les alternatives à Sendmail qui sont déjà sécurisés et modulaires (Postfix ou Qmail).
D'autres sont en désaccord avec le fait d'utiliser le C pour coder le programme et préféreraient un langage de plus haut niveau (comme Postmaster qui utilise Haskell).
Le sentiment général qui se dégage est que cette réécriture arrive beaucoup trop tard et qu'un grand nombre de gens utilise déjà un MTA plus moderne et plus efficace que Sendmail.
PS : la licence de SendmailX va également changer par rapport à celle de Sendmail 8 mais elle reste libre.
Aller plus loin
- Article de LWN (0 clic)
- La documentation complète (1 clic)
- La page des téléchargements (4 clics)
# 1/4 de siecle
Posté par Jiel (site web personnel) . Évalué à 10.
# prototype ?
Posté par Christophe Fergeau . Évalué à 10.
c'est pas plutôt archétype ?
[^] # pallier, verbe transitif
Posté par symoon . Évalué à 10.
-> Pour pallier ces faiblesses
[^] # Re: pallier, verbe transitif
Posté par Olivier Jeannet . Évalué à 10.
En effet, et j'ajoute que le sens de pallier n'est pas le même que remédier, c'est à dire qu'on pallie un handicap mais on ne le guérit pas (cf aussi les "soins palliatifs" pour les malades incurables).
Ici la phrase devrait être : « Pour remédier à ces faiblesses, [...] » .
[^] # Re: pallier, verbe transitif
Posté par poil oq . Évalué à 2.
explication : si on remplace sendmail par postfix au lieu de sendmailX, on pallie les faiblesses de sendmail sans y remédier. La phrase originale sans la faute était donc plutôt correcte à mes yeux.
[^] # Re: pallier, verbe transitif
Posté par Olivier Jeannet . Évalué à 1.
L'original continuera à exister, mais comme on utilisera le nouveau sendmail au lieu de l'ancien, ce sera un remède et non un palliatif. Un palliatif en informatique c'est plutôt de faire une correction qui tient à peu près la route sans tout résoudre.
si on remplace sendmail par postfix au lieu de sendmailX, on pallie les faiblesses de sendmail sans y remédier.
Si on remplace sendmail par postfix, on ne pallie pas non plus les faiblesses de sendmail, vu qu'on n'apporte aucun changement à ce dernier.
# qmail ?
Posté par Rolland Dudemaine . Évalué à 5.
Hmm, ca me fait vaguement penser a un des principaux concurrents de sendmail, qmail, qui est architecture comme ca depuis le depart et eprouve ...
[^] # Re: qmail ? => et Postfix
Posté par Sébastien Munch . Évalué à -1.
< troll > Et puis Postfix, au moins, c'est vraiment libre ! < / troll >
[^] # Re: qmail ? => et Postfix
Posté par j . Évalué à 7.
http://www.netsys.com/openbsd-misc/2003/06/msg00698.html(...)
Sendmail 8 est vraiment libre.
[^] # Re: qmail ? => et Postfix
Posté par Sébastien Munch . Évalué à 4.
http://qmail.zoo-gate.fi/not-open-source.html(...)
A choisir entre la licence de Postfix et celle de Qmail... pour moi, y'a pas photo.
[^] # Re: qmail ? => et Postfix
Posté par Rolland Dudemaine . Évalué à 1.
Donc, qmail, open-source mais pas free software.
[^] # Re: qmail ? => et Postfix
Posté par Erwan . Évalué à 4.
Alors une bonne fois pour toutes, on va sur le site de l'OSI, on regarde la definition d'Open Source... Et on joue au jeu des 7 erreurs avec la definition de Free Software sur la site de la FSF.
Resultat: c'est bonnet blanc et blanc bonnet. La seule difference c'est l'habillage, en gros les gens de l'OSI disent "si vous faites ca vous allez faire de meilleurs logiciels" tandis que la FSF dit "si vous faites ca vous serez plus libres".
[^] # Re: qmail ? => et Postfix
Posté par Philippe F (site web personnel) . Évalué à 2.
Pour les naifs:
- Open Source : logiciel dont on peut lire le code, conditions non precisees (NDA de preference, acces via le web a du code non compilable ...)
- Free Software : logiciel gratuit
Pour les geeks:
- Open Source : licence approuvee par l'OSI
- Free Software : licence approuvee par la FSF, et encore ...
[^] # Re: qmail ? => et Postfix
Posté par Sébastien Munch . Évalué à 1.
Putain c'est chiant tout ça :)
[^] # Re: qmail ? => et Postfix
Posté par Erwan . Évalué à 2.
Le mieux ca reste quand meme de n'utiliser "open source" meme avec des minuscules que pour le truc de l'OSI, surtout quand on parle francais. Sinon on est surs de pas se comprendre.
[^] # Re: qmail ? => et Postfix
Posté par Manuel Menal . Évalué à 6.
Chacun sait que la différence fondamentale entre Open Source et Free Software n'est pas légale, n'est pas formelle, mais que c'est une divergence de vision. Ce sont deux mouvements avec des moyens communs, des buts intermédiaires communs, mais des visions et des objectifs finaux différents. Les partisans de l'Open Source considèrent l'accès au code source et toutes les conditions posées par l'OSD comme une "méthode de développement". C'est une vision pragmatique, de gens qui pensent que le développement collaboratif à l'Open Source permet de développer des logiciels plus performants, plus sûrs, plus innovants, tout ça. La vision du Logiciel Libre, chacun la connaît, c'est celle qui met en avant le principe de liberté, celle qui met en avant les valeurs de partage, d'enrichissement, de libre accès à la connaissance, et qui pense que les logiciels libres contribuent, à leur niveau, à servir ces valeurs.
Ca n'est certainement pas une question d'habillage. Les objectifs, la vision, ça n'est pas juste du blabla pour aller agrémenter une définition "formelle". C'est au contraire ce qui donne son sens à la définition, sans ça elle n'est rien.
D'autant plus qu'en découlent des différences dans les définitions, légères, mais notables. Par exemple, le fameux "privacy right" qui spécifie qu'une licence ne peut obliger l'utilisateur à rendre publique ses modifications. Celà découle du fait que le logiciel libre est fait pour protéger les droits des utilisateurs, tandis que beaucoup de licences purement Open Source vont au contraire l'obliger pour contribuer à un développement plus dans "l'esprit Open Source". C'est en particulier le cas de l'APSL version 1, la licence de Darwin jusqu'il y a peu.
Et je ne pense pas que Richard Stallman ait dit que l'OpenSource c'était "pas bien". Richard Stallman souhaite que les gens migrent vers des solutions libres ou Open Source pour des raisons idéologiques, parce que c'est Libre. Du coup, il préfère effectivement qu'on utilise le terme logiciel libre à Open Source, pour ça. Il y a un autre aspect, c'est la réutilisation à tout va du terme OpenSource qui a conduit quelqu'un comme Bruce Perens à déclarer qu'il préfèrait Free Software à Open Source.
Ca n'est pas blanc bonnet et bonnet blanc, ce sont deux approches complémentaires, mais bien radicalement différentes. Je pense que la précision méritait d'être faite.
[^] # Re: qmail ? => et Postfix
Posté par nullisimo . Évalué à 1.
Faut en profiter, sendmail X a aussi droit a une nouvelle licence...
[^] # Si, libre.
Posté par Arthur Accroc . Évalué à 1.
Il faut arrêter le délire !
La licence de Postfix (IBM Public License Version 1.0) est libre selon la F.S.F. (http://www.gnu.org/licenses/license-list.html(...)).
Au delà, elle n'est ni compatible GPL ni parfaite, mais aller jusqu'à la taxer de non libre, c'est de la désinformation ou de l'intégrisme (cela dit, il y a bien des intégristes de la BSD pour taxer la GPL de non libre et l'inverse aussi !).
http://www.netsys.com/openbsd-misc/2003/06/msg00698.html(...)
Oui, eh bien cet article développe le fait que la licence pourrait avoir de graves effets de bord judiciaires pour ceux qui vendent Postfix, mais pas particulièrement pour ceux qui l'utilisent, et il ne va pas jusqu'à dire que Postfix ne serait pas libre.
Sendmail 8 est vraiment libre.
Exim est "vraiment libre", et même GPL, mais de plus configurable par un être humain, même s'il partage avec Senmail 8 la conception monolithique moins sûre et plus lourde.
Quand à Sendmail X, wait and see, notamment pour la licence...
Au niveau de la configuration, ça sera sûrement moins calamiteux que les versions précédentes puisqu'ils abandonnent l'ancienne syntaxe (je parle de sendmail.cf; de toute façon, quand on fait quelque chose d'un peu pointu, même si on réussi à l'exprimer avec les macros M4, le fichier sendmail.cf produit fait autre chose que ce qu'on avait demandé...).
PS : Alors, à ceux qui disent que Sendmail 8 est le top parce qu'ils font partie des 10 personnes (ou extra-terrestres ?) au monde à en maîtriser vraiment la configuration, je dis "Les temps sont durs, les gars...". ;-)
« Le fascisme c’est la gangrène, à Santiago comme à Paris. » — Renaud, Hexagone
# Améliorer plutôt les alternatives
Posté par Fnor . Évalué à 6.
Tout à fait d'accord. Si c'est pour réécrire Postfix, je vois vraiment pas l'intérêt. Mieux voudrait utiliser le temps et les idées des (re)développeur de Sendmail pour encore améliorer Postfix et Qmail.
Il faut reconnaître que Sendmail a eu son heure de gloire et qu'il ne l'a pas volé. Merci Sendmail, tu as bien mérité ta retraire !! :-)
[^] # Re: Améliorer plutôt les alternatives
Posté par Guillaume Knispel . Évalué à 7.
[^] # Re: Améliorer plutôt les alternatives
Posté par reno . Évalué à 2.
Je ne vois pas en quoi Sendmail_X a un effort de conception supérieur aux autres, mis à part une grosse doc..
[^] # Re: Améliorer plutôt les alternatives
Posté par Bernez . Évalué à 7.
Postfix et Exim plutôt. Autant se concentrer sur les MTA libres.
[^] # Re: Améliorer plutôt les alternatives
Posté par matli . Évalué à 8.
Et bien non, je ne suis pas d'accord, peut être parce que je suis un utilisateur très satisfait de Sendmail. Et je ne pense pas que Sendmail X sera une réécriture d'Exim ou de Postfix. N'oublions pas que les p'tits gars qui bossent sur Sendmail ne sont pas des novices en matières de messagerie, de MTA,... et qu'ils ont surement pleins d'autres idées que cette simple modularisation.
Et n'oublions pas qu'avec Sendmail vient Milter, qui est une API permettant d'écrire des filtres dans son langage préféré de façon plus efficace qu'enième relais SMTP en sandwich ou un pipe sur un process. Je ne connais pas d'équivalent sur d'autres MTA (mais je ne connais pas tout!)
Vive Sendmail X, et surtout vive la diversité qui est une des forces du libre!
[^] # Re: Améliorer plutôt les alternatives
Posté par Paul . Évalué à 5.
Je me demande bien pourquoi Exim n'est pas aussi populaire que d'autres comme qmail ou postfix.
[^] # Re: Améliorer plutôt les alternatives
Posté par Bernez . Évalué à 5.
Je ne comprends pas non plus. Jusqu'à preuve du contraire, Exim n'a rien à envier aux autres MTAs. Je serais curieux de savoir pourquoi Debian est la seule distro à proposer Exim par défaut. À mon avis les arguments sont du type "les autres sont plus connus donc voilà".
[^] # Re: Améliorer plutôt les alternatives
Posté par Bernez . Évalué à 2.
[^] # Re: Améliorer plutôt les alternatives
Posté par jojo2002 . Évalué à 3.
[^] # Re: Améliorer plutôt les alternatives
Posté par Aurélien Bompard (site web personnel) . Évalué à 9.
Améliorer qmail ??
Si c'est pour faire encore 30 patches dispersés sur internet, la moitié sans évolution prévue et l'autre motié reprenant la première pour en corriger les bugs, le tout étant mutuellement incompatible, non merci.
\end{troll}
Désolé mais j'ai pas pu m'en empêcher. C'est inutile mais ça fait du bien, merci de faire disparaître ce post.
[^] # Re: Améliorer plutôt les alternatives
Posté par jusob . Évalué à 1.
# Capillotractage
Posté par Olivier G. . Évalué à 0.
De plus, "pallier" signifie "atténuer un défaut" et non y remédier... À moins qu'il ne soit prévu que Sendmail ne reste ce programme "usé, vieilli, fatigué" (comme disait Lionel J) que l'on connait ;)
Mes 0,02 EUR
[^] # Re: Capillotractage
Posté par Olivier G. . Évalué à 0.
# ça sent mauvais dès le début.
Posté par patrick_g (site web personnel) . Évalué à 4.
Currently access to the sendmail X design document is restricted to those who are really willing to provide feedback.
ç'est un peu limite quand on veut tenter d'attirer des devs je trouve....
[^] # Re: ça sent mauvais dès le début.
Posté par Gniarf . Évalué à -2.
[^] # Re: ça sent mauvais dès le début.
Posté par moudj . Évalué à 1.
hop -> [ ]
[^] # Re: ça sent mauvais dès le début.
Posté par neerd . Évalué à -1.
(parti aussi ... [])
[^] # Re: ça sent mauvais dès le début.
Posté par totof2000 . Évalué à 0.
# Langage de configuration en C
Posté par Philippe F (site web personnel) . Évalué à 9.
Pourquoi ne pas ecrire la configuration en assembleur ? Emacs a prouve aussi qu'avec sa config en lisp, c'est _difficile_ de modifier des options et de changer des trucs pour les debutants. Evidemment, c'est un regal pour les experts.
Je vois pas en quoi le C se prete bien a un langage de configuration. Ca veut dire qu'ils vont embarquer un mini-compilateur ?
A mon sens, il ne doit y avoir que deux types de langages de configuration:
- pas trop complexe : paires de cle / valeurs, eventuellement organisees en section (.ini sous windows, .desktop sous linux, fichiers de config sous KDE, lilo.conf, ....)
- complexe : xml
xml est assez lourd me se prete bien justement a des configurations complexes. Il est bien maitrise par tout le monde, c'est facile d'ecrire un frontend, de generer des config, de les verifier. Mais il ne faut l'utiliser que quand ca devient critique, avec plus de 100 cles et des hierarchies de config qui peuvent se customiser ou se surcharger.
[^] # Re: Langage de configuration en C
Posté par matli . Évalué à 9.
Il faut donc ici un vrai langage de configuration, ils ont choisi le C, il faut voir ce que cela donne.
Petite disgression historique: Sendmail est apparu à une éopque où le format des adresses mail était tout sauf standardisé. Sendmail était alors une sorte de middleware qui tentait au maximum d'interpréter des adresses d'un monde pour les délivrer à l'autre monde. Mais comme ça bougeait beaucoup, ils ont décidé de "sortir" cette phase de parsing du code en lui-même et de le placer directement dans le fichier de config, avec un mode d'écriture qui devait être le plus efficace, donc le plus bref possible. C'est ainsi que sont nées ces portions de fichier de config a priori incompréhensibles pour le profane, mais qu'il est en général tout à fait inutile de vouloir modifier, même s'il existe des "hooks" pour introduire ses propres règles.
Du coup, une config Sendmail, c'est un petit fichier de macro m4 qui mesure moins de 10 lignes pour la majeure partie des besoins.
[^] # Re: Langage de configuration en C
Posté par Erwan . Évalué à 0.
[^] # Re: Langage de configuration en C
Posté par farib . Évalué à 4.
Je confirme. Au début, c'est indigeste et un peu difficile, mais si on y passe le minimum de temps, ça devient parfaitement clair
[^] # Re: Langage de configuration en C
Posté par Philippe F (site web personnel) . Évalué à 1.
Si tu dois juste faire un petit langage, le xml convient tres bien et a l'avantage d'etre facile a assimiler.
Le risque c'est evidemment de developper un langage qui prend plusieurs jours a apprendre, et donc de ne rendre les fichiers de config comprehensibles que pour ceux qui maitrisent ledit langage.
[^] # Re: Langage de configuration en C
Posté par Laurent PELLISSIER . Évalué à 2.
[^] # Re: Langage de configuration en C
Posté par Thibaut Maquet . Évalué à 2.
ce n'est pas tout à fait le cas: en fait, Sendmail crée un thread sur chaque connexion entrante, ce qui est nettement moins couteux qu'un fork. La configuration est lue une bonne fois pour toute au démarrage du MTA, après, vous avez la possibilité de faire relire à Sendmail sa configuration en lui envoyant un signal HUP. Pour le reste, Sendmail s'appuie essentiellement sur des bases hash (Type Berkeley) pour l'ensemble de toutes ses opérations. Quand au sinistre sendmail.cf, Eric Allman a toujours estimé que ce fichier devait avant tout être interprété par un système informatique plutôt que par une personne, ceci explique le très haut degrés d'incompréhension de ce fichier.
Cordialement
Thibaut Maquet
[^] # Re: Langage de configuration en C
Posté par Modo Kazy . Évalué à 1.
> A mon sens, il ne doit y avoir que deux types de langages de
> configuration:
> - pas trop complexe : paires de cle / valeurs, eventuellement
> organisees en section (.ini sous windows, .desktop sous linux,
> fichiers de config sous KDE, lilo.conf, ....)
> - complexe : xml
Effectivement ça tient la route.
J'ai bien peur que l'usage du C, même s'il est un langage connu, ne rende pas moins complexe l'écriture de la configuration.
[^] # Re: Langage de configuration en C
Posté par Fabien Penso (site web personnel, Mastodon) . Évalué à 4.
Vous auriez préferé une syntaxe proche de scheme ?
# Numérotation
Posté par Jllc . Évalué à 2.
J'ai déjà remarqué la même chose avec Bind, qui (je crois) a sauté quelques numéros de versions.
A moins que ce ne soit des branches de développement tombées à l'eau ?
[^] # Re: Numérotation
Posté par LeRat . Évalué à 1.
En fait j'en sais rien. Moinssez.
[^] # Re: Numérotation
Posté par Laurent PELLISSIER . Évalué à -1.
[^] # Re: Numérotation
Posté par LeRat . Évalué à -1.
[^] # Re: Numérotation
Posté par Manuel Menal . Évalué à 2.
C'est un renommage tout à fait légitime, de la même façon que MacOS est passé de la version 9 à la version X 10.0, avec un X qui correspond que moyennement à 10, puisque sur les boîtes Panther par exemple, y a marqué Mac OS X 10.3 ;-) C'est plus un X symbolique, d'autant plus que c'est le X de Unix dans le cas de MacOS X.
# c'est postfix
Posté par billy . Évalué à -1.
master process
smtpd
smtp
bienvenue dans postfix, pourquoi réecrire sendmail.
[^] # Re: c'est postfix
Posté par schyzomarijks . Évalué à 3.
- Parce des gens en ont envie.
- Parce que lorsqu'on aura trouvé une faille dans l'un de ces logiciels, l'ensemble des serveurs ne seront pas vulnérable d'un coup.
- Parce que la dversité c'est bien.
Bref, parce qu'on est libre de le faire.
# Mon commentaire
Posté par Thibaut Maquet . Évalué à 2.
>qu'un grand nombre de gens utilise déjà un MTA plus moderne et plus efficace que Sendmail.
J'apporte un démenti à ce que vous dites. Il y a de cela un an (certes), j'ai écris un petit programme en C qui tire au hasard des adresses IP, vérifie si la machine héberge un serveur SMTP et tente d'identifier le MTA.
Le résultat est sans appel, c'est là:
http://www.pagasa.net/mail/sondage/stat.html(...)
Cordialement
Thibaut Maquet
[^] # Re: Mon commentaire
Posté par lezardbreton . Évalué à 2.
[^] # Re: Mon commentaire
Posté par Thibaut Maquet . Évalué à 1.
http://mailsurvey.os3.nl/smtpscanner_results_aut04.html(...)
Cordialement
Thibaut Maquet
# Fragmenté...
Posté par Sidoine de Wispelaere . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.