]> git.ipfire.org Git - thirdparty/postfix.git/commitdiff
postfix-2.11-20130211
authorWietse Venema <wietse@porcupine.org>
Mon, 11 Feb 2013 17:00:00 +0000 (12:00 -0500)
committerViktor Dukhovni <viktor@twosigma.com>
Tue, 12 Feb 2013 04:17:30 +0000 (23:17 -0500)
postfix/HISTORY
postfix/README_FILES/INSTALL
postfix/RELEASE_NOTES
postfix/RELEASE_NOTES_2.10 [new file with mode: 0644]
postfix/html/INSTALL.html
postfix/html/postconf.5.html
postfix/man/man5/postconf.5
postfix/proto/INSTALL.html
postfix/proto/postconf.proto
postfix/src/global/mail_version.h
postfix/src/smtp/smtp_session.c

index b3b1a2834ecc7b05715547d93b90fe5cb84b2d32..1793ebebbec94a6bbf7d472e9ecd2f52fd50d3f7 100644 (file)
@@ -18242,3 +18242,8 @@ Apologies for any names omitted.
        = yes" if you need backwards compatibility. Fix by Victor
        Duchovni, BC added by Wietse.  Files: tls/tls_verify.c,
        tls/tls_misc.c, proto/TLS_README.html, global/mail_params.h.
+
+20130210
+
+       Bugfix: an error handler for smtp_tls_policy_maps lookups
+       was never invoked.  File: smtp/smtp_session.c.
index 05c7283ec267f54ca57cff53495cb9a5967716e1..2ab58b4e970cab413403ae6014a187c732b42164 100644 (file)
@@ -43,7 +43,7 @@ should be executed as the superuser.
 
 A command written as
 
-    % command
+    $ command
 
 should be executed as an unprivileged user.
 
@@ -58,14 +58,14 @@ because the files use backspace characters in order to produce b\bbo\bol\bld\bd font
 print a README file without backspace characters, use the col(1) command. For
 example:
 
-    % col -bx <file | lpr
+    $ col -bx <file | lpr
 
 In order to view the manual pages before installing Postfix, point your MANPATH
 environment variable to the "man" subdirectory; be sure to use an absolute
 path.
 
-    % export MANPATH; MANPATH="`pwd`/man:$MANPATH"
-    % setenv MANPATH "`pwd`/man:$MANPATH"
+    $ export MANPATH; MANPATH="`pwd`/man:$MANPATH"
+    $ setenv MANPATH "`pwd`/man:$MANPATH"
 
 Of particular interest is the postconf(5) manual page that lists all the 500+
 configuration parameters. The HTML version of this text makes it easy to
@@ -80,22 +80,20 @@ At some point in time, a version of Postfix was supported on:
 
     AIX 3.2.5, 4.1.x, 4.2.0, 4.3.x, 5.2
     BSD/OS 2.x, 3.x, 4.x
-    Darwin 1.x
-    FreeBSD 2.x, 3.x, 4.x, 5.x
+    FreeBSD 2.x .. 9.x
     HP-UX 9.x, 10.x, 11.x
     IRIX 5.x, 6.x
-    Linux Debian 1.3.1, 2.x, 3.x
-    Linux RedHat 3.x (January 2004) - 9.x
-    Linux Slackware 3.x, 4.x, 7.x
-    Linux SuSE 5.x, 6.x, 7.x
-    Linux Ubuntu 4.10..7.04
+    Linux Debian 1.3.1 and later
+    Linux RedHat 3.x (January 2004) and later
+    Linux Slackware 3.x and later
+    Linux SuSE 5.x and later
+    Linux Ubuntu 4.10 and later
     Mac OS X
     NEXTSTEP 3.x
-    NetBSD 1.x
+    NetBSD 1.x and later
     OPENSTEP 4.x
     OSF1.V3 - OSF1.V5 (Digital UNIX)
     Reliant UNIX 5.x
-    Rhapsody 5.x
     SunOS 4.1.4 (March 2007)
     SunOS 5.4 - 5.10 (Solaris 2.4..10)
     Ultrix 4.x (well, that was long ago)
@@ -118,12 +116,12 @@ If at any time in the build process you get messages like: "make: don't know
 how to ..." you should be able to recover by running the following command from
 the Postfix top-level directory:
 
-    % make -f Makefile.init makefiles
+    $ make -f Makefile.init makefiles
 
 If you copied the Postfix source code after building it on another machine, it
 is a good idea to cd into the top-level directory and first do this:
 
-    % make tidy
+    $ make tidy
 
 This will get rid of any system dependencies left over from compiling the
 software elsewhere.
@@ -134,19 +132,19 @@ To build with GCC, or with the native compiler if people told me that is better
 for your system, just cd into the top-level Postfix directory of the source
 tree and type:
 
-    % make
+    $ make
 
 To build with a non-default compiler, you need to specify the name of the
 compiler. Here are a few examples:
 
-    % make makefiles CC=/opt/SUNWspro/bin/cc        (Solaris)
-    % make
+    $ make makefiles CC=/opt/SUNWspro/bin/cc        (Solaris)
+    $ make
 
-    % make makefiles CC="/opt/ansic/bin/cc -Ae"     (HP-UX)
-    % make
+    $ make makefiles CC="/opt/ansic/bin/cc -Ae"     (HP-UX)
+    $ make
 
-    % make makefiles CC="purify cc"
-    % make
+    $ make makefiles CC="purify cc"
+    $ make
 
 and so on. In some cases, optimization is turned off automatically.
 
@@ -187,8 +185,8 @@ configuration file, except for one: the parameter that specifies the location
 of Postfix configuration files. In order to build Postfix with a configuration
 directory other than /etc/postfix, use:
 
-    % make makefiles CCARGS='-DDEF_CONFIG_DIR=\"/some/where\"'
-    % make
+    $ make makefiles CCARGS='-DDEF_CONFIG_DIR=\"/some/where\"'
+    $ make
 
 IMPORTANT: Be sure to get the quotes right. These details matter a lot.
 
@@ -227,8 +225,8 @@ introduced with Postfix version 2.5.
 
 The general method to override Postfix compile-time features is as follows:
 
-    % make makefiles name=value name=value...
-    % make
+    $ make makefiles name=value name=value...
+    $ make
 
 The following is an extensive list of names and values.
 
@@ -322,7 +320,7 @@ descriptors per process is limited by the value of the FD_SETSIZE macro. If you
 expect to run more than 1000 mail delivery processes, you may need to override
 the definition of the FD_SETSIZE macro to make select() work correctly:
 
-    % make makefiles CCARGS=-DFD_SETSIZE=2048
+    $ make makefiles CCARGS=-DFD_SETSIZE=2048
 
 Warning: the above has no effect on some Linux versions. Apparently, on these
 systems the FD_SETSIZE value can be changed only by using undocumented
@@ -338,7 +336,7 @@ examples of how to increase the number of open sockets or files.
 
 If the command
 
-    % make
+    $ make
 
 is successful, then you can proceed to install Postfix (section 6).
 
@@ -485,18 +483,18 @@ and watch your maillog file for any error messages. The pathname is /var/log/
 maillog, /var/log/mail, /var/log/syslog, or something else. Typically, the
 pathname is defined in the /etc/syslog.conf file.
 
-    % egrep '(reject|warning|error|fatal|panic):' /some/log/file
+    $ egrep '(reject|warning|error|fatal|panic):' /some/log/file
 
 Note: the most important error message is logged first. Later messages are not
 as useful.
 
 In order to inspect the mail queue, use one of the following commands:
 
-    % mailq
+    $ mailq
 
-    % sendmail -bp
+    $ sendmail -bp
 
-    % postqueue -p
+    $ postqueue -p
 
 See also the "Care and feeding" section 12 below.
 
@@ -535,18 +533,18 @@ and watch your maillog file for any error messages. The pathname is /var/log/
 maillog, /var/log/mail, /var/log/syslog, or something else. Typically, the
 pathname is defined in the /etc/syslog.conf file.
 
-    % egrep '(reject|warning|error|fatal|panic):' /some/log/file
+    $ egrep '(reject|warning|error|fatal|panic):' /some/log/file
 
 Note: the most important error message is logged first. Later messages are not
 as useful.
 
 In order to inspect the mail queue, use one of the following commands:
 
-    % mailq
+    $ mailq
 
-    % sendmail -bp
+    $ sendmail -bp
 
-    % postqueue -p
+    $ postqueue -p
 
 See also the "Care and feeding" section 12 below.
 
@@ -575,18 +573,18 @@ and watch your maillog file for any error messages. The pathname is /var/log/
 maillog, /var/log/mail, /var/log/syslog, or something else. Typically, the
 pathname is defined in the /etc/syslog.conf file.
 
-    % egrep '(reject|warning|error|fatal|panic):' /some/log/file
+    $ egrep '(reject|warning|error|fatal|panic):' /some/log/file
 
 Note: the most important error message is logged first. Later messages are not
 as useful.
 
 In order to inspect the mail queue, use one of the following commands:
 
-    % mailq
+    $ mailq
 
-    % sendmail -bp
+    $ sendmail -bp
 
-    % postqueue -p
+    $ postqueue -p
 
 See also the "Care and feeding" section 12 below.
 
index ee934835733d3f3eb549da7c2c34dee93eb158ac..41818732b9e5ae858e0c589728b373318598065c 100644 (file)
@@ -11,283 +11,5 @@ instead, a new snapshot is released.
 The mail_release_date configuration parameter (format: yyyymmdd)
 specifies the release date of a stable release or snapshot release.
 
-If you upgrade from Postfix 2.8 or earlier, read RELEASE_NOTES-2.9
+If you upgrade from Postfix 2.9 or earlier, read RELEASE_NOTES-2.10
 before proceeding.
-
-Incompatible changes with snapshot 20130203
-===========================================
-
-Thanks to OpenSSL documentation, the Postfix 2.9.0..2.9.5 SMTP
-client and server computed incorrect TLS certificate PUBLIC-KEY
-fingerprints.  Support for certificate PUBLIC-KEY finger prints
-was introduced with Postfix 2.9; there is no known problem with the
-certificate fingerprint algorithms available since Postfix 2.2.
-
-Certificate PUBLIC-KEY finger prints may be used in the Postfix
-SMTP server (with "check_ccert_access") and in the Postfix SMTP
-client (with the "fingerprint" security level).  
-
-Specify "tls_legacy_public_key_fingerprints = yes" temporarily,
-pending a migration from configuration files with incorrect Postfix
-2.9.0..2.9.5 certificate PUBLIC-KEY finger prints, to the correct
-fingerprints used by Postfix 2.9.6 and later.
-
-To compute the correct PUBLIC-KEY finger prints:
-
-# OpenSSL 1.0 with all certificates and SHA-1 fingerprints.
-$ openssl x509 -in cert.pem -noout -pubkey | \
-    openssl pkey -pubin -outform DER | \
-    openssl dgst -sha1 -c
-
-# OpenSSL 0.9.8 with RSA certificates and MD5 fingerprints.
-$ openssl x509 -in cert.pem -noout -pubkey | \
-    openssl rsa -pubin -outform DER | \
-    openssl dgst -md5 -c
-
-Incompatible changes with snapshot 20130201
-===========================================
-
-The "postconf -Mn" feature is withdrawn, in favor of a better design
-that not only supports queries but also updates of named properties
-of a master.cf service entry. But there is not enough time to finish
-that for Postfix 2.10.
-
-Incompatible changes with snapshot 20121224
-===========================================
-
-The postconf command produces more warnings:
-
-- An attempt to modify a read-only parameter (process_name, process_id)
-  in main.cf or master.cf.
-
-- An undefined $name in a parameter value in main.cf or master.cf
-  (except for backwards-compatibility parameters such as $virtual_maps).
-
-Major changes with snapshot 20121224
-====================================
-
-The postconf command has been updated to make trouble-shooting (and
-support) easier. In summary, use "postconf -Mxf" and "postconf -nxf"
-to review master.cf and main.cf parameter settings with expanded
-parameter values.
-
-- "postconf -x" now expands $name in main.cf and master.cf parameter
-  values.
-
-- postconf warns about attempts to modify a read-only parameter
-  (process_name, process_id) in main.cf or master.cf.
-
-- postconf warns about an undefined $name in a parameter value in
-  main.cf or master.cf (except for backwards-compatibility parameters
-  such as $virtual_maps).
-
-Added with snapshot 20121227:
-
-- "postconf -o name=value" overrides main.cf parameter settings.
-  This can be used, for example, to examine stress-dependent settings
-  with "postconf -x -o stress=yes".
-
-Incompatible changes with snapshot 20121123
-===========================================
-
-The postscreen deep protocol tests now log the last command before
-a protocol error ("UNIMPLEMENTED" when the last command is not
-implemented, "CONNECT" when there was no prior command). The
-changed logfile messages are:
-
-NON-SMTP COMMAND from [address]:port after command: text
-BARE NEWLINE from [address]:port after command
-COMMAND TIME LIMIT from [address]:port after command
-COMMAND COUNT LIMIT from [address]:port after command
-COMMAND LENGTH LIMIT from [address]:port after command
-
-Incompatible changes with snapshot 20121007
-===========================================
-
-As part of a forward compatibility safety net, the Postfix installation
-procedure adds the following smtpd_relay_restrictions entry to
-main.cf when there is none:
-
-    smtpd_relay_restrictions = 
-       permit_mynetworks 
-       permit_sasl_authenticated 
-       defer_unauth_destination
-
-If your site has a complex mail relay policy configured under
-smtpd_recipient_restrictions, this safety net will defer mail that
-the built-in smtpd_relay_restrictions setting would bounce. 
-
-To eliminate this safety net, take one of the following three
-actions:
-
-- Set smtpd_relay_restrictions empty, and keep using the existing
-  mail relay authorization policy in smtpd_recipient_restrictions.
-
-- Copy the existing mail relay authorization policy from
-  smtpd_recipient_restrictions to smtpd_relay_restrictions.
-
-- Set smtpd_relay_restrictions by hand to the new built-in
-  policy: permit_mynetworks reject_unauth_destination.
-
-There is no need to change the value of smtpd_recipient_restrictions.
-
-Major changes with snapshot 20121007
-====================================
-
-This version introduces the smtpd_relay_restrictions feature
-for mail relay control. The new built-in default settings are:
-
-    smtpd_relay_restrictions = 
-       permit_mynetworks 
-       reject_unauth_destination
-
-    smtpd_recipient_restrictions =
-       ( optional spam blocking rules would go here )
-
-For comparison, this is the Postfix before 2.10 default:
-
-    smtpd_recipient_restrictions =
-       permit_mynetworks 
-       reject_unauth_destination
-       ( optional spam blocking rules would go here )
-
-With Postfix versions before 2.10, the mail relay policy and spam
-blocking policy were combined under smtpd_recipient_restrictions,
-resulting in error-prone configuration.
-
-As of Postfix 2.10, the mail relay policy is preferably implemented
-with smtpd_relay_restrictions, so that a permissive spam blocking
-policy under smtpd_recipient_restrictions will not unexpectedly
-result in a permissive mail relay policy.
-
-As usual, this new feature is introduced with safety nets to prevent
-surprises when a site upgrades from an earlier Postfix release.
-
-1 - FORWARD COMPATIBILITY SAFETY NET: the Postfix installation
-    procedure adds the following smtpd_relay_restrictions entry to
-    main.cf when there is none:
-
-    smtpd_relay_restrictions = 
-       permit_mynetworks 
-       permit_sasl_authenticated 
-       defer_unauth_destination
-
-    If your site has a complex mail relay policy configured under
-    smtpd_recipient_restrictions, this safety net will defer mail
-    that the built-in smtpd_relay_restrictions setting would bounce.
-
-    To eliminate this safety net, take one of the following three
-    actions:
-
-    - Set smtpd_relay_restrictions empty, and keep using the existing
-      mail relay authorization policy in smtpd_recipient_restrictions.
-
-    - Copy the existing mail relay authorization policy from
-      smtpd_recipient_restrictions to smtpd_relay_restrictions.
-
-    - Set smtpd_relay_restrictions by hand to the new built-in
-      policy: permit_mynetworks reject_unauth_destination.
-
-    There is no need to change the value of smtpd_recipient_restrictions.
-
-2 - BACKWARDS COMPATIBILITY SAFETY NET: sites that migrate from
-    Postfix versions before 2.10 can set smtpd_relay_restrictions
-    to the empty value, and use smtpd_recipient_restrictions exactly
-    as they used it before.
-
-Incompatible changes with snapshot 20120924
-===========================================
-
-Postfix no longer uses FIFOs to emulate UNIX-domain sockets on
-Solaris 9 (Vintage 2002!) and later. If you install Postfix for
-the first time on an older Solaris system, edit the master.cf file
-and replace "unix" with "fifo" for the pickup and qmgr services.
-
-Major changes with snapshot 20120924
-====================================
-
-Laptop-friendliness: the default master.cf file now uses "unix"
-instead of "fifo" for the pickup and qmgr services. This avoids
-periodic disk drive spin-up.
-
-Incompatible changes with snapshot 20120625
-===========================================
-
-The postscreen(8)-to-smtpd(8) protocol has changed.  To avoid "cannot
-receive connection attributes" warnings and dropped connections,
-execute the command "postfix reload". No mail will be lost as long
-as the remote SMTP client tries again later.
-
-Major changes with snapshot 20120625
-====================================
-
-Support for upstream proxy agent in the postscreen(8) and smtpd(8)
-daemons.  To enable the haproxy protocol, specify one of the
-following:
-
-    postscreen_upstream_proxy_protocol = haproxy
-    smtpd_upstream_proxy_protocol = haproxy
-
-Note 1: smtpd_upstream_proxy_protocol can't be used in smtpd processes
-that are behind postscreen. Configure postscreen_upstream_proxy_protocol
-instead.
-
-Note 2: To use the nginx proxy with smtpd(8), enable the XCLIENT
-protocol with smtpd_authorized_xclient_hosts. This supports SASL
-authentication in the proxy agent (Postfix 2.9 and later).
-
-Major changes with snapshot 20120422
-====================================
-
-This release adds support to turn off the TLSv1.1 and TLSv1.2
-protocols.  Introduced with OpenSSL version 1.0.1, these are known
-to cause inter-operability problems with for example hotmail.
-
-The radical workaround is to temporarily turn off problematic
-protocols globally:
-
-/etc/postfix/main.cf:
-    smtp_tls_protocols = !SSLv2, !TLSv1.1, !TLSv1.2
-    smtp_tls_mandatory_protocols = !SSLv2, !TLSv1.1, !TLSv1.2
-
-    smtpd_tls_protocols = !SSLv2, !TLSv1.1, !TLSv1.2
-    smtpd_tls_mandatory_protocols = !SSLv2, !TLSv1.1, !TLSv1.2
-
-However, it may be better to temporarily turn off problematic
-protocols for broken sites only:
-
-/etc/postfix/main.cf:
-    smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
-
-/etc/postfix/tls_policy:
-    example.com         may protocols=!SSLv2:!TLSv1.1:!TLSv1.2
-
-Important:
-
-- Note the use of ":" instead of comma or space. Also, note that
-  there is NO space around the "=" in "protocols=".
-
-- The smtp_tls_policy_maps lookup key must match the "next-hop"
-  destination that is given to the Postfix SMTP client. If you
-  override the next-hop destination with transport_maps, relayhost,
-  sender_dependent_relayhost_maps, or otherwise, you need to specify
-  the same destination for the smtp_tls_policy_maps lookup key.
-
-Major changes with snapshot 20120306
-====================================
-
-New master "-w" option, to wait for daemon process initialization
-to complete. This feature returns an error exit status if master
-daemon initialization fails, or if it does not complete in a
-reasonable amount of time. The exit status is used by "postfix
-start" to provide more accurate information to system start-up
-scripts.
-
-Major changes with snapshot 20120303
-====================================
-
-New control for "permit" logging in smtpd_mumble_restrictions (by
-default, the SMTP server logs "reject" actions but not "permit"
-actions).  Specify "smtpd_log_access_permit_actions = static:all"
-to log all "permit"-style actions, or specify a list of explicit
-action names.  More details are in the postconf(5) manpage.
diff --git a/postfix/RELEASE_NOTES_2.10 b/postfix/RELEASE_NOTES_2.10
new file mode 100644 (file)
index 0000000..8e269c2
--- /dev/null
@@ -0,0 +1,277 @@
+The stable Postfix release is called postfix-2.10.x where 2=major
+release number, 10=minor release number, x=patchlevel.  The stable
+release never changes except for patches that address bugs or
+emergencies. Patches change the patchlevel and the release date.
+
+New features are developed in snapshot releases. These are called
+postfix-2.11-yyyymmdd where yyyymmdd is the release date (yyyy=year,
+mm=month, dd=day).  Patches are never issued for snapshot releases;
+instead, a new snapshot is released.
+
+The mail_release_date configuration parameter (format: yyyymmdd)
+specifies the release date of a stable release or snapshot release.
+
+If you upgrade from Postfix 2.8 or earlier, read RELEASE_NOTES-2.9
+before proceeding.
+
+Major changes - laptop-friendliness
+-----------------------------------
+
+[Incompat 20120924] Postfix no longer uses FIFOs to emulate UNIX-domain
+sockets on Solaris 9 (Vintage 2002!) and later. If you install
+Postfix for the first time on an older Solaris system, edit the
+master.cf file and replace "unix" with "fifo" for the pickup and
+qmgr services.
+
+[Feature 20120924] the default master.cf file now uses "unix" instead
+of "fifo" for the pickup and qmgr services. This avoids periodic
+disk drive spin-up.
+
+Major changes - permit logging
+------------------------------
+
+[Feature 20120303] [Feature 20120303] New control for "permit"
+logging in smtpd_mumble_restrictions (by default, the SMTP server
+logs "reject" actions but not "permit" actions).  Specify
+"smtpd_log_access_permit_actions = static:all" to log all "permit"-style
+actions, or specify a list of explicit action names.  More details
+are in the postconf(5) manpage.  
+
+Major changes - postconf
+------------------------
+
+[Incompat 20121224] The postconf command produces more warnings:
+
+- An attempt to modify a read-only parameter (process_name, process_id)
+  in main.cf or master.cf.
+
+- An undefined $name in a parameter value in main.cf or master.cf
+  (except for backwards-compatibility parameters such as $virtual_maps).
+
+[Feature 20121224] The postconf command has been updated to make
+trouble-shooting (and support) easier. In summary, use "postconf
+-Mxf" and "postconf -nxf" to review master.cf and main.cf parameter
+settings with expanded parameter values.
+
+- "postconf -x" now expands $name in main.cf and master.cf parameter
+  values.
+
+- postconf warns about attempts to modify a read-only parameter
+  (process_name, process_id) in main.cf or master.cf.
+
+- postconf warns about an undefined $name in a parameter value in
+  main.cf or master.cf (except for backwards-compatibility parameters
+  such as $virtual_maps).
+
+[Feature 20121227]
+
+- "postconf -o name=value" overrides main.cf parameter settings.
+  This can be used, for example, to examine stress-dependent settings
+  with "postconf -x -o stress=yes".
+
+Major changes - postscreen
+--------------------------
+
+[Incompat 20121123] The postscreen deep protocol tests now log the
+last command before a protocol error ("UNIMPLEMENTED" when the last
+command is not implemented, "CONNECT" when there was no prior
+command). The changed logfile messages are:
+
+NON-SMTP COMMAND from [address]:port after command: text
+BARE NEWLINE from [address]:port after command
+COMMAND TIME LIMIT from [address]:port after command
+COMMAND COUNT LIMIT from [address]:port after command
+COMMAND LENGTH LIMIT from [address]:port after command
+
+Major changes - load-balancer support
+-------------------------------------
+
+[Incompat 20120625] The postscreen(8)-to-smtpd(8) protocol has
+changed.  To avoid "cannot receive connection attributes" warnings
+and dropped connections, execute the command "postfix reload". No
+mail will be lost as long as the remote SMTP client tries again
+later.
+
+[Feature 20120625] Support for upstream proxy agent in the postscreen(8)
+and smtpd(8) daemons.  To enable the haproxy protocol, specify one
+of the following:
+
+    postscreen_upstream_proxy_protocol = haproxy
+    smtpd_upstream_proxy_protocol = haproxy
+
+Note 1: smtpd_upstream_proxy_protocol can't be used in smtpd processes
+that are behind postscreen. Configure postscreen_upstream_proxy_protocol
+instead.
+
+Note 2: To use the nginx proxy with smtpd(8), enable the XCLIENT
+protocol with smtpd_authorized_xclient_hosts. This supports SASL
+authentication in the proxy agent (Postfix 2.9 and later).
+
+Major changes - relay safety
+----------------------------
+
+[Incompat 20121007] As part of a forward compatibility safety net,
+the Postfix installation procedure adds the following
+smtpd_relay_restrictions entry to main.cf when there is none:
+
+    smtpd_relay_restrictions = 
+       permit_mynetworks 
+       permit_sasl_authenticated 
+       defer_unauth_destination
+
+If your site has a complex mail relay policy configured under
+smtpd_recipient_restrictions, this safety net will defer mail that
+the built-in smtpd_relay_restrictions setting would bounce. 
+
+To eliminate this safety net, take one of the following three
+actions:
+
+- Set smtpd_relay_restrictions empty, and keep using the existing
+  mail relay authorization policy in smtpd_recipient_restrictions.
+
+- Copy the existing mail relay authorization policy from
+  smtpd_recipient_restrictions to smtpd_relay_restrictions.
+
+- Set smtpd_relay_restrictions by hand to the new built-in
+  policy: permit_mynetworks reject_unauth_destination.
+
+There is no need to change the value of smtpd_recipient_restrictions.
+
+[Feature 20121007] This version introduces the smtpd_relay_restrictions
+feature for mail relay control. The new built-in default settings
+are:
+
+    smtpd_relay_restrictions = 
+       permit_mynetworks 
+       reject_unauth_destination
+
+    smtpd_recipient_restrictions =
+       ( optional spam blocking rules would go here )
+
+For comparison, this is the Postfix before 2.10 default:
+
+    smtpd_recipient_restrictions =
+       permit_mynetworks 
+       reject_unauth_destination
+       ( optional spam blocking rules would go here )
+
+With Postfix versions before 2.10, the mail relay policy and spam
+blocking policy were combined under smtpd_recipient_restrictions,
+resulting in error-prone configuration.
+
+As of Postfix 2.10, the mail relay policy is preferably implemented
+with smtpd_relay_restrictions, so that a permissive spam blocking
+policy under smtpd_recipient_restrictions will not unexpectedly
+result in a permissive mail relay policy.
+
+As usual, this new feature is introduced with safety nets to prevent
+surprises when a site upgrades from an earlier Postfix release.
+
+1 - FORWARD COMPATIBILITY SAFETY NET: the Postfix installation
+    procedure adds the following smtpd_relay_restrictions entry to
+    main.cf when there is none:
+
+    smtpd_relay_restrictions = 
+       permit_mynetworks 
+       permit_sasl_authenticated 
+       defer_unauth_destination
+
+    If your site has a complex mail relay policy configured under
+    smtpd_recipient_restrictions, this safety net will defer mail
+    that the built-in smtpd_relay_restrictions setting would bounce.
+
+    To eliminate this safety net, take one of the following three
+    actions:
+
+    - Set smtpd_relay_restrictions empty, and keep using the existing
+      mail relay authorization policy in smtpd_recipient_restrictions.
+
+    - Copy the existing mail relay authorization policy from
+      smtpd_recipient_restrictions to smtpd_relay_restrictions.
+
+    - Set smtpd_relay_restrictions by hand to the new built-in
+      policy: permit_mynetworks reject_unauth_destination.
+
+    There is no need to change the value of smtpd_recipient_restrictions.
+
+2 - BACKWARDS COMPATIBILITY SAFETY NET: sites that migrate from
+    Postfix versions before 2.10 can set smtpd_relay_restrictions
+    to the empty value, and use smtpd_recipient_restrictions exactly
+    as they used it before.
+
+Major changes - start-up
+------------------------
+
+[Feature 20120306] New master "-w" option, to wait for master daemon
+process initialization to complete. This feature returns an error
+exit status if master daemon initialization fails, or if it does
+not complete in a reasonable amount of time. The exit status is
+used by "postfix start" to provide more accurate information to
+system start-up scripts.
+
+Major changes - tls
+-------------------
+
+[Incompat 20130203] Thanks to OpenSSL documentation, the Postfix
+2.9.0..2.9.5 SMTP client and server server used an incorrect procedure
+to compute TLS certificate PUBLIC-KEY fingerprints (these may be
+used in the check_ccert_access and in smtp_tls_policy_maps features).
+Support for certificate PUBLIC-KEY finger prints was introduced
+with Postfix 2.9; there is no known problem with the certificate
+fingerprint algorithms available since Postfix 2.2.
+
+Certificate PUBLIC-KEY finger prints may be used in the Postfix
+SMTP server (with "check_ccert_access") and in the Postfix SMTP
+client (with the "fingerprint" security level).  
+
+Specify "tls_legacy_public_key_fingerprints = yes" temporarily,
+pending a migration from configuration files with incorrect Postfix
+2.9.0..2.9.5 certificate PUBLIC-KEY finger prints, to the correct
+fingerprints used by Postfix 2.9.6 and later.
+
+To compute the correct PUBLIC-KEY finger prints:
+
+# OpenSSL 1.0 with all certificates and SHA-1 fingerprints.
+$ openssl x509 -in cert.pem -noout -pubkey | \
+    openssl pkey -pubin -outform DER | \
+    openssl dgst -sha1 -c
+
+# OpenSSL 0.9.8 with RSA certificates and MD5 fingerprints.
+$ openssl x509 -in cert.pem -noout -pubkey | \
+    openssl rsa -pubin -outform DER | \
+    openssl dgst -md5 -c
+
+[Feature 20120422] This release adds support to turn off the TLSv1.1
+and TLSv1.2 protocols.  Introduced with OpenSSL version 1.0.1, these
+are known to cause inter-operability problems with for example
+hotmail.
+
+The radical workaround is to temporarily turn off problematic
+protocols globally:
+
+/etc/postfix/main.cf:
+    smtp_tls_protocols = !SSLv2, !TLSv1.1, !TLSv1.2
+    smtp_tls_mandatory_protocols = !SSLv2, !TLSv1.1, !TLSv1.2
+
+    smtpd_tls_protocols = !SSLv2, !TLSv1.1, !TLSv1.2
+    smtpd_tls_mandatory_protocols = !SSLv2, !TLSv1.1, !TLSv1.2
+
+However, it may be better to temporarily turn off problematic
+protocols for broken sites only:
+
+/etc/postfix/main.cf:
+    smtp_tls_policy_maps = hash:/etc/postfix/tls_policy
+
+/etc/postfix/tls_policy:
+    example.com         may protocols=!SSLv2:!TLSv1.1:!TLSv1.2
+
+Important:
+
+- Note the use of ":" instead of comma or space. Also, note that
+  there is NO space around the "=" in "protocols=".
+
+- The smtp_tls_policy_maps lookup key must match the "next-hop"
+  destination that is given to the Postfix SMTP client. If you
+  override the next-hop destination with transport_maps, relayhost,
+  sender_dependent_relayhost_maps, or otherwise, you need to specify
+  the same destination for the smtp_tls_policy_maps lookup key.
index 1622829abac44dee4b14f9cf1cd7067c0801a005..9356d7817e5a68773a449a9ebc6e35cdac250c15 100644 (file)
@@ -91,7 +91,7 @@ receive mail via virtual interface </a>
 
 <blockquote>
 <pre>
-% command
+$ command
 </pre>
 </blockquote>
 
@@ -110,7 +110,7 @@ characters, use the col(1) command.  For example: </p>
 
 <blockquote>
 <pre>
-% col -bx &lt;file | lpr
+$ col -bx &lt;file | lpr
 </pre>
 </blockquote>
 
@@ -120,8 +120,8 @@ be sure to use an absolute path.  </p>
 
 <blockquote>
 <pre>
-% export MANPATH; MANPATH="`pwd`/man:$MANPATH"
-% setenv MANPATH "`pwd`/man:$MANPATH"
+$ export MANPATH; MANPATH="`pwd`/man:$MANPATH"
+$ setenv MANPATH "`pwd`/man:$MANPATH"
 </pre>
 </blockquote>
 
@@ -141,22 +141,20 @@ mantools directory. </p>
 <p>
 AIX 3.2.5, 4.1.x, 4.2.0, 4.3.x, 5.2 <br>
 BSD/OS 2.x, 3.x, 4.x <br>
-Darwin 1.x <br>
-FreeBSD 2.x, 3.x, 4.x, 5.x <br>
+FreeBSD 2.x .. 9.x <br>
 HP-UX  9.x, 10.x, 11.x <br>
 IRIX 5.x, 6.x <br>
-Linux Debian 1.3.1, 2.x, 3.x <br>
-Linux RedHat 3.x (January 2004) - 9.x <br>
-Linux Slackware 3.x, 4.x, 7.x <br>
-Linux SuSE 5.x, 6.x, 7.x <br>
-Linux Ubuntu 4.10..7.04<br>
+Linux Debian 1.3.1 and later <br>
+Linux RedHat 3.x (January 2004) and later <br>
+Linux Slackware 3.x and later <br>
+Linux SuSE 5.x and later <br>
+Linux Ubuntu 4.10 and later<br>
 Mac OS X <br>
 NEXTSTEP 3.x <br>
-NetBSD 1.x <br>
+NetBSD 1.x and later <br>
 OPENSTEP 4.x <br>
 OSF1.V3 - OSF1.V5 (Digital UNIX) <br>
 Reliant UNIX 5.x <br>
-Rhapsody 5.x <br>
 SunOS 4.1.4 (March 2007) <br>
 SunOS 5.4 - 5.10 (Solaris 2.4..10) <br>
 Ultrix 4.x (well, that was long ago) <br>
@@ -184,7 +182,7 @@ the following command from the Postfix top-level directory: </p>
 
 <blockquote>
 <pre>
-% make -f Makefile.init makefiles
+$ make -f Makefile.init makefiles
 </pre>
 </blockquote>
 
@@ -194,7 +192,7 @@ first do this:</p>
 
 <blockquote>
 <pre>
-% make tidy
+$ make tidy
 </pre>
 </blockquote>
 
@@ -209,7 +207,7 @@ directory of the source tree and type: </p>
 
 <blockquote>
 <pre>
-% make
+$ make
 </pre>
 </blockquote>
 
@@ -218,14 +216,14 @@ of the compiler. Here are a few examples: </p>
 
 <blockquote> 
 <pre>
-% make makefiles CC=/opt/SUNWspro/bin/cc        (Solaris)
-% make
+$ make makefiles CC=/opt/SUNWspro/bin/cc        (Solaris)
+$ make
 
-% make makefiles CC="/opt/ansic/bin/cc -Ae"     (HP-UX)
-% make
+$ make makefiles CC="/opt/ansic/bin/cc -Ae"     (HP-UX)
+$ make
 
-% make makefiles CC="purify cc"
-% make
+$ make makefiles CC="purify cc"
+$ make
 </pre>
 </blockquote>
 
@@ -285,8 +283,8 @@ use: </p>
 
 <blockquote>
 <pre>
-% make makefiles CCARGS='-DDEF_CONFIG_DIR=\"/some/where\"'
-% make
+$ make makefiles CCARGS='-DDEF_CONFIG_DIR=\"/some/where\"'
+$ make
 </pre>
 </blockquote>
 
@@ -349,8 +347,8 @@ is as follows: </p>
 
 <blockquote>
 <pre>
-% make makefiles name=value name=value...
-% make
+$ make makefiles name=value name=value...
+$ make
 </pre>
 </blockquote>
 
@@ -460,7 +458,7 @@ macro to make select() work correctly: </p>
 
 <blockquote>
 <pre>
-% make makefiles CCARGS=-DFD_SETSIZE=2048
+$ make makefiles CCARGS=-DFD_SETSIZE=2048
 </pre>
 </blockquote>
 
@@ -482,7 +480,7 @@ number of open sockets or files. </p>
 
 <blockquote>
 <pre>
-% make
+$ make
 </pre>
 </blockquote>
 
@@ -693,7 +691,7 @@ file. </p>
 
 <blockquote>
 <pre>
-% egrep '(reject|warning|error|fatal|panic):' /some/log/file
+$ egrep '(reject|warning|error|fatal|panic):' /some/log/file
 </pre>
 </blockquote>
 
@@ -705,11 +703,11 @@ commands: </p>
 
 <blockquote>
 <pre>
-% mailq
+$ mailq
 
-% sendmail -bp
+$ sendmail -bp
 
-% postqueue -p
+$ postqueue -p
 </pre>
 </blockquote>
 
@@ -774,7 +772,7 @@ file. </p>
 
 <blockquote>
 <pre>
-% egrep '(reject|warning|error|fatal|panic):' /some/log/file
+$ egrep '(reject|warning|error|fatal|panic):' /some/log/file
 </pre>
 </blockquote>
 
@@ -786,11 +784,11 @@ commands: </p>
 
 <blockquote>
 <pre>
-% mailq
+$ mailq
 
-% sendmail -bp
+$ sendmail -bp
 
-% postqueue -p
+$ postqueue -p
 </pre>
 </blockquote>
 
@@ -839,7 +837,7 @@ file. </p>
 
 <blockquote>
 <pre>
-% egrep '(reject|warning|error|fatal|panic):' /some/log/file
+$ egrep '(reject|warning|error|fatal|panic):' /some/log/file
 </pre>
 </blockquote>
 
@@ -851,11 +849,11 @@ commands: </p>
 
 <blockquote>
 <pre>
-% mailq
+$ mailq
 
-% sendmail -bp
+$ sendmail -bp
 
-% postqueue -p
+$ postqueue -p
 </pre>
 </blockquote>
 
index 6a23f9ba23b3bb7e08b8ae56e08306a2b12e2794..0a8a9cf91b963c629e5472be804174488acbbe12 100644 (file)
@@ -11077,7 +11077,7 @@ $ openssl x509 -in cert.pem -noout -pubkey |
 </blockquote>
 
 <p> The Postfix SMTP server and client log the peer (leaf) certificate
-fingerprint and public key fingerprint when TLS loglevel is 1 or
+fingerprint and public key fingerprint when the TLS loglevel is 2 or
 higher. </p>
 
 <p> <b>Note:</b> Postfix 2.9.0&ndash;2.9.5 computed the public key
@@ -15051,7 +15051,7 @@ $ openssl x509 -in cert.pem -noout -pubkey |
 </blockquote>
 
 <p> The Postfix SMTP server and client log the peer (leaf) certificate
-fingerprint and public key fingerprint when TLS loglevel is 1 or
+fingerprint and public key fingerprint when the TLS loglevel is 2 or
 higher. </p>
 
 <p> <b>Note:</b> Postfix 2.9.0&ndash;2.9.5 computed the public key
index d2f6a7f1b4c1f5c0140a61c246aa29fcaee5c6c1..9e1b3e9bbddac767fd20b55d42f3735c845e95f0 100644 (file)
@@ -6890,7 +6890,7 @@ $ openssl x509 -in cert.pem -noout -pubkey |
 .in -4
 .PP
 The Postfix SMTP server and client log the peer (leaf) certificate
-fingerprint and public key fingerprint when TLS loglevel is 1 or
+fingerprint and public key fingerprint when the TLS loglevel is 2 or
 higher.
 .PP
 \fBNote:\fR Postfix 2.9.0&ndash;2.9.5 computed the public key
@@ -10118,7 +10118,7 @@ $ openssl x509 -in cert.pem -noout -pubkey |
 .in -4
 .PP
 The Postfix SMTP server and client log the peer (leaf) certificate
-fingerprint and public key fingerprint when TLS loglevel is 1 or
+fingerprint and public key fingerprint when the TLS loglevel is 2 or
 higher.
 .PP
 \fBNote:\fR Postfix 2.9.0&ndash;2.9.5 computed the public key
index 9df6d4d923556f06067689bf7ced3af7ad02d591..6e26141a02016e347104f6e4a0474c352dcbf625 100644 (file)
@@ -91,7 +91,7 @@ receive mail via virtual interface </a>
 
 <blockquote>
 <pre>
-% command
+$ command
 </pre>
 </blockquote>
 
@@ -110,7 +110,7 @@ characters, use the col(1) command.  For example: </p>
 
 <blockquote>
 <pre>
-% col -bx &lt;file | lpr
+$ col -bx &lt;file | lpr
 </pre>
 </blockquote>
 
@@ -120,8 +120,8 @@ be sure to use an absolute path.  </p>
 
 <blockquote>
 <pre>
-% export MANPATH; MANPATH="`pwd`/man:$MANPATH"
-% setenv MANPATH "`pwd`/man:$MANPATH"
+$ export MANPATH; MANPATH="`pwd`/man:$MANPATH"
+$ setenv MANPATH "`pwd`/man:$MANPATH"
 </pre>
 </blockquote>
 
@@ -141,22 +141,20 @@ mantools directory. </p>
 <p>
 AIX 3.2.5, 4.1.x, 4.2.0, 4.3.x, 5.2 <br>
 BSD/OS 2.x, 3.x, 4.x <br>
-Darwin 1.x <br>
-FreeBSD 2.x, 3.x, 4.x, 5.x <br>
+FreeBSD 2.x .. 9.x <br>
 HP-UX  9.x, 10.x, 11.x <br>
 IRIX 5.x, 6.x <br>
-Linux Debian 1.3.1, 2.x, 3.x <br>
-Linux RedHat 3.x (January 2004) - 9.x <br>
-Linux Slackware 3.x, 4.x, 7.x <br>
-Linux SuSE 5.x, 6.x, 7.x <br>
-Linux Ubuntu 4.10..7.04<br>
+Linux Debian 1.3.1 and later <br>
+Linux RedHat 3.x (January 2004) and later <br>
+Linux Slackware 3.x and later <br>
+Linux SuSE 5.x and later <br>
+Linux Ubuntu 4.10 and later<br>
 Mac OS X <br>
 NEXTSTEP 3.x <br>
-NetBSD 1.x <br>
+NetBSD 1.x and later <br>
 OPENSTEP 4.x <br>
 OSF1.V3 - OSF1.V5 (Digital UNIX) <br>
 Reliant UNIX 5.x <br>
-Rhapsody 5.x <br>
 SunOS 4.1.4 (March 2007) <br>
 SunOS 5.4 - 5.10 (Solaris 2.4..10) <br>
 Ultrix 4.x (well, that was long ago) <br>
@@ -184,7 +182,7 @@ the following command from the Postfix top-level directory: </p>
 
 <blockquote>
 <pre>
-% make -f Makefile.init makefiles
+$ make -f Makefile.init makefiles
 </pre>
 </blockquote>
 
@@ -194,7 +192,7 @@ first do this:</p>
 
 <blockquote>
 <pre>
-% make tidy
+$ make tidy
 </pre>
 </blockquote>
 
@@ -209,7 +207,7 @@ directory of the source tree and type: </p>
 
 <blockquote>
 <pre>
-% make
+$ make
 </pre>
 </blockquote>
 
@@ -218,14 +216,14 @@ of the compiler. Here are a few examples: </p>
 
 <blockquote> 
 <pre>
-% make makefiles CC=/opt/SUNWspro/bin/cc        (Solaris)
-% make
+$ make makefiles CC=/opt/SUNWspro/bin/cc        (Solaris)
+$ make
 
-% make makefiles CC="/opt/ansic/bin/cc -Ae"     (HP-UX)
-% make
+$ make makefiles CC="/opt/ansic/bin/cc -Ae"     (HP-UX)
+$ make
 
-% make makefiles CC="purify cc"
-% make
+$ make makefiles CC="purify cc"
+$ make
 </pre>
 </blockquote>
 
@@ -285,8 +283,8 @@ use: </p>
 
 <blockquote>
 <pre>
-% make makefiles CCARGS='-DDEF_CONFIG_DIR=\"/some/where\"'
-% make
+$ make makefiles CCARGS='-DDEF_CONFIG_DIR=\"/some/where\"'
+$ make
 </pre>
 </blockquote>
 
@@ -349,8 +347,8 @@ is as follows: </p>
 
 <blockquote>
 <pre>
-% make makefiles name=value name=value...
-% make
+$ make makefiles name=value name=value...
+$ make
 </pre>
 </blockquote>
 
@@ -460,7 +458,7 @@ macro to make select() work correctly: </p>
 
 <blockquote>
 <pre>
-% make makefiles CCARGS=-DFD_SETSIZE=2048
+$ make makefiles CCARGS=-DFD_SETSIZE=2048
 </pre>
 </blockquote>
 
@@ -482,7 +480,7 @@ number of open sockets or files. </p>
 
 <blockquote>
 <pre>
-% make
+$ make
 </pre>
 </blockquote>
 
@@ -693,7 +691,7 @@ file. </p>
 
 <blockquote>
 <pre>
-% egrep '(reject|warning|error|fatal|panic):' /some/log/file
+$ egrep '(reject|warning|error|fatal|panic):' /some/log/file
 </pre>
 </blockquote>
 
@@ -705,11 +703,11 @@ commands: </p>
 
 <blockquote>
 <pre>
-% mailq
+$ mailq
 
-% sendmail -bp
+$ sendmail -bp
 
-% postqueue -p
+$ postqueue -p
 </pre>
 </blockquote>
 
@@ -774,7 +772,7 @@ file. </p>
 
 <blockquote>
 <pre>
-% egrep '(reject|warning|error|fatal|panic):' /some/log/file
+$ egrep '(reject|warning|error|fatal|panic):' /some/log/file
 </pre>
 </blockquote>
 
@@ -786,11 +784,11 @@ commands: </p>
 
 <blockquote>
 <pre>
-% mailq
+$ mailq
 
-% sendmail -bp
+$ sendmail -bp
 
-% postqueue -p
+$ postqueue -p
 </pre>
 </blockquote>
 
@@ -839,7 +837,7 @@ file. </p>
 
 <blockquote>
 <pre>
-% egrep '(reject|warning|error|fatal|panic):' /some/log/file
+$ egrep '(reject|warning|error|fatal|panic):' /some/log/file
 </pre>
 </blockquote>
 
@@ -851,11 +849,11 @@ commands: </p>
 
 <blockquote>
 <pre>
-% mailq
+$ mailq
 
-% sendmail -bp
+$ sendmail -bp
 
-% postqueue -p
+$ postqueue -p
 </pre>
 </blockquote>
 
index f88654b38b0c242b16f135db60e7765ad995b356..18d27d10fdc07c9e79c8d0685bba0f18ec88cb8a 100644 (file)
@@ -11728,7 +11728,7 @@ $ openssl x509 -in cert.pem -noout -pubkey |
 </blockquote>
 
 <p> The Postfix SMTP server and client log the peer (leaf) certificate
-fingerprint and public key fingerprint when TLS loglevel is 1 or
+fingerprint and public key fingerprint when the TLS loglevel is 2 or
 higher. </p>
 
 <p> <b>Note:</b> Postfix 2.9.0&ndash;2.9.5 computed the public key
@@ -11882,7 +11882,7 @@ $ openssl x509 -in cert.pem -noout -pubkey |
 </blockquote>
 
 <p> The Postfix SMTP server and client log the peer (leaf) certificate
-fingerprint and public key fingerprint when TLS loglevel is 1 or
+fingerprint and public key fingerprint when the TLS loglevel is 2 or
 higher. </p>
 
 <p> <b>Note:</b> Postfix 2.9.0&ndash;2.9.5 computed the public key
index 6a7ba6be878985676f392923cf9cc52b775b4a54..27b088b8958baffac22e831e5dd60e52fec95f70 100644 (file)
@@ -20,8 +20,8 @@
   * Patches change both the patchlevel and the release date. Snapshots have no
   * patchlevel; they change the release date only.
   */
-#define MAIL_RELEASE_DATE      "20130204"
-#define MAIL_VERSION_NUMBER    "2.10"
+#define MAIL_RELEASE_DATE      "20130211"
+#define MAIL_VERSION_NUMBER    "2.11"
 
 #ifdef SNAPSHOT
 # define MAIL_VERSION_DATE     "-" MAIL_RELEASE_DATE
index e98695450587aa9459f5b7ae6813557de9784c18..e476ee07bb971f0b2e133f1af8da95a269b1bcc0 100644 (file)
@@ -220,14 +220,14 @@ static int tls_policy_lookup_one(SMTP_SESSION *session, int *site_level,
 #undef FREE_RETURN
 #define FREE_RETURN(x) do { myfree(saved_policy); return (x); } while (0)
 
-    if ((lookup = maps_find(tls_policy, site_name, 0)) == 0)
+    if ((lookup = maps_find(tls_policy, site_name, 0)) == 0) {
+       if (tls_policy->error) {
+           msg_fatal("%s: %s lookup error for %s",
+                     session->state->request->queue_id,
+                     tls_policy->title, site_name);
+           /* XXX session->stream has no longjmp context yet. */
+       }
        return (0);
-
-    if (tls_policy->error) {
-       msg_warn("%s: %s lookup error for %s",
-                session->state->request->queue_id,
-                tls_policy->title, site_name);
-       vstream_longjmp(session->stream, SMTP_ERR_DATA);
     }
     if (cbuf == 0)
        cbuf = vstring_alloc(10);