Difference between revisions of "Security/Collab/87"

(3rd Party Packages of Interest)
m
 
(7 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
= Security Settings for Zimbra Collaboration 8.7 series =
 
= Security Settings for Zimbra Collaboration 8.7 series =
 
{{KB|{{ZC}}|{{ZCS 8.7}}||}}
 
{{KB|{{ZC}}|{{ZCS 8.7}}||}}
{{WIP}}
 
  
 
== Important: Upgrading from Older ZCS Versions ==
 
== Important: Upgrading from Older ZCS Versions ==
Line 24: Line 23:
 
Enables the Cross-site scripting (XSS) filter built into most recent web browsers:
 
Enables the Cross-site scripting (XSS) filter built into most recent web browsers:
  
   X-XSS-Protection: 1; mode=block
+
   zmprov mcf +zimbraResponseHeader "X-XSS-Protection: 1; mode=block"
  
 
=== X-Content-Type-Options ===
 
=== X-Content-Type-Options ===
 
Prevent Internet Explorer and Google Chrome from MIME-sniffing a response away from the declared content-type.
 
Prevent Internet Explorer and Google Chrome from MIME-sniffing a response away from the declared content-type.
  
  X-Content-Type-Options: nosniff
+
  zmprov mcf +zimbraResponseHeader "X-Content-Type-Options: nosniff"
 +
 
 +
=== Content-Security-Policy ===
 +
ZCS does not contain a default Content-Security-Policy header ([https://bugzilla.zimbra.com/show_bug.cgi?id=58216 bug 58216]).  However, it is recommended to create one that meets the requirements of your site.
 +
 
 +
Useful references:
 +
* https://www.youtube.com/watch?v=L97wtYCqfwM - Understanding CSP
 +
* http://cspisawesome.com/ - online Content-Security-Policy generator
 +
* http://caniuse.com/#search=ContentSecurityPolicy - check browser support
  
 
== SSLv3 Disabled ==
 
== SSLv3 Disabled ==
Line 36: Line 43:
  
 
== OpenSSL SSLv3 Disabled ==
 
== OpenSSL SSLv3 Disabled ==
* In 8.7, OpenSSL is upgraded to [https://bugzilla.zimbra.com/show_bug.cgi?id=103561 OpenSSL 1.0.1r] (see also [https://github.com/Zimbra/packages/tree/master/thirdparty/openssl ZCS openssl on github]).  In new installs ZCS defaults to disabling SSLv3 negotiation, sites that upgrade my need to manually [https://wiki.zimbra.com/wiki/How_to_disable_SSLv3 disable SSLv3].
+
* In 8.7, OpenSSL is upgraded to the 1.0.2 series (see also [https://github.com/Zimbra/packages/tree/master/thirdparty/openssl ZCS openssl on github]).  In new installs ZCS defaults to disabling SSLv3 negotiation, sites that upgrade my need to manually [https://wiki.zimbra.com/wiki/How_to_disable_SSLv3 disable SSLv3].
  
 
Note: OpenSSL is not compiled with the '''no-ssl3''' option due to potential complications [https://bugzilla.zimbra.com/show_bug.cgi?id=102354 during upgrades] (ref: [https://wiki.openssl.org/index.php/Compilation_and_Installation#Configure_Options OpenSSL configure options]).
 
Note: OpenSSL is not compiled with the '''no-ssl3''' option due to potential complications [https://bugzilla.zimbra.com/show_bug.cgi?id=102354 during upgrades] (ref: [https://wiki.openssl.org/index.php/Compilation_and_Installation#Configure_Options OpenSSL configure options]).
Line 42: Line 49:
 
== DH parameters ==
 
== DH parameters ==
 
=== OpenSSL DH Parameters ===
 
=== OpenSSL DH Parameters ===
The main components utilizing OpenSSL are LDAP, MTA, and Proxy services.  In ZCS 8.7, the default DH Parameter uses 2048-bits (ref: [https://bugzilla.zimbra.com/show_bug.cgi?id=99558 99558] [https://bugzilla.zimbra.com/show_bug.cgi?id=103803 103803], [https://bugzilla.zimbra.com/show_bug.cgi?id=99564 99564: MTA/smtpd_tls_dh1024_param_file], [https://bugzilla.zimbra.com/show_bug.cgi?id=103399 103399: Proxy/ssl_dhparam]).  The new global configuration parameter to store the PEM formatted DH parameter data is '''zimbraSSLDHParam'''.  A new utility '''zmdhparam''' can be used to create new custom DH parameters.
+
The main components utilizing OpenSSL are LDAP, MTA, and Proxy services.  In ZCS 8.7, the default DH Parameter uses 2048-bits (ref: [https://bugzilla.zimbra.com/show_bug.cgi?id=99558 99558] [https://bugzilla.zimbra.com/show_bug.cgi?id=103803 103803], [https://bugzilla.zimbra.com/show_bug.cgi?id=100443 100443 LDAP/TLSDHParamFile], [https://bugzilla.zimbra.com/show_bug.cgi?id=99564 99564: MTA/smtpd_tls_dh1024_param_file], [https://bugzilla.zimbra.com/show_bug.cgi?id=103399 103399: Proxy/ssl_dhparam]).  The new global configuration parameter to store the PEM formatted DH parameter data is '''zimbraSSLDHParam'''.  A new utility '''zmdhparam''' can be used to create new custom DH parameters.
  
*  Ability to set DH param file for MTA / Postfix
+
*  Ability to set DH parameters for LDAP / MTA / Proxy
 
*  Default to 2048 bit DH Parameters
 
*  Default to 2048 bit DH Parameters
  
Line 50: Line 57:
  
 
See also:
 
See also:
* http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_dhparam
 
 
* https://www.openssl.org/docs/apps/dhparam.html
 
* https://www.openssl.org/docs/apps/dhparam.html
 
* https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
 
* https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
* http://www.nginxtips.com/hardening-nginx-ssl-tsl-configuration/
+
* http://nginx.org/en/docs/http/ngx_http_ssl_module.html#ssl_dhparam
 +
* http://www.postfix.org/postconf.5.html#smtpd_tls_dh1024_param_file
  
 
== Proxy/Nginx ==
 
== Proxy/Nginx ==
Line 117: Line 124:
 
= 3rd Party Packages of Interest =
 
= 3rd Party Packages of Interest =
 
See https://github.com/Zimbra/packages/blob/master/versions.def for latest
 
See https://github.com/Zimbra/packages/blob/master/versions.def for latest
* [https://bugzilla.zimbra.com/show_bug.cgi?id=104130 104130] OpenSSL 1.0.2g
+
* [https://bugzilla.zimbra.com/show_bug.cgi?id=104803 104803] OpenSSL 1.0.2h
* [https://bugzilla.zimbra.com/show_bug.cgi?id=104160 104160] Postfix 3.1.0
+
* [https://bugzilla.zimbra.com/show_bug.cgi?id=104718 104718] OpenJDK 1.8.0u92-b14
* [https://bugzilla.zimbra.com/show_bug.cgi?id=103835 103835] PHP 5.6.18
+
* [https://bugzilla.zimbra.com/show_bug.cgi?id=105078 105078] Postfix 3.1.1
 +
* [https://bugzilla.zimbra.com/show_bug.cgi?id=105076 105076] PHP 5.6.22
 
* [https://bugzilla.zimbra.com/show_bug.cgi?id=102316 102316] libpng 1.6.19
 
* [https://bugzilla.zimbra.com/show_bug.cgi?id=102316 102316] libpng 1.6.19
* [https://bugzilla.zimbra.com/show_bug.cgi?id=103900 103900] OpenJDK 1.8.0u74-b02
+
* [https://bugzilla.zimbra.com/show_bug.cgi?id=105075 105075] MariaDB 10.1.14
* [https://bugzilla.zimbra.com/show_bug.cgi?id=104225 104225] MariaDB 10.1.12
 
 
* [https://bugzilla.zimbra.com/show_bug.cgi?id=103588 103588] Rsync 3.1.2
 
* [https://bugzilla.zimbra.com/show_bug.cgi?id=103588 103588] Rsync 3.1.2
* [https://bugzilla.zimbra.com/show_bug.cgi?id=104226 104226] ClamAV 0.99.1
+
* [https://bugzilla.zimbra.com/show_bug.cgi?id=105073 105073] ClamAV 0.99.2
* [https://bugzilla.zimbra.com/show_bug.cgi?id=102319 102319] Nginx 1.7.1+patches ([https://bugzilla.zimbra.com/show_bug.cgi?id=103578 103578])
+
* [https://bugzilla.zimbra.com/show_bug.cgi?id=102319 102319] Nginx 1.7.1+patches ([https://bugzilla.zimbra.com/show_bug.cgi?id=103578 103578], [https://bugzilla.zimbra.com/show_bug.cgi?id=104452 104452], [https://bugzilla.zimbra.com/show_bug.cgi?id=105162 105162])
* [https://bugzilla.zimbra.com/show_bug.cgi?id=104224 104224] Unbound 1.5.8
+
* [https://bugzilla.zimbra.com/show_bug.cgi?id=105090 105090] Unbound 1.5.9
 
* [https://bugzilla.zimbra.com/show_bug.cgi?id=102227 102227] commons-collection 3.2.2
 
* [https://bugzilla.zimbra.com/show_bug.cgi?id=102227 102227] commons-collection 3.2.2
  
 
{{Article Footer|Zimbra Collaboration 8.7|04/22/2015}}
 
{{Article Footer|Zimbra Collaboration 8.7|04/22/2015}}
 
[[Category: Security]]
 
[[Category: Security]]

Latest revision as of 21:38, 8 February 2018

Security Settings for Zimbra Collaboration 8.7 series

   KB 21837        Last updated on 2018-02-8  




0.00
(0 votes)

Important: Upgrading from Older ZCS Versions

Defaults may change from version to version of ZCS. However, when upgrading some settings may not be updated to the new recommended default: possibly because the settings had been customized, installer limitations/bugs, or concerns that changes may impact existing users/clients. As such, it is highly recommended that you revisit settings after upgrading to ensure that values are set as expected/desired in your environment and security settings meet your requirements.

Recommended HTTP Headers

It is recommended to set most, if not all of the following HTTP headers for most ZCS deployments. Take a little time to determine what makes the most sense in your deployment.

Ref: https://www.owasp.org/index.php/List_of_useful_HTTP_headers

Strict-Transport-Security (HSTS)

HTTP Strict-Transport-Security (HSTS) enforces secure (HTTP over SSL/TLS) connections to the server.

  zmprov mcf +zimbraResponseHeader "Strict-Transport-Security: max-age=31536000"
OR
  zmprov mcf +zimbraResponseHeader "Strict-Transport-Security: max-age=31536000; includeSubDomains"

X-XSS-Protection

Enables the Cross-site scripting (XSS) filter built into most recent web browsers:

 zmprov mcf +zimbraResponseHeader "X-XSS-Protection: 1; mode=block"

X-Content-Type-Options

Prevent Internet Explorer and Google Chrome from MIME-sniffing a response away from the declared content-type.

zmprov mcf +zimbraResponseHeader "X-Content-Type-Options: nosniff"

Content-Security-Policy

ZCS does not contain a default Content-Security-Policy header (bug 58216). However, it is recommended to create one that meets the requirements of your site.

Useful references:

SSLv3 Disabled

OpenJDK SSLv3 Disabled

OpenSSL SSLv3 Disabled

  • In 8.7, OpenSSL is upgraded to the 1.0.2 series (see also ZCS openssl on github). In new installs ZCS defaults to disabling SSLv3 negotiation, sites that upgrade my need to manually disable SSLv3.

Note: OpenSSL is not compiled with the no-ssl3 option due to potential complications during upgrades (ref: OpenSSL configure options).

DH parameters

OpenSSL DH Parameters

The main components utilizing OpenSSL are LDAP, MTA, and Proxy services. In ZCS 8.7, the default DH Parameter uses 2048-bits (ref: 99558 103803, 100443 LDAP/TLSDHParamFile, 99564: MTA/smtpd_tls_dh1024_param_file, 103399: Proxy/ssl_dhparam). The new global configuration parameter to store the PEM formatted DH parameter data is zimbraSSLDHParam. A new utility zmdhparam can be used to create new custom DH parameters.

  • Ability to set DH parameters for LDAP / MTA / Proxy
  • Default to 2048 bit DH Parameters

However, be aware that some clients may have issues with a size larger than 1024 bits (Java 7 for example, ref: http://httpd.apache.org/docs/trunk/ssl/ssl_faq.html#javadh).

See also:

Proxy/Nginx

See also #OpenSSL DH Parameters above.

Ciphers

Default zimbraReverseProxySSLCiphers setting in 8.7.0 has been changed to exclude RC4 (ref: bug 96852):

zimbraReverseProxySSLCiphers: ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4

HTTP Strict Transport Security (HSTS)

With bug 98938 it is now possible to set zimbraReverseProxyResponseHeaders and enable HSTS. For example:

 zmprov mcf +zimbraReverseProxyResponseHeaders 'Strict-Transport-Security: "max-age=31536000; includeSubdomains"'

See also:

SSL Session Cache (resumption)

Bug 96544 added, and enabled by default the following:

  • SSL session cache size (zimbraReverseProxySSLSessionCacheSize) of 10 MB
  • SSL session timeout (zimbraReverseProxySSLSessionTimeout) of 10 minutes

zmlookup via HTTPS

  • bug 99279 zmlookup now uses HTTPS instead of HTTP (internal service on port 7072 by default, but now configurable via zimbraExtensionPort bug 99392)

HTTPS Server Name Indication (SNI) Support

Mailboxd (Jetty)

Zimlets

bug 101192 Disable links within spam (by not looking for 'objects' for Zimlets to handle inside of messages in the Junk/Spam folder)

Ciphers

Default zimbraSSLExcludeCipherSuites setting in 8.7.0 has been changed to exclude RC4 (ref: bug 96921):

zimbraSSLExcludeCipherSuites: .*_RC4_.*

HTTP Strict Transport Security (HSTS)

The configuration key, 'zimbraResponseHeader', can be used to set the HSTS header. For example (ref: bug 84796):

zmprov mcf +zimbraResponseHeader "Strict-Transport-Security: max-age=31536000"

Note: in 8.5 and 8.6 (before Patch5) this did not work due to a regression (ref: bug 98495)

saslauthd now on port 7073

As part of bug 97779 the saslauthd service now authenticates against a service listening on port 7073 instead of 7071. This port should be protected (firewall) and not exposed to the internet.

Multi-Domain Installation Enhancements

Enhancements to support limiting the visibility across separate domains in a ZCS installation have been implemented:

  • bug 99825 ability to restrict visibility of public shares
  • bug 100524 ability to restrict sendAs / sendOnBehalfOf

3rd Party Packages of Interest

See https://github.com/Zimbra/packages/blob/master/versions.def for latest

Verified Against: Zimbra Collaboration 8.7 Date Created: 04/22/2015
Article ID: https://wiki.zimbra.com/index.php?title=Security/Collab/87 Date Modified: 2018-02-08



Try Zimbra

Try Zimbra Collaboration with a 60-day free trial.
Get it now »

Want to get involved?

You can contribute in the Community, Wiki, Code, or development of Zimlets.
Find out more. »

Looking for a Video?

Visit our YouTube channel to get the latest webinars, technology news, product overviews, and so much more.
Go to the YouTube channel »

Jump to: navigation, search