Nach einem Jahr Entwicklungszeit 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 hohe Sicherheit, Zuverlässigkeit und Leistung vereint, was durch eine durchdachte Architektur sowie eine strikte Codierungspolitik und Patch-Auditierung erreicht wurde. Der Code des Projekts wird unter den Lizenzen EPL 2.0 (Eclipse Public License) und IPL 1.0 (IBM Public License) vertrieben.
Laut einer automatisierten Umfrage im April unter rund 600.000 Mailservern Server, wird Postfix 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 der internen Protokolle, die für die Interaktion zwischen den Komponenten von Postfix verwendet werden, muss der Mailserver vor einem Update unbedingt gestoppt werden. Server Mit dem Befehl „postfix stop“ kann es andernfalls zu Störungen 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 wurde eine Bereinigung der Begriffe „white“ und „black“ durchgeführt, die von einigen Mitgliedern der Gemeinschaft als rassistische Diskriminierung wahrgenommen werden. Statt „whitelist“ und „blacklist“ sollten nun „allowlist“ und „denylist“ verwendet werden (z. B. die Parameter postscreen_allowlist_interfaces, postscreen_denylist_action und postscreen_dnsbl_allowlist_threshold). Die Änderungen betreffen die Dokumentation, die Einstellungen des Prozesses postscreen (integrierte Firewall) und die Protokollierung von Informationen. postfix/postscreen[pid]: ALLOWLIST VETO [address]:port postfix/postscreen[pid]: ALLOWLISTED [address]:port postfix/postscreen[pid]: DENYLISTED [address]:port
Um die bisherigen Begriffe in den Protokollen beizubehalten, ist der Parameter „respectful_logging = no“ vorgesehen, der in main.cf vor „compatibility_level = 3.6“ angegeben werden sollte. Die Unterstützung für die alten Bezeichnungen der postscreen-Einstellungen bleibt aus Gründen der Rückwärtskompatibilität erhalten. Auch die Konfigurationsdatei „master.cf“ bleibt vorerst unverändert.
- Im Modus „compatibility_level = 3.6“ wird standardmäßig die Hash-Funktion SHA256 anstelle von MD5 verwendet. Bei einer früheren Version im Parameter compatibility_level wird weiterhin MD5 angewendet, jedoch wird im Log eine Warnung ausgegeben, wenn in den mit Hashes verbundenen Einstellungen kein Algorithmus eindeutig definiert ist. Die Unterstützung für die Exportversion des Diffie-Hellman-Schlüssel Austauschprotokolls wurde eingestellt (der Wert des Parameters tlsproxy_tls_dh512_param_file wird nun ignoriert).
- Die Diagnose von Problemen, die mit der Angabe eines inkorrekten Handlers in master.cf zusammenhängen, wurde vereinfacht. Um solche Fehler zu identifizieren, gibt jeder interne Dienst, einschließlich postdrop, jetzt den Namen des Protokolls vor Beginn des Datenaustauschs bekannt, während jeder Clientprozess, einschließlich sendmail, die Übereinstimmung des angegebenen Protokollnamens mit der unterstützten Version überprüft.
- Ein neuer Typ von Zuordnungen „local_login_sender_maps“ wurde hinzugefügt, um die Zuordnung der Envelope-Adresse des Absenders (übergereicht im Befehl „MAIL FROM“ während der SMTP-Übertragung) in den Prozessen sendmail und postdrop flexibel zu steuern. Beispielsweise können lokale Benutzer, mit Ausnahme von root und postfix, nur ihre eigenen Logins in sendmail angeben, indem sie die UID an den Benutzernamen binden. Hierfür können folgende Einstellungen verwendet werden: /etc/postfix/main.cf: local_login_sender_maps = inline:{ { root = *}, { postfix = * } }, pcre:/etc/postfix/login_senders /etc/postfix/login_senders: # Sowohl Logins als auch Formen wie login@domain sind 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 Einschränkungen von smtpd_relay_restrictions vor den smtpd_recipient_restrictions überprüft, anstatt umgekehrt, wie früher.
- Ein Parameter „smtpd_sasl_mechanism_list“ wurde hinzugefügt, der standardmäßig auf „!external, static:rest“ gesetzt ist, um verwirrende Fehler zu vermeiden, wenn das SASL-Backend Unterstützung für den „EXTERNAL“-Modus erklärt, welcher in Postfix nicht unterstützt wird.
- Bei der Festlegung von Namen in DNS wird standardmäßig eine neue API verwendet, die Multithreading (threadsafe) unterstützt. Für das Erstellen mit der alten API sollte beim Erstellen "make makefiles CCARGS=\"-DNO_RES_NCALLS…\"" angegeben werden.
- Der Modus "enable_threaded_bounces = yes" wurde hinzugefügt, um Benachrichtigungen über Zustellprobleme, verspätete Zustellungen oder Lieferbestätigungen mit derselben Diskussion-ID zu integrieren (die Benachrichtigung wird im gleichen Thread von dem E-Mail-Client zusammen mit den anderen Nachrichten der Konversation angezeigt).
- Die Verwendung der Systemdatenbank "/etc/services" zur Bestimmung von 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.
- Der Kompatibilitätslevel („compatibility_level“) wurde auf den Wert „3.6“ angehoben (in der Vergangenheit wurde dieser Parameter zweimal geändert; neben 3.6 werden die Werte 0 (Standard), 1 und 2 unterstützt). Zukünftig wird „compatibility_level“ auf die Versionsnummer geändert, in der inkompatible Änderungen vorgenommen wurden. Um die Kompatibilitätslevel in main.cf und master.cf zu überprüfen, wurden spezielle Vergleichsoperatoren wie „<=level“ und „< level“ hinzugefügt (die üblichen Vergleichsoperatoren sind nicht geeignet, da sie 3.10 als kleiner als 3.9 betrachten).
Quelle: opennet.ru
