]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-3.8-20221023
authorWietse Venema <wietse@porcupine.org>
Sun, 23 Oct 2022 05:00:00 +0000 (00:00 -0500)
committerViktor Dukhovni <postfix-users@dukhovni.org>
Mon, 24 Oct 2022 03:48:15 +0000 (23:48 -0400)
14 files changed:
postfix/HISTORY
postfix/README_FILES/SMTPD_PROXY_README
postfix/RELEASE_NOTES
postfix/WISHLIST
postfix/conf/master.cf
postfix/html/SMTPD_PROXY_README.html
postfix/html/postconf.5.html
postfix/man/man5/postconf.5
postfix/proto/SMTPD_PROXY_README.html
postfix/proto/postconf.proto
postfix/proto/stop
postfix/proto/stop.spell-history
postfix/src/global/mail_version.h
postfix/src/tls/tls_misc.c

index a13c089236669e586cb1e2d2fe63ac85aa4ffc89..3869bfde5a01c40d24897ca59a4776c215013b55 100644 (file)
@@ -26635,3 +26635,27 @@ Apologies for any names omitted.
        pre-release-checks stop filters.  Files: RELEASE_NOTES,
        HISTORY, stop.spell-history, stop.double-history,
        stop.spell-proto-html, postqueue.1, postqueue.1.html.
+
+20221008
+
+       Cleanup: in the default master.cf file, unconditionally
+       enable header rewriting and missing header insertion, for
+       the submission and smtps services. Dan Mahoney. File
+       conf/master.cf.
+
+20221017
+
+       Robustness: unconditionally disable a CPU resource attack
+       requesting TLS renegotiation. There's no good reason to
+       support this in the middle of an SMTP connection. Viktor
+       Dukhovni. File: tls/tls_misc.c.
+
+20221023
+
+       Documentation: describe limitations of smtpd(8) features
+       that cannot work with smtpd_proxy_filter. File:
+       proto/SMTPD_PROXY_README.html.
+
+       Documentation: the local_header_rewrite_clients and
+       remote_header_rewrite_domain features also enable adding
+       missing headers. File: proto/postconf.proto.
index a3707ea4c621dbbfed71ceb6faf074b76351da49..2b0dd9143c94c29a1bb6c57b7dc0734e81914e5b 100644 (file)
@@ -71,6 +71,25 @@ P\bPr\bro\bos\bs a\ban\bnd\bd c\bco\bon\bns\bs o\bof\bf b\bbe\bef\bfo\bor\bre\be-\b-q\bqu\bue\beu\bue\be
     sender (which is usually forged anyway). Mail that is not accepted remains
     the responsibility of the remote SMTP client.
 
+  * Con: The smtpd(8) service before the smtpd_proxy_filter cannot support
+    features that involve header or body access, or that involve queue file
+    manipulation (i.e., anything that involves processing by the cleanup(8)
+    service).
+
+      o No support for HOLD actions in Postfix smtpd access(5) restrictions.
+
+      o No support for smtpd_milters features that involve message header or
+        body content.
+
+      o No support for receive_override_options.
+
+    Instead, specify those features with the smtpd(8) service behind the
+    smtpd_proxy_filter. In some cases, it may be possible to combine a before-
+    filter PREPEND action that emits a unique pattern (for example containing
+    the MTA domain name), with an after-filter header_checks action that does
+    what you want, and with an smtp_header_checks IGNORE action that deletes
+    the prepended header from transit mail.
+
   * Con: The remote SMTP client expects an SMTP reply within a deadline. As the
     system load increases, fewer and fewer CPU cycles remain available to
     answer within the deadline, and eventually you either have to stop
index bc098908b0a3dfb0ee23207f1b889914937917c3..00876604ddfa965cda7e705f7827d2d77657fb42 100644 (file)
@@ -28,22 +28,21 @@ comfortable with the IPL can continue with that license.
 Bugfix for messages not delivered after "warning: Unexpected record type 'X'
 ============================================================================
 
-Due to a bug introduced in Postfix 3.7, a message could falsely
+Due to a bug introduced in Postfix 3.7.0, a message could falsely
 be flagged as corrupt with "warning: Unexpected record type 'X'".
 
 Such messages were moved to the "corrupt" queue directory, where
 they may still be found. See below for instructions to deal with
 these falsely flagged messages.
 
-This could happen for messages with 5000 or more recipients, or
-with fewer recipients on a busy mail server. The problem was first 
-reported by Frank Brendel, reproduced by John Alex. 
+This problem could happen for messages with 5000 or more recipients,
+or with fewer recipients on a busy mail server. The problem was
+first reported by Frank Brendel, and the error conditions were
+reproduced by John Alex.
 
-A file in the "corrupt" queue directory may be inspected with the
-command "postcat /var/spool/postfix/corrupt/<filename>. If delivery
-of the file is still desired, the file can be moved back to
-/var/spool/postfix/incoming after updating Postfix and executing
-"postfix reload".
+Please see https://www.postfix.org/announcements/postfix-3.7.3 for
+instructions to identify falsely flagged messages in the Postfix
+queue, and what actions may be taken.
 
 Incompatible changes with snapshot 20220507
 ===========================================
index 6a736d434f5992f72340003e1f7aada6f524bac7..1b2464a5155009c7b32395293372bc2d26a8482e 100644 (file)
@@ -9,6 +9,14 @@ Wish list:
        Scan Postfix code with github.com/googleprojectzero/weggli
        (depends on "rust").
 
+       Consider renaming local_header_rewrite_clients to
+       local_header_canonicalize_clients, as a more accurate name.
+       Optionally support "local_header_canonicalize_classes =
+       rewrite_addresses, add_missing_headers" (default setting).
+
+       And ditto for remote_header_rewrite_domain, whether it
+       should rewrite address, add missing headers, or both.
+
        Migrate masquerade_domains from ARGV to STRING_LIST, or
        deprecate this feature because it breaks table-driven address
        validation.
index 83fc6fdf7f1caf91fd0030e5825dad767edfa3ea..fd282dd29dbe61dda3c8e1528f4b3cc8bf46200a 100644 (file)
@@ -21,6 +21,7 @@ smtp      inet  n       -       n       -       -       smtpd
 #  -o smtpd_tls_security_level=encrypt
 #  -o smtpd_sasl_auth_enable=yes
 #  -o smtpd_tls_auth_only=yes
+#  -o local_header_rewrite_clients=static:all
 #  -o smtpd_reject_unlisted_recipient=no
 #     Instead of specifying complex smtpd_<xxx>_restrictions here,
 #     specify "smtpd_<xxx>_restrictions=$mua_<xxx>_restrictions"
@@ -38,6 +39,7 @@ smtp      inet  n       -       n       -       -       smtpd
 #  -o syslog_name=postfix/submissions
 #  -o smtpd_tls_wrappermode=yes
 #  -o smtpd_sasl_auth_enable=yes
+#  -o local_header_rewrite_clients=static:all
 #  -o smtpd_reject_unlisted_recipient=no
 #     Instead of specifying complex smtpd_<xxx>_restrictions here,
 #     specify "smtpd_<xxx>_restrictions=$mua_<xxx>_restrictions"
index 9e90ed1033ae85f529e00caaf742ed1d0a805c0c..b6f29f8850582b46459c44860685bb1dca218dd6 100644 (file)
@@ -158,6 +158,31 @@ mail back to the sender (which is usually forged anyway).  Mail
 that is not accepted remains the responsibility of the remote SMTP
 client. </p>
 
+<li> <p> Con: The <a href="smtpd.8.html">smtpd(8)</a> service before the <a href="postconf.5.html#smtpd_proxy_filter">smtpd_proxy_filter</a>
+cannot support features that involve header or body access, or that
+involve queue file manipulation (i.e., anything that involves
+processing by the <a href="cleanup.8.html">cleanup(8)</a> service). </p>
+
+<ul>
+
+<li> <p> No support for HOLD actions in Postfix smtpd <a href="access.5.html">access(5)</a>
+restrictions. </p>
+
+<li> <p> No support for <a href="postconf.5.html#smtpd_milters">smtpd_milters</a> features that involve message
+header or body content. </p>
+
+<li> <p> No support for <a href="postconf.5.html#receive_override_options">receive_override_options</a>.
+
+</ul>
+
+<p> Instead, specify those features with the <a href="smtpd.8.html">smtpd(8)</a> service behind
+the <a href="postconf.5.html#smtpd_proxy_filter">smtpd_proxy_filter</a>. In some cases, it may be possible to combine
+a before-filter PREPEND action that emits a unique pattern (for
+example containing the MTA domain name), with an after-filter
+<a href="postconf.5.html#header_checks">header_checks</a> action that does what you want, and with an
+<a href="postconf.5.html#smtp_header_checks">smtp_header_checks</a> IGNORE action that deletes the prepended header
+from transit mail. </p>
+
 <li> <p> Con: The remote SMTP client expects an SMTP reply within
 a deadline.  As the system load increases, fewer and fewer CPU
 cycles remain available to answer within the deadline, and eventually
index 03f0ddba9b8cc987e9d7bbbf64f9a0c333ae440e..accd101b7e511bb0bcedbf12e35a3ea46b5a17da 100644 (file)
@@ -5902,17 +5902,17 @@ into concurrency per domain.  </p>
 <DT><b><a name="local_header_rewrite_clients">local_header_rewrite_clients</a>
 (default: <a href="postconf.5.html#permit_inet_interfaces">permit_inet_interfaces</a>)</b></DT><DD>
 
-<p> Rewrite message header addresses in mail from these clients and
-update incomplete addresses with the domain name in $<a href="postconf.5.html#myorigin">myorigin</a> or
-$<a href="postconf.5.html#mydomain">mydomain</a>; either don't rewrite message headers from other clients
-at all, or rewrite message headers and update incomplete addresses
-with the domain specified in the <a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a>
-parameter.  </p>
+<p> Rewrite or add message headers in mail from these clients,
+updating incomplete addresses with the domain name in $<a href="postconf.5.html#myorigin">myorigin</a> or
+$<a href="postconf.5.html#mydomain">mydomain</a>, and adding missing headers. </p>
 
 <p> See the <a href="postconf.5.html#append_at_myorigin">append_at_myorigin</a> and <a href="postconf.5.html#append_dot_mydomain">append_dot_mydomain</a> parameters
 for details of how domain names are appended to incomplete addresses.
 </p>
 
+<p> See <a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> to optionally rewrite or add
+message headers in mail from other clients. </p>
+
 <p> Specify a list of zero or more of the following:  </p>
 
 <dl>
@@ -10182,9 +10182,13 @@ Examples:
 <DT><b><a name="remote_header_rewrite_domain">remote_header_rewrite_domain</a>
 (default: empty)</b></DT><DD>
 
-<p> Don't rewrite message headers from remote clients at all when
-this parameter is empty; otherwise, rewrite message headers and
-append the specified domain name to incomplete addresses.  The
+<p> Rewrite or add message headers in mail from remote clients if
+the <a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter value is non-empty,
+updating incomplete addresses with the domain specified in the
+<a href="postconf.5.html#remote_header_rewrite_domain">remote_header_rewrite_domain</a> parameter, and adding missing headers.
+</p>
+
+<p> The
 <a href="postconf.5.html#local_header_rewrite_clients">local_header_rewrite_clients</a> parameter controls what clients Postfix
 considers local. </p>
 
index 289f0de88f557e605428e329e7b370e6b4793c94..b2f5fd49388780f606aec764afbb59be16e5996d 100644 (file)
@@ -3584,16 +3584,16 @@ Setting this parameter to a value > 1 changes the meaning of
 local_destination_concurrency_limit from concurrency per recipient
 into concurrency per domain.
 .SH local_header_rewrite_clients (default: permit_inet_interfaces)
-Rewrite message header addresses in mail from these clients and
-update incomplete addresses with the domain name in $myorigin or
-$mydomain; either don't rewrite message headers from other clients
-at all, or rewrite message headers and update incomplete addresses
-with the domain specified in the remote_header_rewrite_domain
-parameter.
+Rewrite or add message headers in mail from these clients,
+updating incomplete addresses with the domain name in $myorigin or
+$mydomain, and adding missing headers.
 .PP
 See the append_at_myorigin and append_dot_mydomain parameters
 for details of how domain names are appended to incomplete addresses.
 .PP
+See remote_header_rewrite_domain to optionally rewrite or add
+message headers in mail from other clients.
+.PP
 Specify a list of zero or more of the following:
 .IP "\fBpermit_inet_interfaces\fR"
 Append the domain name in $myorigin or $mydomain when the
@@ -6440,9 +6440,12 @@ relocated_maps = hash:/etc/postfix/relocated
 .ad
 .ft R
 .SH remote_header_rewrite_domain (default: empty)
-Don't rewrite message headers from remote clients at all when
-this parameter is empty; otherwise, rewrite message headers and
-append the specified domain name to incomplete addresses.  The
+Rewrite or add message headers in mail from remote clients if
+the remote_header_rewrite_domain parameter value is non\-empty,
+updating incomplete addresses with the domain specified in the
+remote_header_rewrite_domain parameter, and adding missing headers.
+.PP
+The
 local_header_rewrite_clients parameter controls what clients Postfix
 considers local.
 .PP
index 710183b7b89998fb4cf04145acf27fc532ad5564..3009fdbe8c56d46ae8ebdd5e7dd2e502b7a3abc4 100644 (file)
@@ -158,6 +158,31 @@ mail back to the sender (which is usually forged anyway).  Mail
 that is not accepted remains the responsibility of the remote SMTP
 client. </p>
 
+<li> <p> Con: The smtpd(8) service before the smtpd_proxy_filter
+cannot support features that involve header or body access, or that
+involve queue file manipulation (i.e., anything that involves
+processing by the cleanup(8) service). </p>
+
+<ul>
+
+<li> <p> No support for HOLD actions in Postfix smtpd access(5)
+restrictions. </p>
+
+<li> <p> No support for smtpd_milters features that involve message
+header or body content. </p>
+
+<li> <p> No support for receive_override_options.
+
+</ul>
+
+<p> Instead, specify those features with the smtpd(8) service behind
+the smtpd_proxy_filter. In some cases, it may be possible to combine
+a before-filter PREPEND action that emits a unique pattern (for
+example containing the MTA domain name), with an after-filter
+header_checks action that does what you want, and with an
+smtp_header_checks IGNORE action that deletes the prepended header
+from transit mail. </p>
+
 <li> <p> Con: The remote SMTP client expects an SMTP reply within
 a deadline.  As the system load increases, fewer and fewer CPU
 cycles remain available to answer within the deadline, and eventually
index 0f335eea92514e890d3f63822356ab28de1013dd..07dca9f78ff2626de92ee6f934604b70c0e200b7 100644 (file)
@@ -9358,9 +9358,13 @@ physical endpoints. </p>
 
 %PARAM remote_header_rewrite_domain 
 
-<p> Don't rewrite message headers from remote clients at all when
-this parameter is empty; otherwise, rewrite message headers and
-append the specified domain name to incomplete addresses.  The
+<p> Rewrite or add message headers in mail from remote clients if
+the remote_header_rewrite_domain parameter value is non-empty,
+updating incomplete addresses with the domain specified in the
+remote_header_rewrite_domain parameter, and adding missing headers.
+</p>
+
+<p> The
 local_header_rewrite_clients parameter controls what clients Postfix
 considers local. </p>
 
@@ -9387,17 +9391,17 @@ remote_header_rewrite_domain =
 
 %PARAM local_header_rewrite_clients permit_inet_interfaces
 
-<p> Rewrite message header addresses in mail from these clients and
-update incomplete addresses with the domain name in $myorigin or
-$mydomain; either don't rewrite message headers from other clients
-at all, or rewrite message headers and update incomplete addresses
-with the domain specified in the remote_header_rewrite_domain
-parameter.  </p>
+<p> Rewrite or add message headers in mail from these clients,
+updating incomplete addresses with the domain name in $myorigin or
+$mydomain, and adding missing headers. </p>
 
 <p> See the append_at_myorigin and append_dot_mydomain parameters
 for details of how domain names are appended to incomplete addresses.
 </p>
 
+<p> See remote_header_rewrite_domain to optionally rewrite or add
+message headers in mail from other clients. </p>
+
 <p> Specify a list of zero or more of the following:  </p>
 
 <dl>
index d8ae008283a3f830ece666b1950772acb41f5c3a..16a29cf21197debe03d01bdf389c584203ff50cf 100644 (file)
@@ -1565,3 +1565,6 @@ raf
 fnvz
 hc
 mkmap
+Brendel
+Bugfix
+https
index 52e25f413b79e0f69ff9be496703abf046434402..20afd36a8332604508d6563fd23624daba4590e1 100644 (file)
@@ -27,3 +27,5 @@ Spil
 Amma
 Jesper
 Pau
+Mahoney
+manpages
index 9faa28544768aa1647603f5edc474f2e02eff370..ec426899172e81f333e272204644faef6557337d 100644 (file)
@@ -20,7 +20,7 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE      "20221007"
+#define MAIL_RELEASE_DATE      "20221023"
 #define MAIL_VERSION_NUMBER    "3.8"
 
 #ifdef SNAPSHOT
index d1685136bc335d3e754aa3ec54c04e4c6c9a5b02..361dae5bcf93090dcbba10b291bb3aa234c9bb55 100644 (file)
@@ -1369,6 +1369,12 @@ long    tls_bug_bits(void)
      * options just in case.
      */
     bits |= SSL_OP_SINGLE_ECDH_USE | SSL_OP_SINGLE_DH_USE;
+
+    /*
+     * Unconditionally disable a CPU resource attack. There's no good reason
+     * to enable TLS renegotiation in the middle of an SMTP connection.
+     */
+    bits |= SSL_OP_NO_RENEGOTIATION;
     return (bits);
 }