Nach einem Jahr der Entwicklung wurde die neue stabile Version des Mailservers Postfix - 3.6.0 veröffentlicht. Gleichzeitig wurde die Unterstützung für die Version Postfix 3.2, die Anfang 2017 veröffentlicht wurde, eingestellt. Postfix ist eines der wenigen Projekte, das gleichzeitig hohe Sicherheit, Zuverlässigkeit und Leistung bietet, was durch eine durchdachte Architektur und eine strenge Politik zur Codierung und Überprüfung von Patches erreicht wurde. Der Code des Projekts wird unter den Lizenzen EPL 2.0 (Eclipse Public License) und IPL 1.0 (IBM Public License) veröffentlicht.
Laut einer automatisierten Umfrage im April verwenden etwa 600.000 E-Mail- Server, Postfix wird auf 33,66 % (vor einem Jahr 34,29 %) der Mailserver eingesetzt, der Anteil von Exim beträgt 59,14 % (57,77 %), Sendmail - 3,6 % (3,83 %), MailEnable - 2,02 % (2,12 %), MDaemon - 0,60 % (0,77 %), Microsoft Exchange - 0,32 % (0,47 %).
Hauptneuheiten:
- Aufgrund von Änderungen an den internen Protokollen, die für die Interaktion zwischen den Komponenten von Postfix verwendet werden, ist es vor einem Update erforderlich, den Mailserver Server mit dem Befehl „postfix stop“ zu stoppen. Andernfalls kann es zu Problemen bei der Interaktion mit den Prozessen pickup, qmgr, verify, tlsproxy und postscreen kommen, was zu Verzögerungen beim Versand von E-Mails bis zum Neustart von Postfix führen kann.
- Es wurden Bereinigungen der Begriffe „white“ und „black“ vorgenommen, die von einigen Mitgliedern der Gemeinschaft als rassistische Diskriminierung wahrgenommen werden. Statt „whitelist“ und „blacklist“ sollten nun „allowlist“ und „denylist“ verwendet werden (zum Beispiel die Parameter postscreen_allowlist_interfaces, postscreen_denylist_action und postscreen_dnsbl_allowlist_threshold). Diese Änderungen betreffen die Dokumentation, die Einstellungen des Prozesses postscreen (integrierte Firewall) und die Protokollierung.
Um die vorherigen Begriffe in den Protokollen beizubehalten, gibt es die Option „respectful_logging = no“, die in der main.cf vor „compatibility_level = 3.6“ angegeben werden sollte. Die Unterstützung der alten Namen von postscreen-Einstellungen bleibt für die Rückwärtskompatibilität erhalten. Auch die Konfigurationsdatei „master.cf“ bleibt vorerst unverändert.
- Im Modus "compatibility_level = 3.6" wurde standardmäßig auf die Verwendung der Hash-Funktion SHA256 anstelle von MD5 umgestellt. Bei der Einstellung einer früheren Version im Parameter compatibility_level wird weiterhin MD5 verwendet, aber für Einstellungen im Zusammenhang mit Hashes, bei denen der Algorithmus nicht ausdrücklich definiert ist, wird eine Warnung im Protokoll ausgegeben. Die Unterstützung der Exportversion des Diffie-Hellman-Schlüsselaustauschprotokolls wurde eingestellt (der Wert des Parameters tlsproxy_tls_dh512_param_file wird jetzt ignoriert).
- Die Diagnose von Problemen, die mit der Angabe eines falschen Verarbeitungsprogramms in master.cf verbunden sind, wurde vereinfacht. Um solche Fehler zu identifizieren, kündigt nun jeder interne Dienst, einschließlich postdrop, den Protokollnamen vor dem Datenaustausch an, und jeder Client-Prozess, einschließlich sendmail, überprüft die Übereinstimmung des deklarierten Protokollnamens mit der unterstützten Version.
- Ein neuer Typ der Zuordnungen "local_login_sender_maps" wurde hinzugefügt, um die Zuordnung der Envelope-Absenderadresse (die im Befehl "MAIL FROM" während der SMTP-Sitzung übergeben wird) in den Prozessen sendmail und postdrop flexibel zu steuern. Zum Beispiel können Sie die folgenden Einstellungen verwenden, um lokalen Benutzern, außer root und postfix, zu erlauben, in sendmail nur ihre Logins anzugeben, indem Sie die UID an den Namen binden: /etc/postfix/main.cf: local_login_sender_maps = inline:{ { root = *}, { postfix = * } }, pcre:/etc/postfix/login_senders /etc/postfix/login_senders: # Es ist sowohl die Angabe von Logins als auch von Formen wie login@domain erlaubt. /(…+)/(.*) $1 $1…@example.com
- Die Einstellung "smtpd_relay_before_recipient_restrictions=yes" wurde hinzugefügt und standardmäßig aktiviert, bei der der SMTP-Server die smtpd_relay_restrictions vor den smtpd_recipient_restrictions überprüft, und nicht umgekehrt, wie zuvor.
- Ein Parameter "smtpd_sasl_mechanism_list" wurde hinzugefügt, der standardmäßig auf "!external, static:rest" eingestellt ist, um verwirrende Fehler zu vermeiden, wenn das SASL-Backend den Modus "EXTERNAL" angibt, der in Postfix nicht unterstützt wird.
- Bei der Bestimmung von Namen im DNS wird standardmäßig eine neue API verwendet, die Multithreading (threadsafe) unterstützt. Um mit der alten API zu kompilieren, sollte beim Bau "make makefiles CCARGS='-DNO_RES_NCALLS…'" angegeben werden.
- Der Modus „enable_threaded_bounces = yes“ wurde hinzugefügt, um Benachrichtigungen über Zustellprobleme, verzögerte Zustellungen oder Zustellbestätigungen mit derselben Diskussions-ID zu ersetzen (die Benachrichtigung wird vom E-Mail-Client im selben Thread zusammen mit den anderen Nachrichten der Korrespondenz angezeigt).
- Die Verwendung der Systemdatenbank /etc/services zur Bestimmung der TCP-Portnummern für SMTP und LMTP wurde standardmäßig eingestellt. Stattdessen werden die Portnummern über den Parameter known_tcp_ports konfiguriert (standardmäßig lmtp=24, smtp=25, smtps=submissions=465, submission=587). Falls ein Dienst in known_tcp_ports fehlt, wird weiterhin /etc/services verwendet.
- Das Kompatibilitätslevel („compatibility_level“) wurde auf den Wert „3.6“ angehoben (in der Vergangenheit wurde der Parameter zweigeteilt, neben 3.6 werden auch die Werte 0 (Standard), 1 und 2 unterstützt). Zukünftig wird das „compatibility_level“ auf die Versionsnummer geändert, in der inkompatible Änderungen vorgenommen wurden. Zum Überprüfen der Kompatibilitätsstufen wurden in main.cf und master.cf separate Vergleichsoperatoren wie „<=level“ und „< level“ hinzugefügt (die Standardvergleichsoperatoren sind nicht geeignet, da sie 3.10 als kleiner als 3.9 ansehen).
Quelle: opennet.ru
