From 8a74f34720af843973a3b17aae1e60b0e8db82aa Mon Sep 17 00:00:00 2001 From: Wietse Venema Date: Mon, 20 Jul 2015 00:00:00 -0500 Subject: [PATCH] postfix-2.11.6 --- postfix/HISTORY | 20 ++++ postfix/README_FILES/TLS_README | 82 +++++++------- postfix/RELEASE_NOTES | 34 ++++++ postfix/html/TLS_README.html | 70 ++++++------ postfix/html/lmtp.8.html | 6 +- postfix/html/postconf.5.html | 170 ++++++++++++---------------- postfix/html/smtp.8.html | 6 +- postfix/html/smtpd.8.html | 6 +- postfix/makedefs | 4 +- postfix/man/man5/postconf.5 | 177 ++++++++++++------------------ postfix/man/man8/smtp.8 | 6 +- postfix/man/man8/smtpd.8 | 6 +- postfix/proto/TLS_README.html | 70 ++++++------ postfix/proto/postconf.proto | 170 ++++++++++++---------------- postfix/src/global/mail_params.h | 18 +-- postfix/src/global/mail_version.h | 4 +- postfix/src/smtp/smtp.c | 6 +- postfix/src/smtpd/smtpd.c | 6 +- postfix/src/util/sys_defs.h | 2 +- 19 files changed, 408 insertions(+), 455 deletions(-) diff --git a/postfix/HISTORY b/postfix/HISTORY index 8f709e4f1..04f6a3209 100644 --- a/postfix/HISTORY +++ b/postfix/HISTORY @@ -19664,3 +19664,23 @@ Apologies for any names omitted. Incompatibility: specifying "make makefiles" with "CC=command" will no longer override the default WARN setting. + +20150501 + + Support for Linux 4.*, and some simplification for future + makedefs files. Files: makedefs, util/sys_defs.h. + +20150718 + + Security: opportunistic TLS by default uses "medium" or + stronger ciphers instead of "export" or stronger. See the + RELEASE_NOTES file for how to get the old settings back. + Files: global/mail_params.h, proto/TLS_README.html, + proto/postconf.proto, and files derived from those. + +20150719 + + Security: Postfix TLS support by default no longer uses + SSLv2 or SSLv3. See the RELEASE_NOTES file for how to get + the old settings back. Files: global/mail_params.h, + proto/postconf.proto, and files derived from those. diff --git a/postfix/README_FILES/TLS_README b/postfix/README_FILES/TLS_README index 26ac64b42..68f3f8976 100644 --- a/postfix/README_FILES/TLS_README +++ b/postfix/README_FILES/TLS_README @@ -569,13 +569,15 @@ use public-key fingerprints, upgrade to Postfix 2.9.6 or later. SSeerrvveerr--ssiiddee cciipphheerr ccoonnttrroollss -The Postfix SMTP server supports 5 distinct cipher security levels as specified -by the smtpd_tls_mandatory_ciphers configuration parameter, which determines -the cipher grade with mandatory TLS encryption. The default value is "medium" -which is essentially 128-bit encryption or better. With opportunistic TLS -encryption, the minimum accepted cipher grade is typically "export". The -corresponding smtpd_tls_ciphers parameter (Postfix >= 2.6) controls the cipher -grade used with opportunistic TLS. +The Postfix SMTP server supports 5 distinct cipher grades as specified by the +smtpd_tls_mandatory_ciphers configuration parameter, which determines the +minimum cipher grade with mandatory TLS encryption. The default minimum cipher +grade for mandatory TLS is "medium" which is essentially 128-bit encryption or +better. The smtpd_tls_ciphers parameter (Postfix >= 2.6) controls the minimum +cipher grade used with opportunistic TLS. Here, the default minimum cipher +grade is "medium" for Postfix releases after the middle of 2015, "export" for +older Postfix releases. With Postfix < 2.6, the minimum opportunistic TLS +cipher grade is always "export". By default anonymous ciphers are enabled. They are automatically disabled when remote SMTP client certificates are requested. If clients are expected to @@ -585,15 +587,12 @@ anonymous ciphers by setting "smtpd_tls_mandatory_exclude_ciphers = aNULL" or SMTP client to check the server certificate, so excluding anonymous ciphers is generally unnecessary. -The "smtpd_tls_ciphers" configuration parameter (Postfix >= 2.6) provides -control over the minimum cipher grade for opportunistic TLS. With Postfix < -2.6, the minimum opportunistic TLS cipher grade is always "export". - -With mandatory TLS encryption, the Postfix SMTP server will by default disable -SSLv2. SSLv2 is used only when TLS encryption is optional. The mandatory TLS +With mandatory and opportunistic TLS encryption, the Postfix SMTP server by +default disables SSLv2 and SSLv3 with Postfix releases after the middle of +2015; older releases only disable SSLv2 for mandatory TLS. The mandatory TLS protocol list is specified via the smtpd_tls_mandatory_protocols configuration -parameter. The corresponding smtpd_tls_protocols parameter (Postfix >= 2.6) -controls the SSL/TLS protocols used with opportunistic TLS. +parameter. The smtpd_tls_protocols parameter (Postfix >= 2.6) controls the SSL/ +TLS protocols used with opportunistic TLS. Note that the OpenSSL library only supports protocol exclusion (not inclusion). For this reason, Postfix can exclude only protocols that are known at the time @@ -777,13 +776,10 @@ server. Otherwise, messages are sent in the clear. Opportunistic TLS can be configured by setting "smtp_tls_security_level = may". For LMTP, use the corresponding "lmtp_" parameter. -Since sending in the clear is acceptable, demanding stronger than default TLS -security mostly reduces inter-operability. If you must restrict TLS protocol or -cipher selection even with opportunistic TLS, the "smtp_tls_ciphers" and -"smtp_tls_protocols" configuration parameters (Postfix >= 2.6) provide control -over the protocols and cipher grade used with opportunistic TLS. With earlier -releases the opportunistic TLS cipher grade is always "export" and no protocols -are disabled. +The "smtp_tls_ciphers" and "smtp_tls_protocols" configuration parameters +(Postfix >= 2.6) provide control over the cipher grade and protocols used with +opportunistic TLS. With earlier Postfix releases, opportunistic TLS always uses +the cipher grade "export" and enables all protocols. With opportunistic TLS, mail delivery continues even if the server certificate is untrusted or bears the wrong name. When the TLS handshake fails for an @@ -844,7 +840,7 @@ Examples: In the example below, traffic to example.com and its sub-domains via the corresponding MX hosts always uses TLS. The SSLv2 protocol will be disabled -(the default setting of smtp_tls_mandatory_protocols excludes "SSLv2"). Only +(the default setting of smtp_tls_mandatory_protocols excludes SSLv2+3). Only high- or medium-strength (i.e. 128 bit or better) ciphers will be used by default for all "encrypt" security level sessions. @@ -1629,15 +1625,15 @@ ddaannee TLSA records in DNSSEC. If no TLSA records are found, the effective security level used is may. If TLSA records are found, but none are usable, the effective security level is encrypt. When usable TLSA records are - obtained for the remote SMTP server, SSLv2 is automatically disabled (see - smtp_tls_mandatory_protocols), and the server certificate must match the - TLSA records. RFC 6698 (DANE) TLS authentication and DNSSEC support is + obtained for the remote SMTP server, SSLv2+3 are automatically disabled + (see smtp_tls_mandatory_protocols), and the server certificate must match + the TLSA records. RFC 6698 (DANE) TLS authentication and DNSSEC support is available with Postfix 2.11 and later. ddaannee--oonnllyy Mandatory DANE TLS. The TLS policy for the destination is obtained via TLSA records in DNSSEC. If no TLSA records are found, or none are usable, no connection is made to the server. When usable TLSA records are obtained for - the remote SMTP server, SSLv2 is automatically disabled (see + the remote SMTP server, SSLv2+3 are automatically disabled (see smtp_tls_mandatory_protocols), and the server certificate must match the TLSA records. RFC 6698 (DANE) TLS authentication and DNSSEC support is available with Postfix 2.11 and later. @@ -1768,13 +1764,13 @@ Example: CClliieenntt--ssiiddee cciipphheerr ccoonnttrroollss -The Postfix SMTP client supports 5 distinct cipher security levels as specified -by the smtp_tls_mandatory_ciphers configuration parameter. This setting -controls the minimum acceptable SMTP client TLS cipher grade for use with -mandatory TLS encryption. The default value "medium" is suitable for most -destinations with which you may want to enforce TLS, and is beyond the reach of -today's cryptanalytic methods. See smtp_tls_policy_maps for information on how -to configure ciphers on a per-destination basis. +The Postfix SMTP client supports 5 distinct cipher grades as specified by the +smtp_tls_mandatory_ciphers configuration parameter. This setting controls the +minimum acceptable SMTP client TLS cipher grade for use with mandatory TLS +encryption. The default value "medium" is suitable for most destinations with +which you may want to enforce TLS, and is beyond the reach of today's +cryptanalytic methods. See smtp_tls_policy_maps for information on how to +configure ciphers on a per-destination basis. By default anonymous ciphers are allowed, and automatically disabled when remote SMTP server certificates are verified. If you want to disable anonymous @@ -1786,14 +1782,16 @@ TLS session cache space, if certificates are ignored, there is little point in requesting them. The "smtp_tls_ciphers" configuration parameter (Postfix >= 2.6) provides -control over the minimum cipher grade for opportunistic TLS. With Postfix < -2.6, the minimum opportunistic TLS cipher grade is always "export". +control over the minimum cipher grade for opportunistic TLS. The default +minimum cipher grade for opportunistic TLS is "medium" for Postfix releases +after the middle of 2015, and "export" for older releases. With Postfix < 2.6, +the minimum opportunistic TLS cipher grade is always "export". -With mandatory TLS encryption, the Postfix SMTP client will by default disable -SSLv2. SSLv2 is used only when TLS encryption is optional. The mandatory TLS -protocol list is specified via the smtp_tls_mandatory_protocols configuration -parameter. The corresponding smtp_tls_protocols parameter (Postfix >= 2.6) -controls the SSL/TLS protocols used with opportunistic TLS. +With mandatory and opportunistic TLS encryption, the Postfix SMTP client will +by default disable SSLv2 and SSLv3. The mandatory TLS protocol list is +specified via the smtp_tls_mandatory_protocols configuration parameter. The +corresponding smtp_tls_protocols parameter (Postfix >= 2.6) controls the SSL/ +TLS protocols used with opportunistic TLS. Example: @@ -1806,7 +1804,7 @@ Example: # Legacy form for Postfix < 2.5: smtp_tls_mandatory_protocols = SSLv3, TLSv1 # Also available with Postfix >= 2.6: - smtp_tls_ciphers = export + smtp_tls_ciphers = medium smtp_tls_protocols = !SSLv2 CClliieenntt--ssiiddee SSMMTTPPSS ssuuppppoorrtt diff --git a/postfix/RELEASE_NOTES b/postfix/RELEASE_NOTES index 2cf39396c..1191422fb 100644 --- a/postfix/RELEASE_NOTES +++ b/postfix/RELEASE_NOTES @@ -14,6 +14,40 @@ specifies the release date of a stable release or snapshot release. If you upgrade from Postfix 2.9 or earlier, read RELEASE_NOTES-2.10 before proceeding. +Incompatible change with Postfix 2.11.6 +--------------------------------------- + +As of the middle of 2015, all supported Postfix releases no longer +enable "export" grade ciphers for opportunistic TLS, and no longer +use the deprecated SSLv2 and SSLv3 protocols for mandatory or +opportunistic TLS. + +These changes are very unlikely to cause problems with server-to-server +communication over the Internet, but they may result in interoperability +problems with ancient client or server implementations on internal +networks. To address this problem, you can revert the changes with: + +Postfix SMTP client settings: + + lmtp_tls_ciphers = export + smtp_tls_ciphers = export + lmtp_tls_protocols = !SSLv2 + smtp_tls_protocols = !SSLv2 + lmtp_tls_mandatory_protocols = !SSLv2 + smtp_tls_mandatory_protocols = !SSLv2 + +Postfix SMTP server settings: + + smtpd_tls_ciphers = export + smtpd_tls_protocols = + smtpd_tls_mandatory_protocols = !SSLv2 + +These settings, if put in main.cf, affect all Postfix SMTP client +or server communication, which may be undesirable. To be more +selective, use "-o name=value" parameter overrides on specific +services in master.cf. Execute the command "postfix reload" to make +the changes effective. + Major changes - tls ------------------- diff --git a/postfix/html/TLS_README.html b/postfix/html/TLS_README.html index 77c09f926..f1c9dfb17 100644 --- a/postfix/html/TLS_README.html +++ b/postfix/html/TLS_README.html @@ -810,14 +810,16 @@ to Postfix 2.9.6 or later.

Server-side cipher controls

-

The Postfix SMTP server supports 5 distinct cipher security levels -as specified by the smtpd_tls_mandatory_ciphers configuration parameter, -which determines the cipher grade with mandatory TLS encryption. The -default value is "medium" which is essentially 128-bit encryption or better. -With opportunistic TLS encryption, the minimum accepted cipher grade is -typically "export". The corresponding smtpd_tls_ciphers parameter -(Postfix ≥ 2.6) controls the cipher grade used with opportunistic -TLS.

+

The Postfix SMTP server supports 5 distinct cipher grades as +specified by the smtpd_tls_mandatory_ciphers configuration parameter, +which determines the minimum cipher grade with mandatory TLS +encryption. The default minimum cipher grade for mandatory TLS is +"medium" which is essentially 128-bit encryption or better. The +smtpd_tls_ciphers parameter (Postfix ≥ 2.6) controls the minimum +cipher grade used with opportunistic TLS. Here, the default minimum +cipher grade is "medium" for Postfix releases after the middle of +2015, "export" for older Postfix releases. With Postfix < 2.6, +the minimum opportunistic TLS cipher grade is always "export".

By default anonymous ciphers are enabled. They are automatically disabled when remote SMTP client certificates are requested. If @@ -828,17 +830,12 @@ by setting "smtpd_ a remote SMTP client to check the server certificate, so excluding anonymous ciphers is generally unnecessary.

-

The "smtpd_tls_ciphers" configuration parameter (Postfix ≥ -2.6) provides control over the minimum cipher grade for opportunistic -TLS. With -Postfix < 2.6, the minimum opportunistic TLS cipher grade is always -"export".

- -

With mandatory TLS encryption, the Postfix SMTP server will by -default disable SSLv2. SSLv2 is used only when TLS encryption -is optional. The mandatory TLS protocol list is specified via the +

With mandatory and opportunistic TLS encryption, the Postfix +SMTP server by default disables SSLv2 and SSLv3 with Postfix releases +after the middle of 2015; older releases only disable SSLv2 for +mandatory TLS. The mandatory TLS protocol list is specified via the smtpd_tls_mandatory_protocols configuration parameter. The -corresponding smtpd_tls_protocols parameter (Postfix ≥ 2.6) +smtpd_tls_protocols parameter (Postfix ≥ 2.6) controls the SSL/TLS protocols used with opportunistic TLS.

Note that the OpenSSL library only supports protocol exclusion @@ -1080,14 +1077,11 @@ is supported by the server. Otherwise, messages are sent in the clear. Opportunistic TLS can be configured by setting "smtp_tls_security_level = may". For LMTP, use the corresponding "lmtp_" parameter.

-

Since sending in the clear is acceptable, demanding stronger -than default TLS security mostly reduces inter-operability. If you -must restrict TLS protocol or cipher selection even with opportunistic -TLS, the "smtp_tls_ciphers" and "smtp_tls_protocols" configuration -parameters (Postfix ≥ 2.6) provide control over the protocols -and cipher grade -used with opportunistic TLS. With earlier releases the opportunistic TLS -cipher grade is always "export" and no protocols are disabled.

+

The "smtp_tls_ciphers" and "smtp_tls_protocols" configuration +parameters (Postfix ≥ 2.6) provide control over the cipher grade +and protocols used with opportunistic TLS. With earlier Postfix +releases, opportunistic TLS always uses the cipher grade "export" +and enables all protocols.

With opportunistic TLS, mail delivery continues even if the server certificate is untrusted or bears the wrong name. @@ -1163,7 +1157,7 @@ table, specify the "encrypt" security level.

In the example below, traffic to example.com and its sub-domains via the corresponding MX hosts always uses TLS. The SSLv2 protocol will be disabled (the default setting of smtp_tls_mandatory_protocols -excludes "SSLv2"). Only high- or medium-strength (i.e. 128 bit or +excludes SSLv2+3). Only high- or medium-strength (i.e. 128 bit or better) ciphers will be used by default for all "encrypt" security level sessions.

@@ -2143,7 +2137,7 @@ DNSSEC. If no TLSA records are found, the effective security level used is may. If TLSA records are found, but none are usable, the effective security level is encrypt. When usable TLSA records -are obtained for the remote SMTP server, SSLv2 is automatically +are obtained for the remote SMTP server, SSLv2+3 are automatically disabled (see smtp_tls_mandatory_protocols), and the server certificate must match the TLSA records. RFC 6698 (DANE) TLS authentication and DNSSEC support is available with Postfix 2.11 and later. @@ -2152,7 +2146,7 @@ and DNSSEC support is available with Postfix 2.11 and later. The TLS policy for the destination is obtained via TLSA records in DNSSEC. If no TLSA records are found, or none are usable, no connection is made to the server. When usable TLSA records are -obtained for the remote SMTP server, SSLv2 is automatically disabled +obtained for the remote SMTP server, SSLv2+3 are automatically disabled (see smtp_tls_mandatory_protocols), and the server certificate must match the TLSA records. RFC 6698 (DANE) TLS authentication and DNSSEC support is available with Postfix 2.11 and later. @@ -2318,7 +2312,7 @@ configured to supply its intermediate CA certificate).

Client-side cipher controls

-

The Postfix SMTP client supports 5 distinct cipher security levels +

The Postfix SMTP client supports 5 distinct cipher grades as specified by the smtp_tls_mandatory_ciphers configuration parameter. This setting controls the minimum acceptable SMTP client TLS cipher grade for use with mandatory TLS encryption. The default @@ -2339,13 +2333,15 @@ and TLS session cache space, if certificates are ignored, there is little point in requesting them.

The "smtp_tls_ciphers" configuration parameter (Postfix ≥ 2.6) -provides control over the minimum cipher grade for opportunistic TLS. With -Postfix < 2.6, the minimum opportunistic TLS cipher grade is always -"export".

+provides control over the minimum cipher grade for opportunistic TLS. +The default minimum cipher grade for opportunistic TLS is "medium" +for Postfix releases after the middle of 2015, and "export" for +older releases. With Postfix < 2.6, the minimum opportunistic +TLS cipher grade is always "export".

-

With mandatory TLS encryption, the Postfix SMTP client will by -default disable SSLv2. SSLv2 is used only when TLS encryption -is optional. The mandatory TLS protocol list is specified via the +

With mandatory and opportunistic TLS encryption, the Postfix +SMTP client will by default disable SSLv2 and SSLv3. The mandatory +TLS protocol list is specified via the smtp_tls_mandatory_protocols configuration parameter. The corresponding smtp_tls_protocols parameter (Postfix ≥ 2.6) controls the SSL/TLS protocols used with opportunistic TLS.

@@ -2363,7 +2359,7 @@ the SSL/TLS protocols used with opportunistic TLS.

# Legacy form for Postfix < 2.5: smtp_tls_mandatory_protocols = SSLv3, TLSv1 # Also available with Postfix ≥ 2.6: - smtp_tls_ciphers = export + smtp_tls_ciphers = medium smtp_tls_protocols = !SSLv2 diff --git a/postfix/html/lmtp.8.html b/postfix/html/lmtp.8.html index 1816f341c..008b7849e 100644 --- a/postfix/html/lmtp.8.html +++ b/postfix/html/lmtp.8.html @@ -432,7 +432,7 @@ SMTP(8) SMTP(8) policy by next-hop destination; when a non-empty value is speci- fied, this overrides the obsolete smtp_tls_per_site parameter. - smtp_tls_mandatory_protocols (!SSLv2) + smtp_tls_mandatory_protocols (!SSLv2, !SSLv3) List of SSL/TLS protocols that the Postfix SMTP client will use with mandatory TLS encryption. @@ -497,11 +497,11 @@ SMTP(8) SMTP(8) Available in Postfix version 2.6 and later: - smtp_tls_protocols (!SSLv2) + smtp_tls_protocols (!SSLv2, !SSLv3) List of TLS protocols that the Postfix SMTP client will exclude or include with opportunistic TLS encryption. - smtp_tls_ciphers (export) + smtp_tls_ciphers (medium) The minimum TLS cipher grade that the Postfix SMTP client will use with opportunistic TLS encryption. diff --git a/postfix/html/postconf.5.html b/postfix/html/postconf.5.html index f7959d212..ddb11c8d4 100644 --- a/postfix/html/postconf.5.html +++ b/postfix/html/postconf.5.html @@ -4727,7 +4727,7 @@ configuration parameter. See there for details.

lmtp_tls_ciphers -(default: export)
+(default: medium)

The LMTP-specific version of the smtp_tls_ciphers configuration parameter. See there for details.

@@ -4861,7 +4861,7 @@ configuration parameter. See there for details.

lmtp_tls_mandatory_ciphers -(default: empty)
+(default: medium)

The LMTP-specific version of the smtp_tls_mandatory_ciphers configuration parameter. See there for details.

@@ -4883,7 +4883,7 @@ configuration parameter. See there for details.

lmtp_tls_mandatory_protocols -(default: !SSLv2)
+(default: !SSLv2, !SSLv3)

The LMTP-specific version of the smtp_tls_mandatory_protocols configuration parameter. See there for details.

@@ -4927,7 +4927,7 @@ configuration parameter. See there for details.

lmtp_tls_protocols -(default: empty)
+(default: !SSLv2, !SSLv3)

The LMTP-specific version of the smtp_tls_protocols configuration parameter. See there for details.

@@ -10995,26 +10995,20 @@ Postfix 2.3 and later; use
smtp_tls_ciphers -(default: export)
+(default: medium)

The minimum TLS cipher grade that the Postfix SMTP client will use with opportunistic TLS encryption. Cipher types listed in smtp_tls_exclude_ciphers are excluded from the base definition of -the selected cipher grade. The default value "export" ensures maximum -inter-operability. Because encryption is optional, stronger controls -are not appropriate, and this setting SHOULD NOT be changed unless the -change is essential.

+the selected cipher grade. The default value is "medium" for +Postfix releases after the middle of 2015, "export" for older +releases.

When TLS is mandatory the cipher grade is chosen via the smtp_tls_mandatory_ciphers configuration parameter, see there for syntax details. See smtp_tls_policy_maps for information on how to configure ciphers on a per-destination basis.

-

Example:

-
-smtp_tls_ciphers = export
-
-

This feature is available in Postfix 2.6 and later. With earlier Postfix releases only the smtp_tls_mandatory_ciphers parameter is implemented, and opportunistic TLS always uses "export" or better (i.e. all) ciphers.

@@ -11403,18 +11397,16 @@ on a per-destination basis.

export
-
Enable "EXPORT" grade or better OpenSSL -ciphers. This is the default for opportunistic encryption. It is -not recommended for mandatory encryption unless you must enforce TLS -with "crippled" peers. The underlying cipherlist is specified via the -tls_export_cipherlist configuration parameter, which you are strongly -encouraged to not change.
+
Enable "EXPORT" grade or better OpenSSL ciphers. The underlying +cipherlist is specified via the tls_export_cipherlist configuration +parameter, which you are strongly encouraged to not change. This +choice is insecure and SHOULD NOT be used.
low
-
Enable "LOW" grade or better OpenSSL ciphers. This -setting is only appropriate for internal mail servers. The underlying +
Enable "LOW" grade or better OpenSSL ciphers. The underlying cipherlist is specified via the tls_low_cipherlist configuration -parameter, which you are strongly encouraged to not change.
+parameter, which you are strongly encouraged to not change. This +choice is insecure and SHOULD NOT be used.
medium
Enable "MEDIUM" grade or better OpenSSL ciphers. @@ -11475,14 +11467,16 @@ attribute. See smtp_tls_policy_ma
smtp_tls_mandatory_protocols -(default: !SSLv2)
+(default: !SSLv2, !SSLv3)

List of SSL/TLS protocols that the Postfix SMTP client will use with mandatory TLS encryption. In main.cf the values are separated by whitespace, commas or colons. In the policy table "protocols" attribute (see smtp_tls_policy_maps) the only valid separator is colon. An empty value means allow all protocols. The valid protocol names, (see -SSL_get_version(3)), are "SSLv2", "SSLv3" and "TLSv1".

+SSL_get_version(3)), are "SSLv2", "SSLv3" and "TLSv1". The +default value is "!SSLv2, !SSLv3" for Postfix releases after the +middle of 2015, "!SSLv2" for older releases.

With Postfix ≥ 2.5 the parameter syntax was expanded to support protocol exclusions. One can explicitly exclude "SSLv2" by setting @@ -11525,11 +11519,6 @@ SNI is required. If you use "dane" or "dane-only" do not disable TLSv1, except perhaps via the policy table for destinations which you are sure will support "TLSv1.1" or "TLSv1.2".

-

Since SSL version 2 has known protocol weaknesses and is now -deprecated, the default setting excludes "SSLv2". This means that by -default, SSL version 2 will not be used at the "encrypt" security level -and higher.

-

See the documentation of the smtp_tls_policy_maps parameter and TLS_README for more information about security levels.

@@ -11808,12 +11797,13 @@ configurations in environments where DNS security is not assured.

smtp_tls_protocols -(default: !SSLv2)
+(default: !SSLv2, !SSLv3)

List of TLS protocols that the Postfix SMTP client will exclude or -include with opportunistic TLS encryption. Starting with Postfix 2.6, -the Postfix SMTP client will by default not use the obsolete SSLv2 -protocol.

+include with opportunistic TLS encryption. The default value is +"!SSLv2, !SSLv3" for Postfix releases after the middle of 2015, +"!SSLv2" for older releases. Before Postfix 2.6, the Postfix SMTP +client would use all protocols with opportunistic TLS.

In main.cf the values are separated by whitespace, commas or colons. In the policy table (see smtp_tls_policy_maps) the only valid @@ -11839,7 +11829,7 @@ versions of Postfix ≥ 2.10 can explicitly disable support for "TLSv1.1" or "TLSv1.2"

To include a protocol list its name, to exclude it, prefix the name -with a "!" character. To exclude SSLv2 even for opportunistic TLS set +with a "!" character. To exclude SSLv2 for opportunistic TLS set "smtp_tls_protocols = !SSLv2". To exclude both "SSLv2" and "SSLv3" set "smtp_tls_protocols = !SSLv2, !SSLv3". Explicitly listing the protocols to include, rather than protocols to exclude, is supported, but not @@ -12046,7 +12036,7 @@ Examples: # can be mitigated by disabling a particular protocol or raising the # cipher grade from "export" to "low" or "medium"). smtp_tls_ciphers = export -smtp_tls_protocols = !SSLv2 +smtp_tls_protocols = !SSLv2, !SSLv3

@@ -15180,25 +15170,19 @@ Postfix 2.3 and later; use 
 
 
smtpd_tls_ciphers -(default: export)
+(default: medium)

The minimum TLS cipher grade that the Postfix SMTP server will use with opportunistic TLS encryption. Cipher types listed in smtpd_tls_exclude_ciphers are excluded from the base definition of -the selected cipher grade. The default value "export" ensures maximum -inter-operability. Because encryption is optional, stronger controls -are not appropriate, and this setting SHOULD NOT be changed unless the -change is essential.

+the selected cipher grade. The default value is "medium" for Postfix +releases after the middle of 2015, "export" for older releases. +

When TLS is mandatory the cipher grade is chosen via the smtpd_tls_mandatory_ciphers configuration parameter, see there for syntax details.

-

Example:

-
-smtpd_tls_ciphers = export
-
-

This feature is available in Postfix 2.6 and later. With earlier Postfix releases only the smtpd_tls_mandatory_ciphers parameter is implemented, and opportunistic TLS always uses "export" or better (i.e. all) ciphers.

@@ -15599,17 +15583,16 @@ one "medium" or "high" grade cipher.

export
-
Enable "EXPORT" grade or stronger OpenSSL ciphers. -This is the most appropriate setting for public MX hosts, and is always -used with opportunistic TLS encryption. The underlying cipherlist -is specified via the tls_export_cipherlist configuration parameter, -which you are strongly encouraged to not change.
+
Enable "EXPORT" grade or stronger OpenSSL ciphers. The +underlying cipherlist is specified via the tls_export_cipherlist +configuration parameter, which you are strongly encouraged to not +change. This choice is insecure and SHOULD NOT be used.
low
-
Enable "LOW" grade or stronger OpenSSL ciphers. The -underlying cipherlist is specified via the tls_low_cipherlist -configuration parameter, which you are strongly encouraged to -not change.
+
Enable "LOW" grade or stronger OpenSSL ciphers. The underlying +cipherlist is specified via the tls_low_cipherlist configuration +parameter, which you are strongly encouraged to not change. This +choice is insecure and SHOULD NOT be used.
medium
Enable "MEDIUM" grade or stronger OpenSSL ciphers. These use 128-bit @@ -15669,14 +15652,16 @@ works in addition to the exclusions listed with smtpd_tls_mandatory_protocols -(default: !SSLv2)
+(default: !SSLv2, !SSLv3)

The SSL/TLS protocols accepted by the Postfix SMTP server with mandatory TLS encryption. If the list is empty, the server supports all available SSL/TLS protocol versions. A non-empty value is a list of protocol names separated by whitespace, commas or colons. The supported protocol names are "SSLv2", "SSLv3" and "TLSv1", and -are not case sensitive.

+are not case sensitive. The default value is "!SSLv2, !SSLv3" for +Postfix releases after the middle of 2015, "!SSLv2" for older +releases.

With Postfix ≥ 2.5 the parameter syntax was expanded to support protocol exclusions. One can explicitly exclude "SSLv2" by setting @@ -15693,11 +15678,6 @@ disabled. The latest patch levels of Postfix ≥ 2.6, and all versions of Postfix ≥ 2.10 can disable support for "TLSv1.1" or "TLSv1.2".

-

Since SSL version 2 has known protocol weaknesses and is now -deprecated, the default setting excludes "SSLv2". This means that -by default, SSL version 2 will not be used at the "encrypt" security -level.

-

Example:

@@ -15713,11 +15693,12 @@ level. 

smtpd_tls_protocols -(default: empty)
+(default: !SSLv2, !SSLv3)

List of TLS protocols that the Postfix SMTP server will exclude -or include with opportunistic TLS encryption. This parameter SHOULD -be left at its default empty value, allowing all protocols to be +or include with opportunistic TLS encryption. The default value is +"!SSLv2, !SSLv3" for Postfix releases after the middle of 2015, +empty for older releases allowing all protocols to be used with opportunistic TLS. A non-empty value is a list of protocol names separated by whitespace, commas or colons. The supported protocol names are "SSLv2", "SSLv3" and "TLSv1", and are not case @@ -15729,7 +15710,7 @@ versions of Postfix ≥ 2.10 can disable support for "TLSv1.1" or "TLSv1.2".

To include a protocol list its name, to exclude it, prefix the name -with a "!" character. To exclude SSLv2 even for opportunistic TLS set +with a "!" character. To exclude SSLv2 for opportunistic TLS set "smtpd_tls_protocols = !SSLv2". To exclude both "SSLv2" and "SSLv3" set "smtpd_tls_protocols = !SSLv2, !SSLv3". Explicitly listing the protocols to include, rather than protocols to exclude, is supported, but not @@ -15738,7 +15719,7 @@ OpenSSL interface semantics.

Example:

-smtpd_tls_protocols = !SSLv2
+smtpd_tls_protocols = !SSLv2, !SSLv3
 

This feature is available in Postfix 2.6 and later.

@@ -16576,15 +16557,13 @@ EC algorithms have not been disabled by the vendor.

(default: ALL:+RC4:@STRENGTH)

The OpenSSL cipherlist for "EXPORT" or higher grade ciphers. This -defines the meaning of the "export" setting in smtpd_tls_mandatory_ciphers, -smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. This is -the cipherlist for the opportunistic ("may") TLS client security -level and is the default cipherlist for the SMTP server. You are -strongly encouraged to not change this setting. With OpenSSL 1.0.0 and -later the cipherlist may start with an "aNULL:" prefix, which restores -the 0.9.8-compatible ordering of the aNULL ciphers to the top of the -list when they are enabled. This prefix is not needed with previous -OpenSSL releases.

+defines the meaning of the "export" setting in smtpd_tls_ciphers, +smtpd_tls_mandatory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ciphers, +lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. With Postfix +releases before the middle of 2015 this is the default cipherlist +for the opportunistic ("may") TLS client security level and also +the default cipherlist for the SMTP server. You are strongly +encouraged to not change this setting.

This feature is available in Postfix 2.3 and later.

@@ -16595,13 +16574,10 @@ OpenSSL releases.

(default: ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH)

The OpenSSL cipherlist for "HIGH" grade ciphers. This defines -the meaning of the "high" setting in smtpd_tls_mandatory_ciphers, -smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. You are -strongly encouraged to not change this setting. With OpenSSL 1.0.0 and -later the cipherlist may start with an "aNULL:" prefix, which restores -the 0.9.8-compatible ordering of the aNULL ciphers to the top of the -list when they are enabled. This prefix is not needed with previous -OpenSSL releases.

+the meaning of the "high" setting in smtpd_tls_ciphers, +smtpd_tls_mandatory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ciphers, +lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. You are strongly +encouraged to not change this setting.

This feature is available in Postfix 2.3 and later.

@@ -16631,13 +16607,10 @@ certificate public-key fingerprints, see TLS_README

The OpenSSL cipherlist for "LOW" or higher grade ciphers. This defines -the meaning of the "low" setting in smtpd_tls_mandatory_ciphers, -smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. You are -strongly encouraged to not change this setting. With OpenSSL 1.0.0 and -later the cipherlist may start with an "aNULL:" prefix, which restores -the 0.9.8-compatible ordering of the aNULL ciphers to the top of the -list when they are enabled. This prefix is not needed with previous -OpenSSL releases.

+the meaning of the "low" setting in smtpd_tls_ciphers, +smtpd_tls_mandatory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ciphers, +lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. You are strongly +encouraged to not change this setting.

This feature is available in Postfix 2.3 and later.

@@ -16648,15 +16621,14 @@ OpenSSL releases.

(default: ALL:!EXPORT:!LOW:+RC4:@STRENGTH)

The OpenSSL cipherlist for "MEDIUM" or higher grade ciphers. This -defines the meaning of the "medium" setting in smtpd_tls_mandatory_ciphers, -smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. This is -the default cipherlist for mandatory TLS encryption in the TLS -client (with anonymous ciphers disabled when verifying server -certificates). You are strongly encouraged to not change this -setting. With OpenSSL 1.0.0 and later the cipherlist may start with an -"aNULL:" prefix, which restores the 0.9.8-compatible ordering of the -aNULL ciphers to the top of the list when they are enabled. This prefix -is not needed with previous OpenSSL releases.

+defines the meaning of the "medium" setting in smtpd_tls_ciphers, +smtpd_tls_mandatory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ciphers, +lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. This is the +default cipherlist for mandatory TLS encryption in the TLS client +(with anonymous ciphers disabled when verifying server certificates). +This is the default cipherlist for opportunistic TLS with Postfix +releases after the middle of 2015. You are strongly encouraged to +not change this setting.

This feature is available in Postfix 2.3 and later.

diff --git a/postfix/html/smtp.8.html b/postfix/html/smtp.8.html index 1816f341c..008b7849e 100644 --- a/postfix/html/smtp.8.html +++ b/postfix/html/smtp.8.html @@ -432,7 +432,7 @@ SMTP(8) SMTP(8) policy by next-hop destination; when a non-empty value is speci- fied, this overrides the obsolete smtp_tls_per_site parameter. - smtp_tls_mandatory_protocols (!SSLv2) + smtp_tls_mandatory_protocols (!SSLv2, !SSLv3) List of SSL/TLS protocols that the Postfix SMTP client will use with mandatory TLS encryption. @@ -497,11 +497,11 @@ SMTP(8) SMTP(8) Available in Postfix version 2.6 and later: - smtp_tls_protocols (!SSLv2) + smtp_tls_protocols (!SSLv2, !SSLv3) List of TLS protocols that the Postfix SMTP client will exclude or include with opportunistic TLS encryption. - smtp_tls_ciphers (export) + smtp_tls_ciphers (medium) The minimum TLS cipher grade that the Postfix SMTP client will use with opportunistic TLS encryption. diff --git a/postfix/html/smtpd.8.html b/postfix/html/smtpd.8.html index 814c715dd..0aa634f91 100644 --- a/postfix/html/smtpd.8.html +++ b/postfix/html/smtpd.8.html @@ -446,7 +446,7 @@ SMTPD(8) SMTPD(8) Postfix SMTP server cipher list at mandatory TLS security lev- els. - smtpd_tls_mandatory_protocols (!SSLv2) + smtpd_tls_mandatory_protocols (!SSLv2, !SSLv3) The SSL/TLS protocols accepted by the Postfix SMTP server with mandatory TLS encryption. @@ -494,11 +494,11 @@ SMTPD(8) SMTPD(8) Available in Postfix version 2.6 and later: - smtpd_tls_protocols (empty) + smtpd_tls_protocols (!SSLv2, !SSLv3) List of TLS protocols that the Postfix SMTP server will exclude or include with opportunistic TLS encryption. - smtpd_tls_ciphers (export) + smtpd_tls_ciphers (medium) The minimum TLS cipher grade that the Postfix SMTP server will use with opportunistic TLS encryption. diff --git a/postfix/makedefs b/postfix/makedefs index a704ddad9..3551ff035 100644 --- a/postfix/makedefs +++ b/postfix/makedefs @@ -109,6 +109,8 @@ case $# in # Officially supported usage. 0) SYSTEM=`(uname -s) 2>/dev/null` RELEASE=`(uname -r) 2>/dev/null` + # No ${x%%y} support in Solaris 11 /bin/sh + RELEASE_MAJOR=`expr "$RELEASE" : '\([0-9]*\)'` || exit 1 VERSION=`(uname -v) 2>/dev/null` case "$VERSION" in dcosx*) SYSTEM=$VERSION;; @@ -365,7 +367,7 @@ EOF fi;; esac ;; - Linux.3*) SYSTYPE=LINUX3 + Linux.[34].*) SYSTYPE=LINUX$RELEASE_MAJOR case "$CCARGS" in *-DNO_DB*) ;; *-DHAS_DB*) ;; diff --git a/postfix/man/man5/postconf.5 b/postfix/man/man5/postconf.5 index e22a9b440..04e47d3eb 100644 --- a/postfix/man/man5/postconf.5 +++ b/postfix/man/man5/postconf.5 @@ -2711,7 +2711,7 @@ The LMTP-specific version of the smtp_tls_cert_file configuration parameter. See there for details. .PP This feature is available in Postfix 2.3 and later. -.SH lmtp_tls_ciphers (default: export) +.SH lmtp_tls_ciphers (default: medium) The LMTP-specific version of the smtp_tls_ciphers configuration parameter. See there for details. .PP @@ -2773,7 +2773,7 @@ The LMTP-specific version of the smtp_tls_loglevel configuration parameter. See there for details. .PP This feature is available in Postfix 2.3 and later. -.SH lmtp_tls_mandatory_ciphers (default: empty) +.SH lmtp_tls_mandatory_ciphers (default: medium) The LMTP-specific version of the smtp_tls_mandatory_ciphers configuration parameter. See there for details. .PP @@ -2783,7 +2783,7 @@ The LMTP-specific version of the smtp_tls_mandatory_exclude_ciphers configuration parameter. See there for details. .PP This feature is available in Postfix 2.3 and later. -.SH lmtp_tls_mandatory_protocols (default: !SSLv2) +.SH lmtp_tls_mandatory_protocols (default: !SSLv2, !SSLv3) The LMTP-specific version of the smtp_tls_mandatory_protocols configuration parameter. See there for details. .PP @@ -2803,7 +2803,7 @@ The LMTP-specific version of the smtp_tls_policy_maps configuration parameter. See there for details. .PP This feature is available in Postfix 2.3 and later. -.SH lmtp_tls_protocols (default: empty) +.SH lmtp_tls_protocols (default: !SSLv2, !SSLv3) The LMTP-specific version of the smtp_tls_protocols configuration parameter. See there for details. .PP @@ -6777,29 +6777,19 @@ control over the TLS software and settings of the peer servers. .PP This feature is available in Postfix version 2.2. It is not used with Postfix 2.3 and later; use smtp_tls_mandatory_ciphers instead. -.SH smtp_tls_ciphers (default: export) +.SH smtp_tls_ciphers (default: medium) The minimum TLS cipher grade that the Postfix SMTP client will use with opportunistic TLS encryption. Cipher types listed in smtp_tls_exclude_ciphers are excluded from the base definition of -the selected cipher grade. The default value "export" ensures maximum -inter-operability. Because encryption is optional, stronger controls -are not appropriate, and this setting SHOULD NOT be changed unless the -change is essential. +the selected cipher grade. The default value is "medium" for +Postfix releases after the middle of 2015, "export" for older +releases. .PP When TLS is mandatory the cipher grade is chosen via the smtp_tls_mandatory_ciphers configuration parameter, see there for syntax details. See smtp_tls_policy_maps for information on how to configure ciphers on a per-destination basis. .PP -Example: -.nf -.na -.ft C -smtp_tls_ciphers = export -.fi -.ad -.ft R -.PP This feature is available in Postfix 2.6 and later. With earlier Postfix releases only the smtp_tls_mandatory_ciphers parameter is implemented, and opportunistic TLS always uses "export" or better (i.e. all) ciphers. @@ -7157,18 +7147,16 @@ on a per-destination basis. .PP The following cipher grades are supported: .IP "\fBexport\fR" -Enable "EXPORT" grade or better OpenSSL -ciphers. This is the default for opportunistic encryption. It is -not recommended for mandatory encryption unless you must enforce TLS -with "crippled" peers. The underlying cipherlist is specified via the -tls_export_cipherlist configuration parameter, which you are strongly -encouraged to not change. +Enable "EXPORT" grade or better OpenSSL ciphers. The underlying +cipherlist is specified via the tls_export_cipherlist configuration +parameter, which you are strongly encouraged to not change. This +choice is insecure and SHOULD NOT be used. .br .IP "\fBlow\fR" -Enable "LOW" grade or better OpenSSL ciphers. This -setting is only appropriate for internal mail servers. The underlying +Enable "LOW" grade or better OpenSSL ciphers. The underlying cipherlist is specified via the tls_low_cipherlist configuration -parameter, which you are strongly encouraged to not change. +parameter, which you are strongly encouraged to not change. This +choice is insecure and SHOULD NOT be used. .br .IP "\fBmedium\fR" Enable "MEDIUM" grade or better OpenSSL ciphers. @@ -7217,13 +7205,15 @@ specified on a per-destination basis via the TLS policy "exclude" attribute. See smtp_tls_policy_maps for notes and examples. .PP This feature is available in Postfix 2.3 and later. -.SH smtp_tls_mandatory_protocols (default: !SSLv2) +.SH smtp_tls_mandatory_protocols (default: !SSLv2, !SSLv3) List of SSL/TLS protocols that the Postfix SMTP client will use with mandatory TLS encryption. In main.cf the values are separated by whitespace, commas or colons. In the policy table "protocols" attribute (see smtp_tls_policy_maps) the only valid separator is colon. An empty value means allow all protocols. The valid protocol names, (see -\\fBfBSSL_get_version\fR(3)\fR), are "SSLv2", "SSLv3" and "TLSv1". +\\fBfBSSL_get_version\fR(3)\fR), are "SSLv2", "SSLv3" and "TLSv1". The +default value is "!SSLv2, !SSLv3" for Postfix releases after the +middle of 2015, "!SSLv2" for older releases. .PP With Postfix >= 2.5 the parameter syntax was expanded to support protocol exclusions. One can explicitly exclude "SSLv2" by setting @@ -7270,11 +7260,6 @@ SNI is required. If you use "dane" or "dane-only" do not disable TLSv1, except perhaps via the policy table for destinations which you are sure will support "TLSv1.1" or "TLSv1.2". .PP -Since SSL version 2 has known protocol weaknesses and is now -deprecated, the default setting excludes "SSLv2". This means that by -default, SSL version 2 will not be used at the "encrypt" security level -and higher. -.PP See the documentation of the smtp_tls_policy_maps parameter and TLS_README for more information about security levels. .PP @@ -7539,11 +7524,12 @@ DNS forgery. Do not use the \fBhostname\fR strategy for secure-channel configurations in environments where DNS security is not assured. .PP This feature is available in Postfix 2.3 and later. -.SH smtp_tls_protocols (default: !SSLv2) +.SH smtp_tls_protocols (default: !SSLv2, !SSLv3) List of TLS protocols that the Postfix SMTP client will exclude or -include with opportunistic TLS encryption. Starting with Postfix 2.6, -the Postfix SMTP client will by default not use the obsolete SSLv2 -protocol. +include with opportunistic TLS encryption. The default value is +"!SSLv2, !SSLv3" for Postfix releases after the middle of 2015, +"!SSLv2" for older releases. Before Postfix 2.6, the Postfix SMTP +client would use all protocols with opportunistic TLS. .PP In main.cf the values are separated by whitespace, commas or colons. In the policy table (see smtp_tls_policy_maps) the only valid @@ -7574,7 +7560,7 @@ versions of Postfix >= 2.10 can explicitly disable support for "TLSv1.1" or "TLSv1.2" .PP To include a protocol list its name, to exclude it, prefix the name -with a "!" character. To exclude SSLv2 even for opportunistic TLS set +with a "!" character. To exclude SSLv2 for opportunistic TLS set "smtp_tls_protocols = !SSLv2". To exclude both "SSLv2" and "SSLv3" set "smtp_tls_protocols = !SSLv2, !SSLv3". Explicitly listing the protocols to include, rather than protocols to exclude, is supported, but not @@ -7770,7 +7756,7 @@ smtp_tls_security_level = may # can be mitigated by disabling a particular protocol or raising the # cipher grade from "export" to "low" or "medium"). smtp_tls_ciphers = export -smtp_tls_protocols = !SSLv2 +smtp_tls_protocols = !SSLv2, !SSLv3 .fi .ad .ft R @@ -10202,28 +10188,17 @@ clients. .PP This feature is available with Postfix version 2.2. It is not used with Postfix 2.3 and later; use smtpd_tls_mandatory_ciphers instead. -.SH smtpd_tls_ciphers (default: export) +.SH smtpd_tls_ciphers (default: medium) The minimum TLS cipher grade that the Postfix SMTP server will use with opportunistic TLS encryption. Cipher types listed in smtpd_tls_exclude_ciphers are excluded from the base definition of -the selected cipher grade. The default value "export" ensures maximum -inter-operability. Because encryption is optional, stronger controls -are not appropriate, and this setting SHOULD NOT be changed unless the -change is essential. +the selected cipher grade. The default value is "medium" for Postfix +releases after the middle of 2015, "export" for older releases. .PP When TLS is mandatory the cipher grade is chosen via the smtpd_tls_mandatory_ciphers configuration parameter, see there for syntax details. .PP -Example: -.nf -.na -.ft C -smtpd_tls_ciphers = export -.fi -.ad -.ft R -.PP This feature is available in Postfix 2.6 and later. With earlier Postfix releases only the smtpd_tls_mandatory_ciphers parameter is implemented, and opportunistic TLS always uses "export" or better (i.e. all) ciphers. @@ -10594,17 +10569,16 @@ one "medium" or "high" grade cipher. .PP The following cipher grades are supported: .IP "\fBexport\fR" -Enable "EXPORT" grade or stronger OpenSSL ciphers. -This is the most appropriate setting for public MX hosts, and is always -used with opportunistic TLS encryption. The underlying cipherlist -is specified via the tls_export_cipherlist configuration parameter, -which you are strongly encouraged to not change. +Enable "EXPORT" grade or stronger OpenSSL ciphers. The +underlying cipherlist is specified via the tls_export_cipherlist +configuration parameter, which you are strongly encouraged to not +change. This choice is insecure and SHOULD NOT be used. .br .IP "\fBlow\fR" -Enable "LOW" grade or stronger OpenSSL ciphers. The -underlying cipherlist is specified via the tls_low_cipherlist -configuration parameter, which you are strongly encouraged to -not change. +Enable "LOW" grade or stronger OpenSSL ciphers. The underlying +cipherlist is specified via the tls_low_cipherlist configuration +parameter, which you are strongly encouraged to not change. This +choice is insecure and SHOULD NOT be used. .br .IP "\fBmedium\fR" Enable "MEDIUM" grade or stronger OpenSSL ciphers. These use 128-bit @@ -10653,13 +10627,15 @@ works in addition to the exclusions listed with smtpd_tls_exclude_ciphers (see there for syntax details). .PP This feature is available in Postfix 2.3 and later. -.SH smtpd_tls_mandatory_protocols (default: !SSLv2) +.SH smtpd_tls_mandatory_protocols (default: !SSLv2, !SSLv3) The SSL/TLS protocols accepted by the Postfix SMTP server with mandatory TLS encryption. If the list is empty, the server supports all available SSL/TLS protocol versions. A non-empty value is a list of protocol names separated by whitespace, commas or colons. The supported protocol names are "SSLv2", "SSLv3" and "TLSv1", and -are not case sensitive. +are not case sensitive. The default value is "!SSLv2, !SSLv3" for +Postfix releases after the middle of 2015, "!SSLv2" for older +releases. .PP With Postfix >= 2.5 the parameter syntax was expanded to support protocol exclusions. One can explicitly exclude "SSLv2" by setting @@ -10676,11 +10652,6 @@ disabled. The latest patch levels of Postfix >= 2.6, and all versions of Postfix >= 2.10 can disable support for "TLSv1.1" or "TLSv1.2". .PP -Since SSL version 2 has known protocol weaknesses and is now -deprecated, the default setting excludes "SSLv2". This means that -by default, SSL version 2 will not be used at the "encrypt" security -level. -.PP Example: .PP .nf @@ -10695,10 +10666,11 @@ smtpd_tls_mandatory_protocols = TLSv1 .ft R .PP This feature is available in Postfix 2.3 and later. -.SH smtpd_tls_protocols (default: empty) +.SH smtpd_tls_protocols (default: !SSLv2, !SSLv3) List of TLS protocols that the Postfix SMTP server will exclude -or include with opportunistic TLS encryption. This parameter SHOULD -be left at its default empty value, allowing all protocols to be +or include with opportunistic TLS encryption. The default value is +"!SSLv2, !SSLv3" for Postfix releases after the middle of 2015, +empty for older releases allowing all protocols to be used with opportunistic TLS. A non-empty value is a list of protocol names separated by whitespace, commas or colons. The supported protocol names are "SSLv2", "SSLv3" and "TLSv1", and are not case @@ -10710,7 +10682,7 @@ versions of Postfix >= 2.10 can disable support for "TLSv1.1" or "TLSv1.2". .PP To include a protocol list its name, to exclude it, prefix the name -with a "!" character. To exclude SSLv2 even for opportunistic TLS set +with a "!" character. To exclude SSLv2 for opportunistic TLS set "smtpd_tls_protocols = !SSLv2". To exclude both "SSLv2" and "SSLv3" set "smtpd_tls_protocols = !SSLv2, !SSLv3". Explicitly listing the protocols to include, rather than protocols to exclude, is supported, but not @@ -10721,7 +10693,7 @@ Example: .nf .na .ft C -smtpd_tls_protocols = !SSLv2 +smtpd_tls_protocols = !SSLv2, !SSLv3 .fi .ad .ft R @@ -11329,26 +11301,21 @@ compiled and linked with OpenSSL 1.0.0 or later on platforms where EC algorithms have not been disabled by the vendor. .SH tls_export_cipherlist (default: ALL:+RC4:@STRENGTH) The OpenSSL cipherlist for "EXPORT" or higher grade ciphers. This -defines the meaning of the "export" setting in smtpd_tls_mandatory_ciphers, -smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. This is -the cipherlist for the opportunistic ("may") TLS client security -level and is the default cipherlist for the SMTP server. You are -strongly encouraged to not change this setting. With OpenSSL 1.0.0 and -later the cipherlist may start with an "aNULL:" prefix, which restores -the 0.9.8-compatible ordering of the aNULL ciphers to the top of the -list when they are enabled. This prefix is not needed with previous -OpenSSL releases. +defines the meaning of the "export" setting in smtpd_tls_ciphers, +smtpd_tls_mandatory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ciphers, +lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. With Postfix +releases before the middle of 2015 this is the default cipherlist +for the opportunistic ("may") TLS client security level and also +the default cipherlist for the SMTP server. You are strongly +encouraged to not change this setting. .PP This feature is available in Postfix 2.3 and later. .SH tls_high_cipherlist (default: ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH) The OpenSSL cipherlist for "HIGH" grade ciphers. This defines -the meaning of the "high" setting in smtpd_tls_mandatory_ciphers, -smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. You are -strongly encouraged to not change this setting. With OpenSSL 1.0.0 and -later the cipherlist may start with an "aNULL:" prefix, which restores -the 0.9.8-compatible ordering of the aNULL ciphers to the top of the -list when they are enabled. This prefix is not needed with previous -OpenSSL releases. +the meaning of the "high" setting in smtpd_tls_ciphers, +smtpd_tls_mandatory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ciphers, +lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. You are strongly +encouraged to not change this setting. .PP This feature is available in Postfix 2.3 and later. .SH tls_legacy_public_key_fingerprints (default: no) @@ -11366,26 +11333,22 @@ certificate public-key fingerprints, see TLS_README. This feature is available in Postfix 2.9.6 and later. .SH tls_low_cipherlist (default: ALL:!EXPORT:+RC4:@STRENGTH) The OpenSSL cipherlist for "LOW" or higher grade ciphers. This defines -the meaning of the "low" setting in smtpd_tls_mandatory_ciphers, -smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. You are -strongly encouraged to not change this setting. With OpenSSL 1.0.0 and -later the cipherlist may start with an "aNULL:" prefix, which restores -the 0.9.8-compatible ordering of the aNULL ciphers to the top of the -list when they are enabled. This prefix is not needed with previous -OpenSSL releases. +the meaning of the "low" setting in smtpd_tls_ciphers, +smtpd_tls_mandatory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ciphers, +lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. You are strongly +encouraged to not change this setting. .PP This feature is available in Postfix 2.3 and later. .SH tls_medium_cipherlist (default: ALL:!EXPORT:!LOW:+RC4:@STRENGTH) The OpenSSL cipherlist for "MEDIUM" or higher grade ciphers. This -defines the meaning of the "medium" setting in smtpd_tls_mandatory_ciphers, -smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. This is -the default cipherlist for mandatory TLS encryption in the TLS -client (with anonymous ciphers disabled when verifying server -certificates). You are strongly encouraged to not change this -setting. With OpenSSL 1.0.0 and later the cipherlist may start with an -"aNULL:" prefix, which restores the 0.9.8-compatible ordering of the -aNULL ciphers to the top of the list when they are enabled. This prefix -is not needed with previous OpenSSL releases. +defines the meaning of the "medium" setting in smtpd_tls_ciphers, +smtpd_tls_mandatory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ciphers, +lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. This is the +default cipherlist for mandatory TLS encryption in the TLS client +(with anonymous ciphers disabled when verifying server certificates). +This is the default cipherlist for opportunistic TLS with Postfix +releases after the middle of 2015. You are strongly encouraged to +not change this setting. .PP This feature is available in Postfix 2.3 and later. .SH tls_null_cipherlist (default: eNULL:!aNULL) diff --git a/postfix/man/man8/smtp.8 b/postfix/man/man8/smtp.8 index e25ac4a17..c2a5a758b 100644 --- a/postfix/man/man8/smtp.8 +++ b/postfix/man/man8/smtp.8 @@ -401,7 +401,7 @@ when TLS is not already enabled for that server. Optional lookup tables with the Postfix SMTP client TLS security policy by next-hop destination; when a non-empty value is specified, this overrides the obsolete smtp_tls_per_site parameter. -.IP "\fBsmtp_tls_mandatory_protocols (!SSLv2)\fR" +.IP "\fBsmtp_tls_mandatory_protocols (!SSLv2, !SSLv3)\fR" List of SSL/TLS protocols that the Postfix SMTP client will use with mandatory TLS encryption. .IP "\fBsmtp_tls_scert_verifydepth (9)\fR" @@ -451,10 +451,10 @@ The message digest algorithm used to construct remote SMTP server certificate fingerprints. .PP Available in Postfix version 2.6 and later: -.IP "\fBsmtp_tls_protocols (!SSLv2)\fR" +.IP "\fBsmtp_tls_protocols (!SSLv2, !SSLv3)\fR" List of TLS protocols that the Postfix SMTP client will exclude or include with opportunistic TLS encryption. -.IP "\fBsmtp_tls_ciphers (export)\fR" +.IP "\fBsmtp_tls_ciphers (medium)\fR" The minimum TLS cipher grade that the Postfix SMTP client will use with opportunistic TLS encryption. .IP "\fBsmtp_tls_eccert_file (empty)\fR" diff --git a/postfix/man/man8/smtpd.8 b/postfix/man/man8/smtpd.8 index f900b5fa4..d7ecac35a 100644 --- a/postfix/man/man8/smtpd.8 +++ b/postfix/man/man8/smtpd.8 @@ -414,7 +414,7 @@ use with mandatory TLS encryption. .IP "\fBsmtpd_tls_mandatory_exclude_ciphers (empty)\fR" Additional list of ciphers or cipher types to exclude from the Postfix SMTP server cipher list at mandatory TLS security levels. -.IP "\fBsmtpd_tls_mandatory_protocols (!SSLv2)\fR" +.IP "\fBsmtpd_tls_mandatory_protocols (!SSLv2, !SSLv3)\fR" The SSL/TLS protocols accepted by the Postfix SMTP server with mandatory TLS encryption. .IP "\fBsmtpd_tls_received_header (no)\fR" @@ -452,10 +452,10 @@ fingerprints or public key fingerprints (Postfix 2.9 and later) for \fBcheck_ccert_access\fR and \fBpermit_tls_clientcerts\fR. .PP Available in Postfix version 2.6 and later: -.IP "\fBsmtpd_tls_protocols (empty)\fR" +.IP "\fBsmtpd_tls_protocols (!SSLv2, !SSLv3)\fR" List of TLS protocols that the Postfix SMTP server will exclude or include with opportunistic TLS encryption. -.IP "\fBsmtpd_tls_ciphers (export)\fR" +.IP "\fBsmtpd_tls_ciphers (medium)\fR" The minimum TLS cipher grade that the Postfix SMTP server will use with opportunistic TLS encryption. .IP "\fBsmtpd_tls_eccert_file (empty)\fR" diff --git a/postfix/proto/TLS_README.html b/postfix/proto/TLS_README.html index af041e8f2..bfb7f45b4 100644 --- a/postfix/proto/TLS_README.html +++ b/postfix/proto/TLS_README.html @@ -810,14 +810,16 @@ to Postfix 2.9.6 or later.

Server-side cipher controls

-

The Postfix SMTP server supports 5 distinct cipher security levels -as specified by the smtpd_tls_mandatory_ciphers configuration parameter, -which determines the cipher grade with mandatory TLS encryption. The -default value is "medium" which is essentially 128-bit encryption or better. -With opportunistic TLS encryption, the minimum accepted cipher grade is -typically "export". The corresponding smtpd_tls_ciphers parameter -(Postfix ≥ 2.6) controls the cipher grade used with opportunistic -TLS.

+

The Postfix SMTP server supports 5 distinct cipher grades as +specified by the smtpd_tls_mandatory_ciphers configuration parameter, +which determines the minimum cipher grade with mandatory TLS +encryption. The default minimum cipher grade for mandatory TLS is +"medium" which is essentially 128-bit encryption or better. The +smtpd_tls_ciphers parameter (Postfix ≥ 2.6) controls the minimum +cipher grade used with opportunistic TLS. Here, the default minimum +cipher grade is "medium" for Postfix releases after the middle of +2015, "export" for older Postfix releases. With Postfix < 2.6, +the minimum opportunistic TLS cipher grade is always "export".

By default anonymous ciphers are enabled. They are automatically disabled when remote SMTP client certificates are requested. If @@ -828,17 +830,12 @@ by setting "smtpd_tls_mandatory_exclude_ciphers = aNULL" or a remote SMTP client to check the server certificate, so excluding anonymous ciphers is generally unnecessary.

-

The "smtpd_tls_ciphers" configuration parameter (Postfix ≥ -2.6) provides control over the minimum cipher grade for opportunistic -TLS. With -Postfix < 2.6, the minimum opportunistic TLS cipher grade is always -"export".

- -

With mandatory TLS encryption, the Postfix SMTP server will by -default disable SSLv2. SSLv2 is used only when TLS encryption -is optional. The mandatory TLS protocol list is specified via the +

With mandatory and opportunistic TLS encryption, the Postfix +SMTP server by default disables SSLv2 and SSLv3 with Postfix releases +after the middle of 2015; older releases only disable SSLv2 for +mandatory TLS. The mandatory TLS protocol list is specified via the smtpd_tls_mandatory_protocols configuration parameter. The -corresponding smtpd_tls_protocols parameter (Postfix ≥ 2.6) +smtpd_tls_protocols parameter (Postfix ≥ 2.6) controls the SSL/TLS protocols used with opportunistic TLS.

Note that the OpenSSL library only supports protocol exclusion @@ -1080,14 +1077,11 @@ is supported by the server. Otherwise, messages are sent in the clear. Opportunistic TLS can be configured by setting "smtp_tls_security_level = may". For LMTP, use the corresponding "lmtp_" parameter.

-

Since sending in the clear is acceptable, demanding stronger -than default TLS security mostly reduces inter-operability. If you -must restrict TLS protocol or cipher selection even with opportunistic -TLS, the "smtp_tls_ciphers" and "smtp_tls_protocols" configuration -parameters (Postfix ≥ 2.6) provide control over the protocols -and cipher grade -used with opportunistic TLS. With earlier releases the opportunistic TLS -cipher grade is always "export" and no protocols are disabled.

+

The "smtp_tls_ciphers" and "smtp_tls_protocols" configuration +parameters (Postfix ≥ 2.6) provide control over the cipher grade +and protocols used with opportunistic TLS. With earlier Postfix +releases, opportunistic TLS always uses the cipher grade "export" +and enables all protocols.

With opportunistic TLS, mail delivery continues even if the server certificate is untrusted or bears the wrong name. @@ -1163,7 +1157,7 @@ table, specify the "encrypt" security level.

In the example below, traffic to example.com and its sub-domains via the corresponding MX hosts always uses TLS. The SSLv2 protocol will be disabled (the default setting of smtp_tls_mandatory_protocols -excludes "SSLv2"). Only high- or medium-strength (i.e. 128 bit or +excludes SSLv2+3). Only high- or medium-strength (i.e. 128 bit or better) ciphers will be used by default for all "encrypt" security level sessions.

@@ -2143,7 +2137,7 @@ DNSSEC. If no TLSA records are found, the effective security level used is may. If TLSA records are found, but none are usable, the effective security level is encrypt. When usable TLSA records -are obtained for the remote SMTP server, SSLv2 is automatically +are obtained for the remote SMTP server, SSLv2+3 are automatically disabled (see smtp_tls_mandatory_protocols), and the server certificate must match the TLSA records. RFC 6698 (DANE) TLS authentication and DNSSEC support is available with Postfix 2.11 and later.
@@ -2152,7 +2146,7 @@ and DNSSEC support is available with Postfix 2.11 and later.
The TLS policy for the destination is obtained via TLSA records in DNSSEC. If no TLSA records are found, or none are usable, no connection is made to the server. When usable TLSA records are -obtained for the remote SMTP server, SSLv2 is automatically disabled +obtained for the remote SMTP server, SSLv2+3 are automatically disabled (see smtp_tls_mandatory_protocols), and the server certificate must match the TLSA records. RFC 6698 (DANE) TLS authentication and DNSSEC support is available with Postfix 2.11 and later.
@@ -2318,7 +2312,7 @@ configured to supply its intermediate CA certificate).

Client-side cipher controls

-

The Postfix SMTP client supports 5 distinct cipher security levels +

The Postfix SMTP client supports 5 distinct cipher grades as specified by the smtp_tls_mandatory_ciphers configuration parameter. This setting controls the minimum acceptable SMTP client TLS cipher grade for use with mandatory TLS encryption. The default @@ -2339,13 +2333,15 @@ and TLS session cache space, if certificates are ignored, there is little point in requesting them.

The "smtp_tls_ciphers" configuration parameter (Postfix ≥ 2.6) -provides control over the minimum cipher grade for opportunistic TLS. With -Postfix < 2.6, the minimum opportunistic TLS cipher grade is always -"export".

+provides control over the minimum cipher grade for opportunistic TLS. +The default minimum cipher grade for opportunistic TLS is "medium" +for Postfix releases after the middle of 2015, and "export" for +older releases. With Postfix < 2.6, the minimum opportunistic +TLS cipher grade is always "export".

-

With mandatory TLS encryption, the Postfix SMTP client will by -default disable SSLv2. SSLv2 is used only when TLS encryption -is optional. The mandatory TLS protocol list is specified via the +

With mandatory and opportunistic TLS encryption, the Postfix +SMTP client will by default disable SSLv2 and SSLv3. The mandatory +TLS protocol list is specified via the smtp_tls_mandatory_protocols configuration parameter. The corresponding smtp_tls_protocols parameter (Postfix ≥ 2.6) controls the SSL/TLS protocols used with opportunistic TLS.

@@ -2363,7 +2359,7 @@ the SSL/TLS protocols used with opportunistic TLS.

# Legacy form for Postfix < 2.5: smtp_tls_mandatory_protocols = SSLv3, TLSv1 # Also available with Postfix ≥ 2.6: - smtp_tls_ciphers = export + smtp_tls_ciphers = medium smtp_tls_protocols = !SSLv2 diff --git a/postfix/proto/postconf.proto b/postfix/proto/postconf.proto index 703511075..8dcdfabd0 100644 --- a/postfix/proto/postconf.proto +++ b/postfix/proto/postconf.proto @@ -10784,14 +10784,16 @@ configurations in environments where DNS security is not assured.

This feature is available in Postfix 2.3 and later.

-%PARAM smtp_tls_mandatory_protocols !SSLv2 +%PARAM smtp_tls_mandatory_protocols !SSLv2, !SSLv3

List of SSL/TLS protocols that the Postfix SMTP client will use with mandatory TLS encryption. In main.cf the values are separated by whitespace, commas or colons. In the policy table "protocols" attribute (see smtp_tls_policy_maps) the only valid separator is colon. An empty value means allow all protocols. The valid protocol names, (see -SSL_get_version(3)), are "SSLv2", "SSLv3" and "TLSv1".

+SSL_get_version(3)), are "SSLv2", "SSLv3" and "TLSv1". The +default value is "!SSLv2, !SSLv3" for Postfix releases after the +middle of 2015, "!SSLv2" for older releases.

With Postfix ≥ 2.5 the parameter syntax was expanded to support protocol exclusions. One can explicitly exclude "SSLv2" by setting @@ -10834,11 +10836,6 @@ SNI is required. If you use "dane" or "dane-only" do not disable TLSv1, except perhaps via the policy table for destinations which you are sure will support "TLSv1.1" or "TLSv1.2".

-

Since SSL version 2 has known protocol weaknesses and is now -deprecated, the default setting excludes "SSLv2". This means that by -default, SSL version 2 will not be used at the "encrypt" security level -and higher.

-

See the documentation of the smtp_tls_policy_maps parameter and TLS_README for more information about security levels.

@@ -10977,7 +10974,7 @@ configuration parameter. See there for details.

This feature is available in Postfix 2.3 and later.

-%PARAM lmtp_tls_mandatory_protocols !SSLv2 +%PARAM lmtp_tls_mandatory_protocols !SSLv2, !SSLv3

The LMTP-specific version of the smtp_tls_mandatory_protocols configuration parameter. See there for details.

@@ -10998,14 +10995,16 @@ configuration parameter. See there for details.

This feature is available in Postfix 2.3 and later.

-%PARAM smtpd_tls_mandatory_protocols !SSLv2 +%PARAM smtpd_tls_mandatory_protocols !SSLv2, !SSLv3

The SSL/TLS protocols accepted by the Postfix SMTP server with mandatory TLS encryption. If the list is empty, the server supports all available SSL/TLS protocol versions. A non-empty value is a list of protocol names separated by whitespace, commas or colons. The supported protocol names are "SSLv2", "SSLv3" and "TLSv1", and -are not case sensitive.

+are not case sensitive. The default value is "!SSLv2, !SSLv3" for +Postfix releases after the middle of 2015, "!SSLv2" for older +releases.

With Postfix ≥ 2.5 the parameter syntax was expanded to support protocol exclusions. One can explicitly exclude "SSLv2" by setting @@ -11022,11 +11021,6 @@ disabled. The latest patch levels of Postfix ≥ 2.6, and all versions of Postfix ≥ 2.10 can disable support for "TLSv1.1" or "TLSv1.2".

-

Since SSL version 2 has known protocol weaknesses and is now -deprecated, the default setting excludes "SSLv2". This means that -by default, SSL version 2 will not be used at the "encrypt" security -level.

-

Example:

@@ -11161,7 +11155,7 @@ smtp_tls_security_level = may
 # can be mitigated by disabling a particular protocol or raising the
 # cipher grade from "export" to "low" or "medium").
 smtp_tls_ciphers = export
-smtp_tls_protocols = !SSLv2
+smtp_tls_protocols = !SSLv2, !SSLv3
 
@@ -11419,17 +11413,16 @@ one "medium" or "high" grade cipher. 

export
-
Enable "EXPORT" grade or stronger OpenSSL ciphers. -This is the most appropriate setting for public MX hosts, and is always -used with opportunistic TLS encryption. The underlying cipherlist -is specified via the tls_export_cipherlist configuration parameter, -which you are strongly encouraged to not change.
+
Enable "EXPORT" grade or stronger OpenSSL ciphers. The +underlying cipherlist is specified via the tls_export_cipherlist +configuration parameter, which you are strongly encouraged to not +change. This choice is insecure and SHOULD NOT be used.
low
-
Enable "LOW" grade or stronger OpenSSL ciphers. The -underlying cipherlist is specified via the tls_low_cipherlist -configuration parameter, which you are strongly encouraged to -not change.
+
Enable "LOW" grade or stronger OpenSSL ciphers. The underlying +cipherlist is specified via the tls_low_cipherlist configuration +parameter, which you are strongly encouraged to not change. This +choice is insecure and SHOULD NOT be used.
medium
Enable "MEDIUM" grade or stronger OpenSSL ciphers. These use 128-bit @@ -11526,18 +11519,16 @@ on a per-destination basis.

export
-
Enable "EXPORT" grade or better OpenSSL -ciphers. This is the default for opportunistic encryption. It is -not recommended for mandatory encryption unless you must enforce TLS -with "crippled" peers. The underlying cipherlist is specified via the -tls_export_cipherlist configuration parameter, which you are strongly -encouraged to not change.
+
Enable "EXPORT" grade or better OpenSSL ciphers. The underlying +cipherlist is specified via the tls_export_cipherlist configuration +parameter, which you are strongly encouraged to not change. This +choice is insecure and SHOULD NOT be used.
low
-
Enable "LOW" grade or better OpenSSL ciphers. This -setting is only appropriate for internal mail servers. The underlying +
Enable "LOW" grade or better OpenSSL ciphers. The underlying cipherlist is specified via the tls_low_cipherlist configuration -parameter, which you are strongly encouraged to not change.
+parameter, which you are strongly encouraged to not change. This +choice is insecure and SHOULD NOT be used.
medium
Enable "MEDIUM" grade or better OpenSSL ciphers. @@ -11623,56 +11614,47 @@ attribute. See smtp_tls_policy_maps for notes and examples.

%PARAM tls_high_cipherlist ALL:!EXPORT:!LOW:!MEDIUM:+RC4:@STRENGTH

The OpenSSL cipherlist for "HIGH" grade ciphers. This defines -the meaning of the "high" setting in smtpd_tls_mandatory_ciphers, -smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. You are -strongly encouraged to not change this setting. With OpenSSL 1.0.0 and -later the cipherlist may start with an "aNULL:" prefix, which restores -the 0.9.8-compatible ordering of the aNULL ciphers to the top of the -list when they are enabled. This prefix is not needed with previous -OpenSSL releases.

+the meaning of the "high" setting in smtpd_tls_ciphers, +smtpd_tls_mandatory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ciphers, +lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. You are strongly +encouraged to not change this setting.

This feature is available in Postfix 2.3 and later.

%PARAM tls_medium_cipherlist ALL:!EXPORT:!LOW:+RC4:@STRENGTH

The OpenSSL cipherlist for "MEDIUM" or higher grade ciphers. This -defines the meaning of the "medium" setting in smtpd_tls_mandatory_ciphers, -smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. This is -the default cipherlist for mandatory TLS encryption in the TLS -client (with anonymous ciphers disabled when verifying server -certificates). You are strongly encouraged to not change this -setting. With OpenSSL 1.0.0 and later the cipherlist may start with an -"aNULL:" prefix, which restores the 0.9.8-compatible ordering of the -aNULL ciphers to the top of the list when they are enabled. This prefix -is not needed with previous OpenSSL releases.

+defines the meaning of the "medium" setting in smtpd_tls_ciphers, +smtpd_tls_mandatory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ciphers, +lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. This is the +default cipherlist for mandatory TLS encryption in the TLS client +(with anonymous ciphers disabled when verifying server certificates). +This is the default cipherlist for opportunistic TLS with Postfix +releases after the middle of 2015. You are strongly encouraged to +not change this setting.

This feature is available in Postfix 2.3 and later.

%PARAM tls_low_cipherlist ALL:!EXPORT:+RC4:@STRENGTH

The OpenSSL cipherlist for "LOW" or higher grade ciphers. This defines -the meaning of the "low" setting in smtpd_tls_mandatory_ciphers, -smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. You are -strongly encouraged to not change this setting. With OpenSSL 1.0.0 and -later the cipherlist may start with an "aNULL:" prefix, which restores -the 0.9.8-compatible ordering of the aNULL ciphers to the top of the -list when they are enabled. This prefix is not needed with previous -OpenSSL releases.

+the meaning of the "low" setting in smtpd_tls_ciphers, +smtpd_tls_mandatory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ciphers, +lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. You are strongly +encouraged to not change this setting.

This feature is available in Postfix 2.3 and later.

%PARAM tls_export_cipherlist ALL:+RC4:@STRENGTH

The OpenSSL cipherlist for "EXPORT" or higher grade ciphers. This -defines the meaning of the "export" setting in smtpd_tls_mandatory_ciphers, -smtp_tls_mandatory_ciphers and lmtp_tls_mandatory_ciphers. This is -the cipherlist for the opportunistic ("may") TLS client security -level and is the default cipherlist for the SMTP server. You are -strongly encouraged to not change this setting. With OpenSSL 1.0.0 and -later the cipherlist may start with an "aNULL:" prefix, which restores -the 0.9.8-compatible ordering of the aNULL ciphers to the top of the -list when they are enabled. This prefix is not needed with previous -OpenSSL releases.

+defines the meaning of the "export" setting in smtpd_tls_ciphers, +smtpd_tls_mandatory_ciphers, smtp_tls_ciphers, smtp_tls_mandatory_ciphers, +lmtp_tls_ciphers, and lmtp_tls_mandatory_ciphers. With Postfix +releases before the middle of 2015 this is the default cipherlist +for the opportunistic ("may") TLS client security level and also +the default cipherlist for the SMTP server. You are strongly +encouraged to not change this setting.

This feature is available in Postfix 2.3 and later.

@@ -11686,7 +11668,7 @@ change this setting.

This feature is available in Postfix 2.3 and later.

-%PARAM lmtp_tls_mandatory_ciphers +%PARAM lmtp_tls_mandatory_ciphers medium

The LMTP-specific version of the smtp_tls_mandatory_ciphers configuration parameter. See there for details.

@@ -12144,12 +12126,13 @@ the hostname and IP address. The logging format is "host[address]:port".

This feature is available in Postfix 2.5 and later.

-%PARAM smtp_tls_protocols !SSLv2 +%PARAM smtp_tls_protocols !SSLv2, !SSLv3

List of TLS protocols that the Postfix SMTP client will exclude or -include with opportunistic TLS encryption. Starting with Postfix 2.6, -the Postfix SMTP client will by default not use the obsolete SSLv2 -protocol.

+include with opportunistic TLS encryption. The default value is +"!SSLv2, !SSLv3" for Postfix releases after the middle of 2015, +"!SSLv2" for older releases. Before Postfix 2.6, the Postfix SMTP +client would use all protocols with opportunistic TLS.

In main.cf the values are separated by whitespace, commas or colons. In the policy table (see smtp_tls_policy_maps) the only valid @@ -12175,7 +12158,7 @@ versions of Postfix ≥ 2.10 can explicitly disable support for "TLSv1.1" or "TLSv1.2"

To include a protocol list its name, to exclude it, prefix the name -with a "!" character. To exclude SSLv2 even for opportunistic TLS set +with a "!" character. To exclude SSLv2 for opportunistic TLS set "smtp_tls_protocols = !SSLv2". To exclude both "SSLv2" and "SSLv3" set "smtp_tls_protocols = !SSLv2, !SSLv3". Explicitly listing the protocols to include, rather than protocols to exclude, is supported, but not @@ -12190,11 +12173,12 @@ smtp_tls_protocols = !SSLv2, !SSLv3

This feature is available in Postfix 2.6 and later.

-%PARAM smtpd_tls_protocols +%PARAM smtpd_tls_protocols !SSLv2, !SSLv3

List of TLS protocols that the Postfix SMTP server will exclude -or include with opportunistic TLS encryption. This parameter SHOULD -be left at its default empty value, allowing all protocols to be +or include with opportunistic TLS encryption. The default value is +"!SSLv2, !SSLv3" for Postfix releases after the middle of 2015, +empty for older releases allowing all protocols to be used with opportunistic TLS. A non-empty value is a list of protocol names separated by whitespace, commas or colons. The supported protocol names are "SSLv2", "SSLv3" and "TLSv1", and are not case @@ -12206,7 +12190,7 @@ versions of Postfix ≥ 2.10 can disable support for "TLSv1.1" or "TLSv1.2".

To include a protocol list its name, to exclude it, prefix the name -with a "!" character. To exclude SSLv2 even for opportunistic TLS set +with a "!" character. To exclude SSLv2 for opportunistic TLS set "smtpd_tls_protocols = !SSLv2". To exclude both "SSLv2" and "SSLv3" set "smtpd_tls_protocols = !SSLv2, !SSLv3". Explicitly listing the protocols to include, rather than protocols to exclude, is supported, but not @@ -12215,66 +12199,54 @@ OpenSSL interface semantics.

Example:

-smtpd_tls_protocols = !SSLv2
+smtpd_tls_protocols = !SSLv2, !SSLv3
 

This feature is available in Postfix 2.6 and later.

-%PARAM lmtp_tls_protocols +%PARAM lmtp_tls_protocols !SSLv2, !SSLv3

The LMTP-specific version of the smtp_tls_protocols configuration parameter. See there for details.

This feature is available in Postfix 2.6 and later.

-%PARAM smtp_tls_ciphers export +%PARAM smtp_tls_ciphers medium

The minimum TLS cipher grade that the Postfix SMTP client will use with opportunistic TLS encryption. Cipher types listed in smtp_tls_exclude_ciphers are excluded from the base definition of -the selected cipher grade. The default value "export" ensures maximum -inter-operability. Because encryption is optional, stronger controls -are not appropriate, and this setting SHOULD NOT be changed unless the -change is essential.

+the selected cipher grade. The default value is "medium" for +Postfix releases after the middle of 2015, "export" for older +releases.

When TLS is mandatory the cipher grade is chosen via the smtp_tls_mandatory_ciphers configuration parameter, see there for syntax details. See smtp_tls_policy_maps for information on how to configure ciphers on a per-destination basis.

-

Example:

-
-smtp_tls_ciphers = export
-
-

This feature is available in Postfix 2.6 and later. With earlier Postfix releases only the smtp_tls_mandatory_ciphers parameter is implemented, and opportunistic TLS always uses "export" or better (i.e. all) ciphers.

-%PARAM smtpd_tls_ciphers export +%PARAM smtpd_tls_ciphers medium

The minimum TLS cipher grade that the Postfix SMTP server will use with opportunistic TLS encryption. Cipher types listed in smtpd_tls_exclude_ciphers are excluded from the base definition of -the selected cipher grade. The default value "export" ensures maximum -inter-operability. Because encryption is optional, stronger controls -are not appropriate, and this setting SHOULD NOT be changed unless the -change is essential.

+the selected cipher grade. The default value is "medium" for Postfix +releases after the middle of 2015, "export" for older releases. +

When TLS is mandatory the cipher grade is chosen via the smtpd_tls_mandatory_ciphers configuration parameter, see there for syntax details.

-

Example:

-
-smtpd_tls_ciphers = export
-
-

This feature is available in Postfix 2.6 and later. With earlier Postfix releases only the smtpd_tls_mandatory_ciphers parameter is implemented, and opportunistic TLS always uses "export" or better (i.e. all) ciphers.

-%PARAM lmtp_tls_ciphers export +%PARAM lmtp_tls_ciphers medium

The LMTP-specific version of the smtp_tls_ciphers configuration parameter. See there for details.

diff --git a/postfix/src/global/mail_params.h b/postfix/src/global/mail_params.h index 12fd0e157..410857e29 100644 --- a/postfix/src/global/mail_params.h +++ b/postfix/src/global/mail_params.h @@ -1276,15 +1276,15 @@ extern char *var_smtpd_tls_CAfile; extern char *var_smtpd_tls_CApath; #define VAR_SMTPD_TLS_PROTO "smtpd_tls_protocols" -#define DEF_SMTPD_TLS_PROTO "" +#define DEF_SMTPD_TLS_PROTO "!SSLv2, !SSLv3" extern char *var_smtpd_tls_proto; #define VAR_SMTPD_TLS_MAND_PROTO "smtpd_tls_mandatory_protocols" -#define DEF_SMTPD_TLS_MAND_PROTO "!SSLv2" +#define DEF_SMTPD_TLS_MAND_PROTO "!SSLv2, !SSLv3" extern char *var_smtpd_tls_mand_proto; #define VAR_SMTPD_TLS_CIPH "smtpd_tls_ciphers" -#define DEF_SMTPD_TLS_CIPH "export" +#define DEF_SMTPD_TLS_CIPH "medium" extern char *var_smtpd_tls_ciph; #define VAR_SMTPD_TLS_MAND_CIPH "smtpd_tls_mandatory_ciphers" @@ -1425,9 +1425,9 @@ extern char *var_smtp_tls_CAfile; extern char *var_smtp_tls_CApath; #define VAR_SMTP_TLS_CIPH "smtp_tls_ciphers" -#define DEF_SMTP_TLS_CIPH "export" +#define DEF_SMTP_TLS_CIPH "medium" #define VAR_LMTP_TLS_CIPH "lmtp_tls_ciphers" -#define DEF_LMTP_TLS_CIPH "export" +#define DEF_LMTP_TLS_CIPH "medium" extern char *var_smtp_tls_ciph; #define VAR_SMTP_TLS_MAND_CIPH "smtp_tls_mandatory_ciphers" @@ -1496,15 +1496,15 @@ extern int var_lmtp_tls_scache_timeout; extern char *var_smtp_tls_policy; #define VAR_SMTP_TLS_PROTO "smtp_tls_protocols" -#define DEF_SMTP_TLS_PROTO "!SSLv2" +#define DEF_SMTP_TLS_PROTO "!SSLv2, !SSLv3" #define VAR_LMTP_TLS_PROTO "lmtp_tls_protocols" -#define DEF_LMTP_TLS_PROTO "!SSLv2" +#define DEF_LMTP_TLS_PROTO "!SSLv2, !SSLv3" extern char *var_smtp_tls_proto; #define VAR_SMTP_TLS_MAND_PROTO "smtp_tls_mandatory_protocols" -#define DEF_SMTP_TLS_MAND_PROTO "!SSLv2" +#define DEF_SMTP_TLS_MAND_PROTO "!SSLv2, !SSLv3" #define VAR_LMTP_TLS_MAND_PROTO "lmtp_tls_mandatory_protocols" -#define DEF_LMTP_TLS_MAND_PROTO "!SSLv2" +#define DEF_LMTP_TLS_MAND_PROTO "!SSLv2, !SSLv3" extern char *var_smtp_tls_mand_proto; #define VAR_SMTP_TLS_VFY_CMATCH "smtp_tls_verify_cert_match" diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h index 19c1a0531..91d9cebc7 100644 --- a/postfix/src/global/mail_version.h +++ b/postfix/src/global/mail_version.h @@ -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 "20150412" -#define MAIL_VERSION_NUMBER "2.11.5" +#define MAIL_RELEASE_DATE "20150720" +#define MAIL_VERSION_NUMBER "2.11.6" #ifdef SNAPSHOT #define MAIL_VERSION_DATE "-" MAIL_RELEASE_DATE diff --git a/postfix/src/smtp/smtp.c b/postfix/src/smtp/smtp.c index 9067bb730..0ffaa0ff0 100644 --- a/postfix/src/smtp/smtp.c +++ b/postfix/src/smtp/smtp.c @@ -371,7 +371,7 @@ /* Optional lookup tables with the Postfix SMTP client TLS security /* policy by next-hop destination; when a non-empty value is specified, /* this overrides the obsolete smtp_tls_per_site parameter. -/* .IP "\fBsmtp_tls_mandatory_protocols (!SSLv2)\fR" +/* .IP "\fBsmtp_tls_mandatory_protocols (!SSLv2, !SSLv3)\fR" /* List of SSL/TLS protocols that the Postfix SMTP client will use with /* mandatory TLS encryption. /* .IP "\fBsmtp_tls_scert_verifydepth (9)\fR" @@ -421,10 +421,10 @@ /* certificate fingerprints. /* .PP /* Available in Postfix version 2.6 and later: -/* .IP "\fBsmtp_tls_protocols (!SSLv2)\fR" +/* .IP "\fBsmtp_tls_protocols (!SSLv2, !SSLv3)\fR" /* List of TLS protocols that the Postfix SMTP client will exclude or /* include with opportunistic TLS encryption. -/* .IP "\fBsmtp_tls_ciphers (export)\fR" +/* .IP "\fBsmtp_tls_ciphers (medium)\fR" /* The minimum TLS cipher grade that the Postfix SMTP client /* will use with opportunistic TLS encryption. /* .IP "\fBsmtp_tls_eccert_file (empty)\fR" diff --git a/postfix/src/smtpd/smtpd.c b/postfix/src/smtpd/smtpd.c index 1c4b9ede8..0bade1482 100644 --- a/postfix/src/smtpd/smtpd.c +++ b/postfix/src/smtpd/smtpd.c @@ -380,7 +380,7 @@ /* .IP "\fBsmtpd_tls_mandatory_exclude_ciphers (empty)\fR" /* Additional list of ciphers or cipher types to exclude from the /* Postfix SMTP server cipher list at mandatory TLS security levels. -/* .IP "\fBsmtpd_tls_mandatory_protocols (!SSLv2)\fR" +/* .IP "\fBsmtpd_tls_mandatory_protocols (!SSLv2, !SSLv3)\fR" /* The SSL/TLS protocols accepted by the Postfix SMTP server with /* mandatory TLS encryption. /* .IP "\fBsmtpd_tls_received_header (no)\fR" @@ -418,10 +418,10 @@ /* for \fBcheck_ccert_access\fR and \fBpermit_tls_clientcerts\fR. /* .PP /* Available in Postfix version 2.6 and later: -/* .IP "\fBsmtpd_tls_protocols (empty)\fR" +/* .IP "\fBsmtpd_tls_protocols (!SSLv2, !SSLv3)\fR" /* List of TLS protocols that the Postfix SMTP server will exclude /* or include with opportunistic TLS encryption. -/* .IP "\fBsmtpd_tls_ciphers (export)\fR" +/* .IP "\fBsmtpd_tls_ciphers (medium)\fR" /* The minimum TLS cipher grade that the Postfix SMTP server /* will use with opportunistic TLS encryption. /* .IP "\fBsmtpd_tls_eccert_file (empty)\fR" diff --git a/postfix/src/util/sys_defs.h b/postfix/src/util/sys_defs.h index 661988577..0978b8e85 100644 --- a/postfix/src/util/sys_defs.h +++ b/postfix/src/util/sys_defs.h @@ -755,7 +755,7 @@ extern int initgroups(const char *, int); /* * LINUX. */ -#if defined(LINUX2) || defined(LINUX3) +#if defined(LINUX2) || defined(LINUX3) || defined(LINUX4) #define SUPPORTED #include #define UINT32_TYPE unsigned int