Après presque un an de développement, une nouvelle branche stable du serveur de messagerie Postfix - 3.9.0 - a été publiée. Dans le même temps, elle a annoncé la fin du support de la branche Postfix 3.5, sortie début 2020. Postfix est l'un des rares projets qui allie à la fois haute sécurité, fiabilité et performances, ce qui a été réalisé grâce à une architecture bien pensée et une politique assez stricte en matière de conception de code et d'audit des correctifs. Le code du projet est écrit en langage C et distribué sous EPL 2.0 (Eclipse Public License) et IPL 1.0 (IBM Public License).
Selon un sondage automatisé réalisé en janvier auprès d'environ 400 000 envois postaux les serveursPostfix est utilisé sur 36.81 % (33.18 % il y a un an) des serveurs de messagerie, la part d'Exim est de 56.61 % (60.27 % il y a un an), Sendmail - 3.60 % (3.62 %), MailEnable - 1.82 % (1.86 %), MDaemon - 0.40 % (0.39 %), Microsoft Exchange - 0.19 % (0.19 %), OpenSMTPD - 0.09 % (0.06 %).

Principales nouveautés :
- Un client pour MongoDB a été ajouté qui vous permet de stocker une base de données d'utilisateurs virtuels, d'alias, de listes de correspondance d'adresses et de diverses tables de contrôle dans ce SGBD. Pour configurer l'accès à MongoDB, le type de table « mongodb » a été ajouté. Par exemple, « alias_maps = proxy:mongodb:/etc/postfix/mongo.cf », où mongo.cf est un fichier avec les paramètres de connexion à MongoDB et un filtre de requête.
- Ajout de l'export vers le Local Delivery Agent de l'ID de transfert transmis lors d'une session SMTP via le paramètre ENVID (Envelope ID) dans la commande ESMTP MAIL (RFC 3461). L'identifiant est écrit dans la variable d'environnement ENVID et transmis à l'agent de livraison de tuyaux via le paramètre de ligne de commande « ${envid} ».
- Les paramètres suivants ont été ajoutés aux clients pour stocker les données dans MySQL ("mysql:") et PostgreSQL ("pgsql:") : "idle_interval" pour déterminer le temps d'inactivité avant de fermer la connexion et "retry_interval" pour régler le délai de renvoi. demandes. Par défaut, les paramètres sont définis sur 60 secondes. La valeur « retry_interval » peut être réduite, par exemple, pour réduire le temps de récupération après erreur, dans le cas de l'utilisation d'un seul serveur dans l'attribut « hosts ».
- Un paramètre « charset » a été ajouté au client MySQL pour spécifier le codage de caractères par défaut. La valeur par défaut est "utf8mb4", correspondant aux paramètres par défaut dans MySQL 8.0 (dans les versions précédentes, la valeur était "latin1"). La prise en charge des versions antérieures à MySQL 4.0 (c'est-à-dire les versions publiées avant 2003) a été interrompue.
- Une option facultative a été fournie pour demander une clé publique (brute) auto-signée pour TLS qui n'est pas liée à une autorité de certification, au lieu d'un certificat X.509. L'utilisation de clés brutes pour authentifier les clients et les serveurs est activée via les paramètres « smtpd_tls_enable_rpk = yes » et « smtp_tls_enable_rpk = yes », mais le comportement lors de la vérification dépend fortement du niveau de sécurité défini et de la prise en charge des clés brutes dans l'implémentation TLS locale. (voir documentation).
- Ajout de la prise en charge initiale des fichiers de configuration OpenSSL. Pour spécifier un lien vers un fichier avec les paramètres TLS, le paramètre tls_config_file est proposé, et pour spécifier le nom de la section avec les paramètres du fichier de configuration, le paramètre « tls_config_name » est proposé. La liaison aux fichiers de configuration OpenSSL peut être utilisée pour réduire la dépendance aux paramètres de distribution, où la modification du niveau de sécurité peut entraîner une augmentation de la proportion de messages envoyés sans cryptage.
- Dans les en-têtes de message, le formatage des numéros de jours dans les dates a été modifié : les jours 1 à 9 sont désormais complétés par un zéro plutôt qu'un espace (c'est-à-dire « 01 », « 02 », etc.). Ce changement a été effectué car la RFC 5322 recommande d'utiliser des espaces simples comme délimiteurs dans les dates.
- Ajout d'une protection contre certains types d'attaques « aveugles » (attaques SSRF sur les clients Web visant à accéder au serveur via SMTP), qui est appliquée lorsque le paramètre « smtpd_forbid_unauth_pipelining = yes » est défini (par défaut).
- Par défaut, le paramètre « smtpd_forbid_bare_newline = normalize » est activé, ce qui protège le serveur des attaques de « contrebande SMTP », qui permettent de diviser un message en plusieurs messages différents grâce à l'utilisation d'une séquence non standard pour séparer les lettres. Une protection a également été ajoutée contre les attaques de contrebande SMTP sortantes, dans lesquelles un attaquant utilise un serveur basé sur Postfix pour attaquer un autre serveur SMTP. Par défaut, le paramètre « cleanup_replace_stray_cr_lf = yes » est activé, remplaçant les caractères supplémentaires Et espacer.
- Dans l'implémentation du client DNS, la taille des résultats de requêtes DNS renvoyés est désormais limitée à 100 enregistrements, soit 20 fois plus que le nombre maximal pris en charge par le client SMTP. Adresses IP pour un serveur.
- Les paramètres « disable_dns_lookup » et « permit_mx_backup », ainsi que certains paramètres de configuration TLS, sont obsolètes.
- La prise en charge des paramètres obsolètes il y a environ 20 ans a été interrompue : "permit_naked_ip_address", "check_relay_domains" et "reject_maps_rbl".
Source: opennet.ru
