Postfix (logiciel) - Postfix (software)

suffixe
Le logo Postfix
Auteur(s) original(aux) Wietse Venema au centre de recherche IBM Thomas J. Watson
Développeur(s) Venema et bien d'autres
Première version 14 décembre 1998 ; il y a 22 ans ( 1998-12-14 )
Version stable
3.6.2 / 24 juillet 2021 ; il y a 2 mois ( 2021-07-24 )
Version préliminaire
3.7-20211002 / 2 octobre 2021 ; il y a 16 jours ( 2021-10-02 )
Dépôt
Écrit en C
Système opérateur Multiplateforme
Taper Agent de transfert de courrier
Licence Licence publique IBM ou licence publique Eclipse
Site Internet www .postfix .org

Postfix est un agent de transfert de courrier (MTA) gratuit et open source qui achemine et distribue le courrier électronique .

Il est publié sous IBM Public License 1.0 qui est une licence de logiciel libre . Alternativement, à partir de la version 3.2.5, il est disponible sous la licence publique Eclipse 2.0 au choix de l'utilisateur.

Écrit à l'origine en 1997 par Wietse Venema au IBM Thomas J. Watson Research Center à New York , et publié pour la première fois en décembre 1998, Postfix continue à partir de 2021 d'être activement développé par son créateur et d'autres contributeurs. Le logiciel est également connu sous ses anciens noms VMailer et IBM Secure Mailer .

En mars 2021, une étude réalisée par E-Soft, Inc., environ 32 % des serveurs de messagerie accessibles au public sur Internet exécutaient Postfix, ce qui en fait le deuxième serveur de messagerie le plus populaire derrière Exim .

Déploiement typique

En tant que serveur SMTP , Postfix implémente une première couche de défense contre les spambots et les malwares . Les administrateurs peuvent combiner Postfix avec d'autres logiciels qui fournissent un filtrage anti-spam/virus (par exemple, Amavisd-new ), un accès au magasin de messages (par exemple, Dovecot ) ou des politiques d'accès SMTP complexes (par exemple, postfwd , milter-regex , policyd- poids ou liste grise ).

En tant que client SMTP , Postfix implémente un moteur de livraison de courrier parallélisé hautes performances. Postfix est souvent associé à un logiciel de liste de diffusion (comme Mailman ).

Systèmes d'exploitation

Postfix s'exécute (ou s'est exécuté) sur AIX , BSD , HP-UX , Linux , macOS , Solaris et, de manière générale, sur tous les systèmes d' exploitation de type Unix livrés avec un compilateur C et offrant un environnement de développement POSIX standard . Il s'agit du MTA par défaut pour les systèmes d'exploitation macOS , NetBSD , RedHat / CentOS et Ubuntu .

Architecture

Postfix consiste en une combinaison de programmes serveur qui s'exécutent en arrière-plan et de programmes clients qui sont invoqués par des programmes utilisateur ou par des administrateurs système.

Le noyau de Postfix se compose de plusieurs dizaines de programmes serveur qui s'exécutent en arrière-plan, chacun gérant un aspect spécifique de la livraison des e-mails. Les exemples sont le serveur SMTP , le planificateur , le réscripteur d'adresses et le serveur de livraison local. À des fins de contrôle des dommages, la plupart des programmes serveur s'exécutent avec des privilèges réduits fixes et se terminent volontairement après avoir traité un nombre limité de demandes. Pour conserver les ressources système, la plupart des programmes serveur se terminent lorsqu'ils deviennent inactifs.

Les programmes clients s'exécutent en dehors du noyau de Postfix. Ils interagissent avec les programmes du serveur Postfix via les instructions de livraison du courrier dans le fichier ~/.forward de l' utilisateur, et via de petits programmes "gate" pour soumettre du courrier ou demander des informations sur l'état de la file d'attente.

D'autres programmes fournissent un support administratif pour démarrer ou arrêter Postfix, demander des informations sur l'état, manipuler la file d'attente ou examiner ou mettre à jour ses fichiers de configuration.

Postfix architecture.svg
Ellipses jaunes
L'un des nombreux démons de Postfix servant exactement un seul objectif. Cette division en de nombreux petits logiciels est considérée comme l'une des raisons pour lesquelles Postfix est sécurisé et stable.
Boîtes bleues
Les cases bleues représentent ce qu'on appelle des tables de recherche . Une table de recherche se compose de deux colonnes (clé et valeur) contenant des informations utilisées pour le contrôle d'accès, le routage des e-mails, etc.
Boîtes jaunes
Les cases jaunes sont soit des files d'attente de courrier, soit des fichiers. Dans les deux cas, les e-mails sont stockés sur un support persistant (par exemple, un disque dur).
nuages ​​blancs
Les nuages ​​représentent les points d'entrée ou de sortie des e-mails de Postfix. Par exemple, smtpd reçoit le courrier d'autres serveurs de messagerie ou utilisateurs tandis que smtp relaie le courrier vers d'autres MTA.

Mise en œuvre

L'implémentation de Postfix utilise des sous-ensembles sûrs du langage C et de l' API du système POSIX . Ces sous-ensembles sont enfouis sous une couche d'abstraction qui contient environ 50% de tout le code source de Postfix, et qui fournit la base sur laquelle tous les programmes Postfix sont construits. Par exemple, la primitive "vstring" rend le code de Postfix résistant aux attaques par débordement de tampon , et la primitive "safe open" rend le code de Postfix résistant aux attaques de condition de concurrence sur les systèmes qui implémentent l' API du système de fichiers POSIX . Cette couche d'abstraction n'affecte pas la résistance aux attaques du code non Postfix, tel que le code dans les bibliothèques système ou dans les bibliothèques tierces.

Robustesse

Conceptuellement, Postfix gère des pipelines de processus qui transfèrent la responsabilité de la livraison des messages et de la notification d'erreur d'un processus à l'autre. Toutes les informations d'« état » des messages et des notifications sont conservées dans le système de fichiers. Les processus d'un pipeline fonctionnent pour la plupart sans contrôle centralisé ; cette relative autonomie simplifie la reprise sur erreur. Lorsqu'un processus échoue avant d'avoir terminé sa partie d'une transaction de fichier ou de protocole, son prédécesseur dans le pipeline recule et réessaye la demande ultérieurement, et son successeur dans le pipeline ignore le travail inachevé. De nombreux démons Postfix peuvent simplement « mourir » lorsqu'ils rencontrent un problème ; ils sont automatiquement redémarrés à l'arrivée de la prochaine demande de service. Cette approche rend Postfix hautement résilient, tant que le système d'exploitation ou le matériel ne tombe pas en panne de manière catastrophique.

Performance

Une seule instance de Postfix a été cadencée à environ 300 livraisons de messages/seconde sur Internet, fonctionnant sur du matériel de base (un système Dell 1850 vintage 2003 avec un contrôleur MegaRAID alimenté par batterie et deux disques SCSI ). Ce taux de livraison est un ordre de grandeur inférieur à la limite "intrinsèque" de 2500 livraisons de messages/seconde qui a été atteinte avec la file d'attente de courrier sur un disque RAM lors de la livraison au transport " rejet " (avec un système Opteron dual-core en 2007) .

Les systèmes de messagerie tels que Postfix et Qmail atteignent des performances élevées en distribuant le courrier dans des sessions parallèles. Avec des systèmes de messagerie tels que Sendmail et Exim qui établissent une connexion à la fois, des performances élevées peuvent être atteintes en soumettant des lots de courrier limités en parallèle, de sorte que chaque lot soit livré par un processus différent. Postfix et Qmail nécessitent une soumission parallèle dans différentes instances MTA une fois qu'elles atteignent leur limite de performance intrinsèque, ou les limites de performance du matériel ou du système d'exploitation.

Les tarifs de livraison cités ci-dessus sont largement théoriques. Avec la livraison de courrier en nombre, le taux de livraison réel est principalement déterminé par les politiques de réception du courrier du destinataire et par la réputation de l'expéditeur.

Configuration de base

Le fichier main.cf stocke les paramètres de configuration Postfix spécifiques au site tandis que master.cf définit les processus démons. Le didacticiel de configuration de base de Postfix couvre les paramètres de base que chaque site doit prendre en compte, et le document d' exemples de configuration standard de Postfix traite des paramètres de configuration pour quelques environnements courants. Le document Postfix Address Rewriting couvre la réécriture d'adresses et l'acheminement du courrier. La collection complète de la documentation est sur Postfix Documentation

Des implémentations plus complexes de Postfix peuvent inclure : l'intégration avec d'autres applications telles que SpamAssassin ; prise en charge de plusieurs noms de domaine virtuels - et utilisez des bases de données telles que MySQL pour contrôler des configurations complexes.

Historique des versions

Version Date de sortie Changements importants
Majeur Mineur
Ancienne version, plus maintenue : 2.0
Ancienne version, plus maintenue : 2.1
Ancienne version, plus maintenue : 2.2
Ancienne version, plus maintenue : 2.3
Ancienne version, plus maintenue : 2.4
Ancienne version, plus maintenue : 2.5 2.5.0 24 janvier 2008
2.5.8 28 août 2009 Libération retirée.
2.5.17 6 février 2012 EOL 2.5
Ancienne version, plus maintenue : 2.6 2.6.0 12 mai 2009
2.6.3 2 août 2009 Sortie inopinée.
2.6.4 26 août 2009 Libération retirée.
2.6.19 4 février 2013 EOL 2.6
Ancienne version, plus maintenue : 2.7 2.7.0 13 février 2010
2.7.16 16 janvier 2014 EOL 2.7
Ancienne version, plus maintenue : 2.8 2.8.0 20 janvier 2011 Introduction du démon postscreen qui se trouve avant le suffixe principal et agit comme un bloqueur de zombies. Également : liste blanche DNS, prise en charge de SQLite
2.8.1 22 février 2011
2.8.2 21 mars 2011
2.8.3 9 mai 2011
2.8.4 7 juillet 2011
2.8.5 3 septembre 2011
2.8.6 24 octobre 2011
2.8.7 7 novembre 2011
2.8.8 1 février 2012
2.8.9 5 mars 2012
2.8.10 24 avril 2012
2.8.11 20 mai 2012
2.8.12 1er août 2012
2.8.13 13 décembre 2012
2.8.14 4 février 2013
2.8.15 22 juin 2013
2.8.16 5 septembre 2013
2.8.17 16 janvier 2014
2.8.18 13 octobre 2014
2.8.19 19 octobre 2014
2.8.20 8 février 2015 EOL 2.8
Ancienne version, plus maintenue : 2.9 2.9.0 1 février 2012 Prise en charge de Memcache, dégradation progressive
2.9.1 18 février 2012
2.9.2 24 avril 2012
2.9.3 20 mai 2012
2.9.4 1er août 2012
2.9.5 13 décembre 2012
2.9.6 4 février 2013
2.9.7 22 juin 2013
2.9.8 5 septembre 2013
2.9.9 16 janvier 2014
2.9.10 13 octobre 2014
2.9.11 19 octobre 2014
2.9.12 8 février 2015
2.9.13 12 avril 2015
2.9.14 20 juillet 2015
2.9.15 10 octobre 2015 EOL 2.9
Ancienne version, plus maintenue : 2.10 2.10.0 11 février 2013 Prise en charge de TLSv1.1 et TLSv1.2
2.10.1 22 juin 2013
2.10.2 5 septembre 2013
2.10.3 16 janvier 2014
2.10.4 13 octobre 2014
2.10.5 19 octobre 2014
2.10.6 8 février 2015
2.10.7 12 avril 2015
2.10.8 20 juillet 2015
2.10.9 10 octobre 2015
2.10.10 15 mai 2016 EOL 2.10
Ancienne version, plus maintenue : 2.11 2.11.0 15 janvier 2014 Prise en charge de DANE
2.11.1 7 mai 2014
2.11.2 13 octobre 2014
2.11.3 19 octobre 2014
2.11.4 8 février 2015
2.11.5 12 avril 2015
2.11.6 20 juillet 2015
2.11.7 10 octobre 2015
2.11.8 15 mai 2016
2.11.9 1 janvier 2017
2.11.10 13 juin 2017
2.11.11 27 janvier 2018
Ancienne version, plus maintenue : 3.0 3.0.0 8 février 2015 Prise en charge des noms de domaine internationalisés et des parties locales d'adresses telles que définies dans la RFC 6530 et les documents associés, les bibliothèques Postfix liées dynamiquement et les plugins de base de données, les opérations sur plusieurs tables de recherche, les pseudo-tables qui facilitent la mise en œuvre de choses simples, et plus encore.
3.0.1 12 avril 2015
3.0.2 20 juillet 2015
3.0.3 10 octobre 2015
3.0.4 21 février 2016
3.0.5 15 mai 2016
3.0.6 28 août 2016
3.0.7 1 octobre 2016
3.0.8 1 janvier 2017
3.0.10 13 juin 2017
3.0.11 28 octobre 2017
3.0.12 27 janvier 2018
3.0.13 20 mai 2018
3.0.14 24 novembre 2018
3.0.15 26 février 2019
Ancienne version, plus maintenue : 3.1 3.1.0 24 février 2016 Configuration simplifiée de la gestion opportuniste des clés/certificats de serveur TLS et SMTP, prise en charge TTL de réponse DNS positive et négative dans le postscreen, limite de débit SASL AUTH dans le serveur SMTP, limite de sécurité sur le nombre de demandes de vérification d'adresse, liste de file d'attente JSON, livraison indépendante de la destination retard de débit, entre autres.
3.1.1 15 mai 2016
3.1.2 28 août 2016
3.1.3 1 octobre 2016
3.1.4 1 janvier 2017
3.1.6 13 juin 2017
3.1.7 28 octobre 2017
3.1.8 27 janvier 2018
3.1.9 20 mai 2018
3.1.10 24 novembre 2018
3.1.11 26 février 2019
3.1.12 30 mars 2019
3.1.13 29 juin 2019
3.1.14 22 septembre 2019
3.1.15 3 février 2020
Ancienne version, mais toujours maintenue : 3.2 3.2.0 28 février 2017 Négociation de courbe elliptique avec OpenSSL ≥ 1.0.2 , prise en charge des procédures stockées pour les bases de données MySQL, cidr : prise en charge des tables pour if/endif et négation, prise en charge de la configuration Milter par client , actions "PASS" et "STRIP" dans les contrôles header/body_checks, et plus.
3.2.2 13 juin 2017
3.2.3 24 septembre 2017
3.2.4 28 octobre 2017
3.2.5 27 janvier 2018
3.2.6 20 mai 2018
3.2.7 24 novembre 2018
3.2.8 26 février 2019
3.2.9 30 mars 2019
3.2.10 29 juin 2019
3.2.11 22 septembre 2019
3.2.12 3 février 2020
3.2.13 12 mars 2020
3.2.14 18 avril 2020
Ancienne version, mais toujours maintenue : 3.3 3.3.0 21 février 2018 Prise en charge de la version héritée de Postfix 2.11 terminée
3.3.1 20 mai 2018
3.3.2 24 novembre 2018
3.3.3 26 février 2019
3.3.4 30 mars 2019
3.3.5 29 juin 2019
3.3.6 22 septembre 2019
3.3.7 3 février 2020
3.3.8 12 mars 2020
3.3.9 18 avril 2020
Ancienne version, mais toujours maintenue : 3.4 3.4.0 27 février 2019 Prise en charge de la version héritée de Postfix 3.0 terminée
3.4.1 7 mars 2019
3.4.2 10 mars 2019
3.4.3 10 mars 2019 L'un des changements de Postfix 3.4.2 (LINUX5) manquait.
3.4.4 14 mars 2019
3.4.5 30 mars 2019
3.4.6 29 juin 2019
3.4.7 22 septembre 2019
3.4.8 24 novembre 2019
3.4.9 3 février 2020
3.4.10 12 mars 2020
3.4.11 18 avril 2020
Version stable actuelle : 3.5 3.5.0 16 mars 2020 Prise en charge de l'ancienne version de Postfix 3.1 terminée
3.5.1 18 avril 2020
Dernière version d'aperçu d'une future version : 3.6 19 avril 2020
Légende:
Ancienne version
Ancienne version, toujours maintenue
Dernière version
Dernière version d'aperçu
Version future

Voir également

Les références

Lectures complémentaires

Liens externes