Expand PMF_FN_* macros.
[netbsd-mini2440.git] / external / ibm-public / postfix / dist / RELEASE_NOTES-2.5
blobf560d3b5dca38ac95424cc1df1ce8479bc6a9c2d
1 The stable Postfix release is called postfix-2.5.x where 2=major
2 release number, 5=minor release number, x=patchlevel.  The stable
3 release never changes except for patches that address bugs or
4 emergencies. Patches change the patchlevel and the release date.
6 New features are developed in snapshot releases. These are called
7 postfix-2.6-yyyymmdd where yyyymmdd is the release date (yyyy=year,
8 mm=month, dd=day).  Patches are never issued for snapshot releases;
9 instead, a new snapshot is released.
11 The mail_release_date configuration parameter (format: yyyymmdd)
12 specifies the release date of a stable release or snapshot release.
14 Incompatibility with Postfix 2.3 and earlier
15 --------------------------------------------
17 If you upgrade from Postfix 2.3 or earlier, read RELEASE_NOTES-2.4
18 before proceeding.
20 Major changes - critical
21 ------------------------
23 [Incompat 20071224] The protocol to send Milter information from
24 smtpd(8) to cleanup(8) processes was cleaned up. If you use the
25 Milter feature, and upgrade a live Postfix system, you may see an
26 "unexpected record type" warning from a cleanup(8) server process.
27 To prevent this, execute the command "postfix reload".  The
28 incompatibility affects only systems that use the Milter feature.
29 It does not cause loss of mail, just a minor delay until the remote
30 SMTP client retries.
32 [Incompat 20071212] The allow_min_user feature now applies to both
33 sender and recipient addresses in SMTP commands. With earlier Postfix
34 versions, only recipients were subject to the allow_min_user feature,
35 and the restriction took effect at mail delivery time, causing mail
36 to be bounced later instead of being rejected immediately.
38 [Incompat 20071206] The "make install" and "make upgrade" procedures
39 now create a Postfix-owned directory for Postfix-writable data files
40 such as caches and random numbers. The location is specified with
41 the "data_directory" parameter (default: "/var/lib/postfix"), and
42 the ownership is specified with the "mail_owner" parameter.
44 [Incompat 20071206] The tlsmgr(8) and verify(8) servers no longer
45 use root privileges when opening the address_verify_map,
46 *_tls_session_cache_database, and tls_random_exchange_name cache
47 files.  This avoids a potential security loophole where the ownership
48 of a file (or directory) does not match the trust level of the
49 content of that file (or directory).
51 [Incompat 20071206] The tlsmgr(8) and verify(8) cache files should
52 now be stored as Postfix-owned files under the Postfix-owned
53 data_directory.  As a migration aid, attempts to open these files
54 under a non-Postfix directory are redirected to the Postfix-owned
55 data_directory, and a warning is logged.
57 This is an example of the warning messages:
59     Dec  6 12:56:22 bristle postfix/tlsmgr[7899]: warning: request
60         to update file /etc/postfix/prng_exch in non-postfix directory
61         /etc/postfix
63     Dec  6 12:56:22 bristle postfix/tlsmgr[7899]: warning: redirecting
64         the request to postfix-owned data_directory /var/lib/postfix
66 If you wish to continue using a pre-existing tls_random_exchange_name
67 or address_verify_map file, move it to the Postfix-owned data_directory
68 and change ownership from root to Postfix (that is, change ownership
69 to the account specified with the mail_owner configuration parameter).
71 [Feature 20071205] The "make install" and "make upgrade" procedures
72 now create a Postfix-owned directory for Postfix-writable data files
73 such as caches and random numbers. The location is specified with
74 the "data_directory" parameter (default: "/var/lib/postfix"), and
75 the ownership is specified with the "mail_owner" parameter.
77 [Incompat 20071203] The "make upgrade" procedure adds a new service
78 "proxywrite" to the master.cf file, for read/write lookup table
79 access. If you copy your old configuration file over the updated
80 one, you may see warnings in the maillog file like this:
82    connect #xx to subsystem private/proxywrite: No such file or directory
84 To recover, run "postfix upgrade-configuration" again.
86 [Incompat 20070613] The pipe(8) delivery agent no longer allows
87 delivery with the same group ID as the main.cf postdrop group.
89 Major changes - malware defense
90 -------------------------------
92 [Feature 20080107] New "pass" service type in master.cf.  Written
93 years ago, this allows future front-end daemons to accept all
94 connections from the network, and to hand over connections from
95 well-behaved clients to Postfix.  Since this feature uses file
96 descriptor passing, it imposes no overhead once a connection is
97 handed over to Postfix.  See master(5) for a few details.
99 [Feature 20070911] Stress-adaptive behavior. When a "public" network
100 service runs into an "all processes are busy" condition, the master(8)
101 daemon logs a warning, restarts the service, and runs it with "-o
102 stress=yes" on the command line (under normal conditions it runs
103 the service with "-o stress=" on the command line).  This can be
104 used to make main.cf parameter settings stress dependent, for
105 example:
107 /etc/postfix/main.cf:
108     smtpd_timeout = ${stress?10}${stress:300}
109     smtpd_hard_error_limit = ${stress?1}${stress:20}
111 Translation: under conditions of stress, use an smtpd_timeout value
112 of 10 seconds instead of 300, and use smtpd_hard_error_limit of 1
113 instead of 20. The syntax is explained in the postconf(5) manpage.
115 The STRESS_README file gives examples of how to mitigate flooding
116 problems.
118 Major changes - tls support
119 ---------------------------
121 [Incompat 20080109] TLS logging output has changed to make it more
122 useful. Existing logfile parser regular expressions may need
123 adjustment.
125 - More log entries include the "hostnamename[ipaddress]" of the
126   remote SMTP peer.
128 - Certificate trust chain error reports show only the first
129   error certificate (closest to the trust chain root), and the
130   reporting is more human-readable for the most likely errors.
132 - After the completion of the TLS handshake, the session is logged
133   with TLS loglevel >= 1 as either "Untrusted", "Trusted" or
134   "Verified" (SMTP client only).
135   - "Untrusted" means that the certificate trust chain is invalid,
136     or that the root CA is not trusted.
137   - "Trusted" means that the certificate trust chain is valid, and
138     that the root CA is trusted.
139   - "Verified" means that the certificate meets the SMTP client's
140     matching criteria for the destination:
141     - In the case of a destination name match, "Verified" also
142       implies "Trusted".
143     - In the case of a fingerprint match, CA trust is not applicable.
145 - The logging of protocol states with TLS loglevel >= 2 no longer
146   reports bogus error conditions when OpenSSL asks Postfix to refill
147   (or flush) network I/O buffers.  This loglevel is for debugging
148   only; use 0 or 1 in production configurations.
150 [Feature 20080109] The Postfix SMTP client has a new "fingerprint"
151 security level.  This avoids dependencies on CAs, and relies entirely
152 on bi-lateral exchange of public keys (really self-signed or private
153 CA signed X.509 public key certificates). Scalability is clearly
154 limited. For details, see the fingerprint discussion in TLS_README.
156 [Feature 20080109] The Postfix SMTP server can now use SHA1 instead
157 of MD5 to compute remote SMTP client certificate fingerprints. For
158 backwards compatibility, the default algorithm is MD5.  For details,
159 see the "smtpd_tls_fingerprint_digest" parameter in the postconf(5)
160 manual.
162 [Feature 20080109] The maximum certificate trust chain depth
163 (verifydepth) is finally implemented in the Postfix TLS library.
164 Previously, the parameter had no effect. The default depth was
165 changed to 9 (the OpenSSL default) for backwards compatibility.
167 If you have explicity limited the verification depth in main.cf,
168 check that the configured limit meets your needs. See the
169 "lmtp_tls_scert_verifydepth", "smtp_tls_scert_verifydepth" and
170 "smtpd_tls_ccert_verifydepth" parameters in the postconf(5) manual.
172 [Feature 20080109] The selection of SSL/TLS protocols for mandatory
173 TLS can now use exclusion rather than inclusion. Either form is
174 acceptable; see the "lmtp_tls_mandatory_protocols",
175 "smtp_tls_mandatory_protocols" and "smtpd_tls_mandatory_protocols"
176 parameters in the postconf(5) manual.
178 Major changes - scheduler
179 -------------------------
181 [Feature 20071130] Revised queue manager with separate mechanisms
182 for per-destination concurrency control and for dead destination
183 detection.  The concurrency control supports less-than-1 feedback
184 to allow for more gradual concurrency adjustments, and uses hysteresis
185 to avoid rapid oscillations.  A destination is declared "dead" after
186 a configurable number of pseudo-cohorts(*) reports connection or
187 handshake failure.
189 (*) A pseudo-cohort is a number of delivery requests equal to a
190     destination's delivery concurrency.
192 The drawbacks of the old +/-1 feedback scheduler are a) overshoot
193 due to exponential delivery concurrency growth with each pseudo-cohort(*)
194 (5-10-20...); b) throttling down to zero concurrency after a single
195 pseudo-cohort(*) failure. The latter was especially an issue with
196 low-concurrency channels where a single failure could be sufficient
197 to mark a destination as "dead", and suspend further deliveries.
199 New configuration parameters: destination_concurrency_feedback_debug,
200 default_destination_concurrency_positive_feedback,
201 default_destination_concurrency_negative_feedback,
202 default_destination_concurrency_failed_cohort_limit, as well as
203 transport-specific versions of the same.
205 The default parameter settings are backwards compatible with older
206 Postfix versions. This may change after better defaults are field
207 tested.
209 The updated SCHEDULER_README document describes the theory behind
210 the new concurrency scheduler, as well as Patrik Rak's preemptive
211 job scheduler. See postconf(5) for more extensive descriptions of
212 the configuration parameters.
214 Major changes - small/home office
215 ---------------------------------
217 [Feature 20080115] Preliminary SOHO_README document that combines
218 bits and pieces from other document in one place, so that it is
219 easier to find. This document describes the "mail sending" side
220 only.
222 [Feature 20071202] Output rate control in the queue manager. For
223 example, specify "smtp_destination_rate_delay = 5m", to pause five
224 minutes between message deliveries. More information in the postconf(5)
225 manual under "default_destination_rate_delay".
227 Major changes - smtp client
228 ---------------------------
230 [Incompat 20080114] The Postfix SMTP client now by default defers
231 mail after a remote SMTP server rejects a SASL authentication
232 attempt.  Specify "smtp_sasl_auth_soft_bounce = no" for the old
233 behavior.
235 [Feature 20080114] The Postfix SMTP client can now avoid making
236 repeated SASL login failures with the same server, username and
237 password.  To enable this safety feature, specify for example
238 "smtp_sasl_auth_cache_name = proxy:btree:/var/lib/postfix/sasl_auth_cache"
239 (access through the proxy service is required). Instead of trying
240 to SASL authenticate, the Postfix SMTP client defers or bounces
241 mail as controlled with the new smtp_sasl_auth_soft_bounce configuration
242 parameter.
244 [Feature 20071111] Header/body checks are now available in the SMTP
245 client, after the implementation was moved from the cleanup server
246 to a library module.  The SMTP client provides only actions that
247 don't change the message delivery time or destination: warn, replace,
248 prepend, ignore, dunno, ok.
250 [Incompat 20070614] By default, the Postfix Cyrus SASL client no
251 longer sends a SASL authoriZation ID (authzid); it sends only the
252 SASL authentiCation ID (authcid) plus the authcid's password. Specify
253 "send_cyrus_sasl_authzid = yes" to get the old behavior.
255 Major changes - smtp server
256 ---------------------------
258 [Feature 20070724] Not really major. New support for RFC 3848
259 (Received: headers with ESMTPS, ESMTPA, or ESMTPSA); updated SASL
260 support according to RFC 4954, resulting in small changes to SMTP
261 reply codes and (DSN) enhanced status codes.
263 Major changes - milter
264 ----------------------
266 [Incompat 20071224] The protocol to send Milter information from
267 smtpd(8) to cleanup(8) processes was cleaned up. If you use the
268 Milter feature, and upgrade a live Postfix system, you may see an
269 "unexpected record type" warning from a cleanup(8) server process.
270 To prevent this, execute the command "postfix reload".  The
271 incompatibility affects only systems that use the Milter feature.
272 It does not cause loss of mail, just a minor delay until the remote
273 SMTP client retries.
275 [Feature 20071221] Support for most of the Sendmail 8.14 Milter
276 protocol features.
278 To enable the new features specify "milter_protocol = 6" and link
279 the filter application with a libmilter library from Sendmail 8.14
280 or later.
282 Sendmail 8.14 Milter features supported at this time:
284 - NR_CONN, NR_HELO, NR_MAIL, NR_RCPT, NR_DATA, NR_UNKN, NR_HDR, 
285   NR_EOH, NR_BODY: The filter can tell Postfix that it won't reply
286   to some of the SMTP events that Postfix sends. This makes the      
287   protocol less chatty and improves performance.
289 - SKIP: The filter can tell Postfix to skip sending the rest of    
290   the message body, which also improves performance.
292 - HDR_LEADSPC: The filter can request that Postfix does not delete 
293   the first space character between header name and header value       
294   when sending a header to the filter, and that Postfix does not
295   insert a space character between header name and header value 
296   when receiving a header from the filter.  This fixes a limitation
297   in the old Milter protocol that can break DKIM and DK signatures.
299 - SETSYMLIST: The filter can override one or more of the main.cf
300   milter_xxx_macros parameter settings.
302 Sendmail 8.14 Milter features not supported at this time:
304 - RCPT_REJ: report rejected recipients to the mail filter. 
306 - CHGFROM: replace sender, with optional ESMTP command parameters.
308 - ADDRCPT_PAR: add recipient, with optional ESMTP command parameters.
310 It is unclear when (if ever) the missing features will be implemented.
311 SMFIP_RCPT_REJ requires invasive changes in the SMTP server recipient
312 processing and error handling.  SMFIR_CHGFROM and SMFIR_ADDRCPT_PAR
313 require ESMTP command-line parsing in the cleanup server. Unfortunately,
314 Sendmail's documentation does not specify what ESMTP options are
315 supported, but only discusses examples of things that don't work.
317 Major changes - address verification
318 ------------------------------------
320 [Incompat 20070514] The default sender address for address verification
321 probes was changed from "postmaster" to "double-bounce", so that
322 the Postfix SMTP server no longer causes surprising behavior by
323 excluding "postmaster" from SMTP server access controls.
325 Major changes - ldap
326 --------------------
328 [Incompat 20071216] Due to an incompatible API change between
329 OpenLDAP 2.0.11 and 2.0.12, an LDAP client compiled for OpenLDAP
330 version <= 2.0.11 will refuse to work with an OpenLDAP library
331 version >= 2.0.12 and vice versa.
333 Major changes - logging
334 -----------------------
336 [Incompat 20080109] TLS logging output has changed to make it more
337 useful. Existing logfile parser regular expressions may need
338 adjustment.
340 - More log entries include the "hostnamename[ipaddress]" of the
341   remote SMTP peer.
343 - Certificate trust chain error reports show only the first
344   error certificate (closest to the trust chain root), and the
345   reporting is more human-readable for the most likely errors.
347 - After the completion of the TLS handshake, the session is logged
348   with TLS loglevel >= 1 as either "Untrusted", "Trusted" or
349   "Verified" (SMTP client only).
350   - "Untrusted" means that the certificate trust chain is invalid,
351     or that the root CA is not trusted.
352   - "Trusted" means that the certificate trust chain is valid, and
353     that the root CA is trusted.
354   - "Verified" means that the certificate meets the SMTP client's
355     matching criteria for the destination:
356     - In the case of a destination name match, "Verified" also
357       implies "Trusted".
358     - In the case of a fingerprint match, CA trust is not applicable.
360 - The logging of protocol states with TLS loglevel >= 2 no longer
361   reports bogus error conditions when OpenSSL asks Postfix to refill
362   (or flush) network I/O buffers.  This loglevel is for debugging
363   only; use 0 or 1 in production configurations.
365 [Incompat 20071216] The SMTP "transcript of session" email now
366 includes the remote SMTP server TCP port number.
368 Major changes - loop detection
369 ------------------------------
371 [Incompat 20070422] [Incompat 20070422] When the pipe(8) delivery
372 agent is configured to create the optional Delivered-To: header,
373 it now first checks if that same header is already present in the
374 message. If so, the message is returned as undeliverable. This test
375 should have been included with Postfix 2.0 when Delivered-To: support
376 was added to the pipe(8) delivery agent.