From: Wietse Venema Date: Tue, 7 Mar 2006 05:00:00 +0000 (-0500) Subject: postfix-2.3-20060307 X-Git-Tag: v2.3-RC1~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8ea1256ce8bd6e745f3e5986b1b75c47b99595fd;p=thirdparty%2Fpostfix.git postfix-2.3-20060307 --- diff --git a/postfix/HISTORY b/postfix/HISTORY index 27159b2bd..068783367 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -11979,8 +11979,9 @@ Apologies for any names omitted. 20060204 - Bugfix: disable content_inspection for "sendmail -bv" - probes. File: *qmgr/qmgr_message.c. + Bugfix: disable the content_filter feature for user-requested + "sendmail -bv" probes, just like it is disabled for probes + generated by Postfix itself. File: *qmgr/qmgr_message.c. 20060207 @@ -12000,9 +12001,36 @@ Apologies for any names omitted. of waiting for another 100 seconds. This allows the processes to refresh more frequently on low-traffic systems. + Cleanup: smtpd_delay_open_until_valid_rcpt (default: yes) + controls whether Postfix delays the start of a mail transaction + until after the first valid recipient, or if it starts a + transaction immediately after MAIL FROM. File: smtpd/smtpd.c. + +20060217 + + Bugfix: don't terminate with a non-standard exit status + when the pipe-to-command feature has a problem before it + executes the command. File: global/pipe_command.c. + +20060223 + + Bugfix: detect integer overflow when multiplying time values + with non-trivial time units. File: global/conv_time.c. + +20060307 + + Bugfix: reset the msg_cleanup() fatal error handler in child + processes. See also change 20060217. Files: postlock/postlock.c, + master/multi_server.c, global/mail_run.c, util/vstream_popen.c. + Wish list: - Fix XCLIENT/XFORWARD: send xtext and accept old non-xtext. + Log DSN original recipient when rejecting mail. + + Keep whitespace between label and ":"? + + Make XCLIENT/XFORWARD future proof: send xtext and accept + old non-xtext. Make the map case folding/locking options configurable, if not at run-time then at least at compile time so we get @@ -12016,7 +12044,8 @@ Wish list: do virtual aliasing earlier? Investigate what it would take to eliminate oqmgr, and to - make the old behavior configurable in a unified queue manager. + make the old behavior configurable in a unified queue + manager. This would shave another 2.7 KLOC from the source footprint. Document the case folding strategy for match_list like features. diff --git a/postfix/README_FILES/IPV6_README b/postfix/README_FILES/IPV6_README index ee49675b7..d60b0e5f0 100644 --- a/postfix/README_FILES/IPV6_README +++ b/postfix/README_FILES/IPV6_README @@ -107,7 +107,7 @@ configuration work with Postfix. smtp_bind_address parameter does for IPv4: /etc/postfix/main.cf: - smtp_bind_address6 = 2001:240:5c7:0:250:56ff:fe89:1 + smtp_bind_address6 = 2001:240:587:0:250:56ff:fe89:1 * If you left the value of the mynetworks parameter at its default (i.e. no mynetworks setting in main.cf) Postfix will figure out by itself what its @@ -115,14 +115,14 @@ configuration work with Postfix. % postconf mynetworks mynetworks = 127.0.0.0/8 168.100.189.0/28 [::1]/128 [fe80::]/10 [2001: - 240:5c7::]/64 + 240:587::]/64 If you did specify the mynetworks parameter value in main.cf, you need update the mynetworks value to include the IPv6 networks the system is in. Be sure to specify IPv6 address information inside "[]", like this: /etc/postfix/main.cf: - mynetworks = ...IPv4 networks... [::1]/128 [2001:240:5c7::]/64 ... + mynetworks = ...IPv4 networks... [::1]/128 [2001:240:587::]/64 ... NNOOTTEE:: wwhheenn ccoonnffiigguurriinngg PPoossttffiixx mmaattcchh lliissttss ssuucchh aass mmyynneettwwoorrkkss oorr ddeebbuugg__ppeeeerr__lliisstt,, yyoouu mmuusstt ssppeecciiffyy IIPPvv66 aaddddrreessss iinnffoorrmmaattiioonn iinnssiiddee ""[[]]"" iinn tthhee @@ -226,7 +226,7 @@ Getting Postfix IPv6 working on other platforms involves the following steps: 168.100.189.2/255.255.255.224 127.0.0.1/255.0.0.0 fe80:1::2d0:b7ff:fe88:2ca7/ffff:ffff:ffff:ffff:: - 2001:240:5c7:0:2d0:b7ff:fe88:2ca7/ffff:ffff:ffff:ffff:: + 2001:240:587:0:2d0:b7ff:fe88:2ca7/ffff:ffff:ffff:ffff:: fe80:5::1/ffff:ffff:ffff:ffff:: ::1/ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff diff --git a/postfix/README_FILES/SCHEDULER_README b/postfix/README_FILES/SCHEDULER_README index ec924e906..f94581196 100644 --- a/postfix/README_FILES/SCHEDULER_README +++ b/postfix/README_FILES/SCHEDULER_README @@ -43,7 +43,7 @@ how next message is chosen when delivery agent becomes available. You already know that oqmgr(8) uses round-robin by destination while qmgr(8) uses simple FIFO, except for some preemptive magic. The postconf(5) manual documents all the knobs the user can use to control this preemptive magic - there is nothing -else to the preemption than the quite simple conditions described below. +else to the preemption than the quite simple conditions described in there. As for programmer-level documentation, this will have to be extracted from all those emails we have exchanged with Wietse [rats! I hoped that Patrik would do diff --git a/postfix/README_FILES/SMTPD_PROXY_README b/postfix/README_FILES/SMTPD_PROXY_README index e04902637..f0c63f915 100644 --- a/postfix/README_FILES/SMTPD_PROXY_README +++ b/postfix/README_FILES/SMTPD_PROXY_README @@ -31,14 +31,14 @@ This document describes the following topics: * Configuring the Postfix SMTP pass-through proxy feature * Configuration parameters * How Postfix talks to the before-queue content filter - * Transparency PPrriinncciipplleess ooff ooppeerraattiioonn -The before-filter Postfix SMTP server receives mail from the Internet and does -the usual relay access control, SASL authentication, RBL lookups, rejecting -non-existent sender or recipient addresses, etc. The before-queue filter -receives unfiltered mail content from Postfix and does one of the following: +The before-filter Postfix SMTP server accepts connections from the Internet and +does the usual relay access control, SASL authentication, TLS negotiation, RBL +lookups, rejecting non-existent sender or recipient addresses, etc. The before- +queue filter receives unfiltered mail content from Postfix and does one of the +following: 1. Re-inject the mail back into Postfix via SMTP, perhaps after changing its content and/or destination. @@ -193,49 +193,18 @@ Postfix speaks ESMTP but uses no command pipelining. Postfix generates its own EHLO, XFORWARD (for logging the remote client IP address instead of localhost [127.0.0.1]), DATA and QUIT commands, and forwards unmodified copies of all the MAIL FROM and RCPT TO commands that the before-filter Postfix SMTP server -didn't reject itself. The SMTP proxy server should accept the same MAIL FROM -and RCPT TO command syntax as the Postfix SMTP server. Postfix sends no other -SMTP commands. - -The content filter is expected to pass on unmodified SMTP commands from a -before-filter Postfix SMTP server to an after-filter Postfix SMTP server that -usually listens on a non-standard port. When the filter rejects content, it -should send a negative SMTP response back to the before-filter Postfix SMTP -server, and it should abort the connection with the after-filter Postfix SMTP -server without completing the SMTP conversation with the after-filter Postfix -SMTP server. - -More detail on the postfix-to-proxy interaction is in the section titled -"Transparency". - -TTrraannssppaarreennccyy - -The before-filter Postfix SMTP server forwards the MAIL FROM, RCPT TO and DATA -commands that it has approved, but it does not forward other commands such as -TLS or SASL commands. It can therefore not be transparent. - -The real-time content filter, on the other hand, has to be transparent. In -order to support non-transparent real-time content filters, Postfix would have -to reconcile the before-filter Postfix ESMTP feature set with the feature set -that Postfix receives from the real-time content filter. - - * When a future Postfix version supports DSN, but the content filter does not - announce DSN support in the EHLO reply, then the before-filter SMTP server - would have to either 1) suppress the DSN feature in its EHLO announcement, - or 2) duplicate all the work that needs to be done when delivering DSN- - aware mail to a non-DSN destination. - - * When the content filter does not announce 8BITMIME support in the EHLO - reply, then the before-filter SMTP server would have to either 1) suppress - the 8BITMIME feature in its EHLO announcement, or 2) convert the content to - quoted-printable before giving it to the content filter. - - * Performance: when Postfix has to suppress elements from the before-filter - EHLO reply because they are incompatible with the real-time content filter, - then Postfix has to connect to the content filter as soon as the client - sends a valid EHLO command. This wastes a lot of resources when all the - MAIL FROM or RCPT TO commands are rejected. - -Therefore, the Postfix SMTP server cannot be transparent with respect to the -before-queue content filter. +didn't reject itself. Postfix sends no other SMTP commands. + +The content filter should accept the same MAIL FROM and RCPT TO command syntax +as the before-filter Postfix SMTP server, and should forward the commands +without modification to the after-filter SMTP server. If the content filter or +after-filter SMTP server does not support all the ESMTP features that the +before-filter Postfix SMTP server supports, then the missing features must be +turned off in the before-filter Postfix SMTP server with the +smtpd_discard_ehlo_keywords parameter. + +When the filter rejects content, it should send a negative SMTP response back +to the before-filter Postfix SMTP server, and it should abort the connection +with the after-filter Postfix SMTP server without completing the SMTP +conversation with the after-filter Postfix SMTP server. diff --git a/postfix/README_FILES/TLS_README b/postfix/README_FILES/TLS_README index c1d290724..ba9fb6d10 100644 --- a/postfix/README_FILES/TLS_README +++ b/postfix/README_FILES/TLS_README @@ -68,9 +68,10 @@ To build Postfix with TLS support, first we need to generate the make(1) files with the necessary definitions. This is done by invoking the command "make makefiles" in the Postfix top-level directory and with arguments as shown next. -NNOOTTEE:: DDoo nnoott uussee GGnnuu TTLLSS.. IItt wwiillll ssppoonnttaanneeoouussllyy tteerrmmiinnaattee aa pprroocceessss wwiitthh eexxiitt -ssttaattuuss ccooddee 22,, iinnsstteeaadd ooff pprrooppeerrllyy rreeppoorrttiinngg pprroobblleemmss ttoo PPoossttffiixx,, ssoo tthhaatt iitt -ccaann lloogg tthheemm ttoo tthhee mmaaiilllloogg ffiillee.. +NNOOTTEE:: DDoo nnoott uussee GGnnuu TTLLSS.. IItt wwiillll ssppoonnttaanneeoouussllyy tteerrmmiinnaattee aa PPoossttffiixx ddaaeemmoonn +pprroocceessss wwiitthh eexxiitt ssttaattuuss ccooddee 22,, iinnsstteeaadd ooff aalllloowwiinngg PPoossttffiixx ttoo 11)) rreeppoorrtt tthhee +eerrrroorr ttoo tthhee mmaaiilllloogg ffiillee,, aanndd ttoo 22)) pprroovviiddee ppllaaiinntteexxtt sseerrvviiccee wwhheerree tthhiiss iiss +aapppprroopprriiaattee.. * If the OpenSSL include files (such as ssl.h) are in directory /usr/include/ openssl, and the OpenSSL libraries (such as libssl.so and libcrypto.so) are @@ -815,11 +816,11 @@ Example: # relayhost exact nexthop match [msa.example.net]:587 MUST - # example.org (as nexthop) has MX hosts with broken TLS. + # TLS should not be used with the example.org MX hosts. example.org NONE - # Except for (as host) mx1.example.org which works. - mx1.example.org MAY + # TLS should not be used with the host smtp.example.com. + smtp.example.com NONE DDiissccoovveerriinngg sseerrvveerrss tthhaatt ssuuppppoorrtt TTLLSS diff --git a/postfix/html/IPV6_README.html b/postfix/html/IPV6_README.html index cce966534..0193491e9 100644 --- a/postfix/html/IPV6_README.html +++ b/postfix/html/IPV6_README.html @@ -83,7 +83,7 @@ IPv6 support to other environments.

Configuration

-

Postfix IPv6 support introduces two new main.cf configuration +

Postfix IPv6 support introduces two new main.cf configuration parameters, and introduces an important change in address syntax notation in match lists such as mynetworks or debug_peer_list.

@@ -98,8 +98,8 @@ related configuration work with Postfix.

@@ -232,22 +232,22 @@ by Dean Strik and others, but differs in a few minor ways.

Principles of operation

-

The before-filter Postfix SMTP server receives mail from the +

The before-filter Postfix SMTP server accepts connections from the Internet and does the usual relay access control, SASL authentication, +TLS negotiation, RBL lookups, rejecting non-existent sender or recipient addresses, etc. The before-queue filter receives unfiltered mail content from Postfix and does one of the following:

@@ -346,62 +345,24 @@ pipelining. Postfix generates its own EHLO, XFORWARD (for logging the remote client IP address instead of localhost[127.0.0.1]), DATA and QUIT commands, and forwards unmodified copies of all the MAIL FROM and RCPT TO commands that the before-filter Postfix SMTP server -didn't reject itself. The SMTP proxy server should accept the same -MAIL FROM and RCPT TO command syntax as the Postfix SMTP server. +didn't reject itself. Postfix sends no other SMTP commands.

-

The content filter is expected to pass on unmodified SMTP -commands from a before-filter Postfix SMTP server to an after-filter -Postfix SMTP server that usually listens on a non-standard port. -When the filter rejects content, it should send a negative SMTP +

The content filter should accept the same MAIL FROM and RCPT +TO command syntax as the before-filter Postfix SMTP server, and +should forward the commands without modification to the after-filter +SMTP server. If the content filter or after-filter SMTP server +does not support all the ESMTP features that the before-filter +Postfix SMTP server supports, then the missing features must be +turned off in the before-filter Postfix SMTP server with the +smtpd_discard_ehlo_keywords parameter.

+ +

When the filter rejects content, it should send a negative SMTP response back to the before-filter Postfix SMTP server, and it should abort the connection with the after-filter Postfix SMTP server without completing the SMTP conversation with the after-filter Postfix SMTP server.

-

More detail on the postfix-to-proxy interaction is in the -section titled "Transparency".

- -

Transparency

- -

The before-filter Postfix SMTP server forwards the MAIL FROM, -RCPT TO and DATA commands that it has approved, but it does not -forward other commands such as TLS or SASL commands. It can -therefore not be transparent.

- -

The real-time content filter, on the other hand, has to be -transparent. In order to support non-transparent real-time content -filters, Postfix would have to reconcile the before-filter Postfix -ESMTP feature set with the feature set that Postfix receives from -the real-time content filter.

- - - -

Therefore, the Postfix SMTP server cannot be transparent with -respect to the before-queue content filter.

- diff --git a/postfix/html/TLS_README.html b/postfix/html/TLS_README.html index c975669b1..c7600071b 100644 --- a/postfix/html/TLS_README.html +++ b/postfix/html/TLS_README.html @@ -130,9 +130,9 @@ done by invoking the command "make makefiles" in the Postfix top-level directory and with arguments as shown next.

NOTE: Do not use Gnu TLS. It will spontaneously terminate -a process with exit status code 2, instead of properly reporting -problems to Postfix, so that it can log them to the maillog file. -

+a Postfix daemon process with exit status code 2, instead of allowing +Postfix to 1) report the error to the maillog file, and to 2) provide +plaintext service where this is appropriate.

Principles of operation

-

The before-filter Postfix SMTP server receives mail from the +

The before-filter Postfix SMTP server accepts connections from the Internet and does the usual relay access control, SASL authentication, +TLS negotiation, RBL lookups, rejecting non-existent sender or recipient addresses, etc. The before-queue filter receives unfiltered mail content from Postfix and does one of the following:

@@ -346,62 +345,24 @@ pipelining. Postfix generates its own EHLO, XFORWARD (for logging the remote client IP address instead of localhost[127.0.0.1]), DATA and QUIT commands, and forwards unmodified copies of all the MAIL FROM and RCPT TO commands that the before-filter Postfix SMTP server -didn't reject itself. The SMTP proxy server should accept the same -MAIL FROM and RCPT TO command syntax as the Postfix SMTP server. +didn't reject itself. Postfix sends no other SMTP commands.

-

The content filter is expected to pass on unmodified SMTP -commands from a before-filter Postfix SMTP server to an after-filter -Postfix SMTP server that usually listens on a non-standard port. -When the filter rejects content, it should send a negative SMTP +

The content filter should accept the same MAIL FROM and RCPT +TO command syntax as the before-filter Postfix SMTP server, and +should forward the commands without modification to the after-filter +SMTP server. If the content filter or after-filter SMTP server +does not support all the ESMTP features that the before-filter +Postfix SMTP server supports, then the missing features must be +turned off in the before-filter Postfix SMTP server with the +smtpd_discard_ehlo_keywords parameter.

+ +

When the filter rejects content, it should send a negative SMTP response back to the before-filter Postfix SMTP server, and it should abort the connection with the after-filter Postfix SMTP server without completing the SMTP conversation with the after-filter Postfix SMTP server.

-

More detail on the postfix-to-proxy interaction is in the -section titled "Transparency".

- -

Transparency

- -

The before-filter Postfix SMTP server forwards the MAIL FROM, -RCPT TO and DATA commands that it has approved, but it does not -forward other commands such as TLS or SASL commands. It can -therefore not be transparent.

- -

The real-time content filter, on the other hand, has to be -transparent. In order to support non-transparent real-time content -filters, Postfix would have to reconcile the before-filter Postfix -ESMTP feature set with the feature set that Postfix receives from -the real-time content filter.

- - - -

Therefore, the Postfix SMTP server cannot be transparent with -respect to the before-queue content filter.

- diff --git a/postfix/proto/TLS_README.html b/postfix/proto/TLS_README.html index b16479898..e4ed4bcee 100644 --- a/postfix/proto/TLS_README.html +++ b/postfix/proto/TLS_README.html @@ -130,9 +130,9 @@ done by invoking the command "make makefiles" in the Postfix top-level directory and with arguments as shown next.

NOTE: Do not use Gnu TLS. It will spontaneously terminate -a process with exit status code 2, instead of properly reporting -problems to Postfix, so that it can log them to the maillog file. -

+a Postfix daemon process with exit status code 2, instead of allowing +Postfix to 1) report the error to the maillog file, and to 2) provide +plaintext service where this is appropriate.