Security/Collab/87

Security Settings for Zimbra Collaboration 8.7 series

   KB 21837        Last updated on 01/30/2017  




0.00
(0 votes)
Article-check.png  - This is certified documentation and is protected for editing by Zimbra Employees & Moderators only.
 - This article is a Work in Progress, and may be unfinished or missing sections.


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: 01/30/2017



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