
Saludos amigos, lo más normal es que en este post estuvierais esperando alguna nueva funcionalidad, o algún pequeño truco que os guste y que os mueva a migrar de Zimbra Collaboration 7 o 8.0.x hacía la última Release Zimbra Collaboration 8.6, pero la respuesta a la pregunta del título es Seguridad.
Han sido meses muy movidos, donde se han dado a conocer brechas de seguridad en protocolos que creíamos seguros como OpenSSL, etc. Zimbra los ha ido corrigiendo en su versión 8.0.9, 8.5, 8.5.1 y recientemente en su versión 8.6.
- Tres test de seguridad para comprobar nuestros sistemas
- Pregunta, ¿es por tanto Zimbra Collaboration 8.6 seguro por defecto?
- Instalando un SSL Comercial en Zimbra Collaboration
- Tuneando nuestros cifrados DH para que sean 2048
- Lanzando todos los test de nuevo
- Bonus extra, el resultado de un Zimbra Collaboration 8.0.9
Voy a realizar una serie de tests de seguridad sobre un servidor Zimbra Collaboration 8.6 recién instalado con todos los servicios (proxy/memcached y dnscache incluidos), para comprobar hasta que punto estamos seguros, y dare unos consejos para pasar los 3 tests sin problemas e incrementar la seguridad en nuestros sistemas, siempre para Zimbra Collaboration 8.6, Zimbra Collaboration 8.0.x no cuenta con la seguridad adecuada y fallarán en todos los tests, por lo que es mandatorio que se actualice a 8.6 si queremos preservar la seguridad.
Tres test de seguridad para comprobar nuestros sistemas
¿Recordáis aquel anuncio donde se hacía la prueba del algodón? En este caso vamos a realizar 3 simples pruebas para verificar que nuestro Zimbra Collaboration está seguro.
1.- El test de Diffie-Hellman para TLS
Se ha descubierto recientemente que los despliegues en el mundo real de Diffie-Hellman son menos seguros de lo esperado. Algunos consejos para mantener la integridad frente de Diffie’Hellman para TLS:
- Disable Export Cipher Suites. Even though modern browsers no longer support export suites, the FREAK and Logjam attacks allow a man-in-the-middle attacker to trick browsers into using export-grade cryptography, after which the TLS connection can be decrypted. Export ciphers are a remnant of 1990s-era policy that prevented strong cryptographic protocols from being exported from United States. No modern clients rely on export suites and there is little downside in disabling them.
- Deploy (Ephemeral) Elliptic-Curve Diffie-Hellman (ECDHE). Elliptic-Curve Diffie-Hellman (ECDH) key exchange avoids all known feasible cryptanalytic attacks, and modern web browsers now prefer ECDHE over the original, finite field, Diffie-Hellman. The discrete log algorithms we used to attack standard Diffie-Hellman groups do not gain as strong of an advantage from precomputation, and individual servers do not need to generate unique elliptic curves.
- Generate a Strong, Unique Diffie Hellman Group. A few fixed groups are used by millions of servers, which makes them an optimal target for precomputation, and potential eavesdropping. Administrators should generate unique, 2048-bit or stronger Diffie-Hellman groups using “safe” primes for each website or server.
[alert style=”yellow”]El test por defecto con la instalación limpia de Zimbra, me da una advertencia, lo que quiere decir que pasamos el test, pero podemos mejorar en este aspecto si en vez de usar un DHE basado en 1024-bit usamos uno con 2048-bit.[/alert]
2.- El test de SSL-Tools donde debemos enviar un e-mail
El segundo test que intentaremos pasar es el que nos presentan nuestros amigos de SSL-Tools, donde deberemos enviar un correo electrónico desde nuestro sistema y donde aparecerá en la web el resultado obtenido.
Esta herramienta chequea tres secciones críticas:
- El Certificado SSL: Donde chequea si es auto-firmado o no, la encriptación, cuando expira, etc.
- La versión de TLS y el tipo de Cifrado
- DANE: No nos afecta de momento y no le prestaremos atención
[alert style=”yellow”]El test por defecto con la instalación limpia de Zimbra, me da una advertencia en el Certificado, ya que estoy usando uno auto-firmado de momento. Tenemos configurado de manera correcta la versión de TLS y el cifrado, ¡bien![/alert]
3.- El TEST de los test, Qualsys SSL Labs
Este test es el más completo y nos desgrana cualquier URL que pongamos en su buscador, tarda unos minutos en ejecutarse de lo extenso y completo del mismo.
Podemos ver un elegante resumen donde se nos mostrará una letra dependiendo de la configuración de nuestro servidor Zimbra Collaboration, esta configuración se basa en el siguiente patrón:
Si queréis conocer más acerca de este completo test os recomiendo leer el PDF oficial, son 10 páginas que se asimilan muy rápido.
[alert style=”yellow”]El test por defecto con la instalación limpia de Zimbra, nos da un resultado medio en Protocolo y notable en Key Exchange y Cipher Strength. Zimbra Collaboration 8.6 trae RC4 activado por defecto y debe ser desactivado. Obviar el nulo resultado de SSL, ya que estoy usando un Certificado autofirmado. Si corrigieramos el error del SSL, obtendríamos un B.[/alert]
Pregunta, ¿es por tanto Zimbra Collaboration 8.6 seguro por defecto?
Sí, Zimbra Collaboration 8.6 es seguro por defecto y sigue todas las pautas para enviar correos con el TLS adecuado, denegando POODLE y otros, etc. Pero como todo se puede mejorar, y en los siguientes pasos vamos a conseguir los mejores resultados en todos los Test.
4.- Instalando un SSL Comercial en Zimbra Collaboration
Este tema no es nada nuevo, con la seguridad como bandera en cada aplicación que usamos cada día, incluidas las búsquedas de Google, no tener un SSL en Zimbra es casi un sacrilegio, en namecheap están los PositiveSSL por menos de 9 Euros al año, no hay excusa posible para no implementar uno.
Para implementar un SSL en Zimbra lo mejor es seguir estos pasos que os escribí aquí ya hace años.
5.- Tuneando nuestros cifrados DH para que sean 2048
Si nos fijamos en las capturas de pantalla del punto 3, lo que más nos penaliza es usar cifrados DH con 1024-bit, por lo que recomiendo cambiar esto a 2048-bit y así corregir este error, para ello, deberemos seguir los siguientes pasos de este Wiki. Aunque os los dejo aquí también explicados:
Para mejorar los Cifrados DH, deberemos configurar los ficheros de configuración de nuestro nginx, lo que quiere decir que ya deberíais tener proxy instalado.
Como usuario root lanzaremos lo siguiente, generar la clave tarda unos minutos
cd /opt/zimbra/conf
openssl dhparam -out dhparams.pem 2048
chown zimbra:zimbra dhparams.pem
Ahora editar los siguientes ficheros
/opt/zimbra/conf/nginx/templates/nginx.conf.web.https.default.template
/opt/zimbra/conf/nginx/templates/nginx.conf.web.https.template
y añadir lo siguiente
ssl_dhparam /opt/zimbra/conf/dhparams.pem;
antes del include, después de todos los parámetros de SSL
ssl_verify_client ${ssl.clientcertmode.default};
ssl_verify_depth ${ssl.clientcertdepth.default};
ssl_dhparam /opt/zimbra/conf/dhparams.pem;
include ${core.includes}/${core.cprefix}.web.https.mode-${web.mailmode};
Además, vamos a dar una limpieza a todos los Cifrados y dejarlos como deben estar.
Como usuario zimbra:
zmprov mcf 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:!MD5:!PSK:!RC4'
y reiniciar el servicio de proxy:
zmproxyctl restart
6.- Lanzando todos los test de nuevo
Ha llegado el momento de lanzar todos los test de nuevo, y es ahora cuando nos sentiremos completamente seguros al pasarlos todo con buena nota:
7.- Bonus extra, el resultado de un Zimbra Collaboration 8.0.9
Estos terribles resultados son de un servidor Single-Server con Zimbra Collaboration 8.0.9, con SSL-autofirmado:
Actualizado: He dejado un Wiki muy completo donde se explica como conseguir los mejores resultados para cada Release de Zimbra Collaboration – https://wiki.zimbra.com/wiki/How_to_obtain_an_A%2B_in_the_Qualys_SSL_Labs_Security_Test
Espero que os guste y os sirva esta entrada para dar el salto final a Zimbra Collaboration 8.6 y dejar zimbra Collaboration 8.0.x atrás, o si seguís usando Zimbra Collaboration 7.x que también os movais hacía 8.6.











Qué grande Jorge! Una gran aportación sin duda. 🙂
Muchísimas gracias, me será de gran utilidad!!!
Buen post, una consulta, tengo una instalacion de zimbra 8.0.6 para actualizar a la 8.6 debo primero pasar a la 8.5 y luego a la 8.6?
Muchas gracias por la respuesta.
Saludos Edwin,
No hace falta que subas a 8.5, puedes subir directo a la 8.6.
Un saludo !
Excelente!!! Gracias Jorge esto si que nos ayuda muchisimo
Buenas tardes jorge:
He seguido los pasos varias veces y este test : El test de Diffie-Hellman para TLS, no me cambia.
IP Connected TLS Insecure DHE_EXPORT DHE Chrome
XX. si si No 1024-bits ECDHE
Por mucho que intento generar uno de 2048, le hago el test y me sale 1024, alguna idea?
Version Zimbra: 8.6.0_ga_1153.FOSS
Ubuntu 14.04 LTS
Estas usando Proxy en Zimbra?
Un saludo
en la red no usamos proxy, el servidor zimbra si tiene instalado el modulo de proxy, y el servidor envia y recibe correo.
amavis Running
antispam Running
antivirus Running
ldap Running
logger Running
mailbox Running
mta Running
opendkim Running
proxy Running
service webapp Running
snmp Running
spell Running
stats Running
zimbra webapp Running
zimbraAdmin webapp Running
zimlet webapp Running
zmconfigd Running
Y has seguido todos los pasos del paso 5.- Tuneando nuestros cifrados DH para que sean 2048?
Un saludo
genero el fichero en /opt/zimbra/conf y cambio permisos
-rw-r–r– 1 zimbra zimbra 424 jul 6 14:08 dhparams.pem
Modifico los ficheros y añado linea:
nginx.conf.web.https.default.template
ssl_verify_client ${ssl.clientcertmode.default};
ssl_verify_depth ${ssl.clientcertdepth.default};
ssl_dhparam /opt/zimbra/conf/dhparams.pem;
add_header Strict-Transport-Security “max-age=31536000; includeSubdomains;”;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 5m;
include ${core.includes}/${core.cprefix}.web.https.mode-${web.mailmode};
nginx.conf.web.https.template:
ssl_certificate_key ${ssl.key};
ssl_verify_client ${ssl.clientcertmode};
ssl_dhparam /opt/zimbra/conf/dhparams.pem;
include ${core.includes}/${core.cprefix}.web.https.mode-${web.mailmode};
Limpieza a cifrados y reinicio proxy
Puedes pegarme el link de ssllabs, o decirme el fqdn que usas para probarlo?
Un saludo
No me deja responder en el ultimo comentario
voy a: https://weakdh.org/sysadmin.html
correo.artextrading.com
Sigue los pasos exactos del siguiente Wiki que he escrito dependiendo de tu version y si usas proxy o no – https://wiki.zimbra.com/wiki/How_to_obtain_an_A%2B_in_the_Qualys_SSL_Labs_Security_Test
Debe funcionar.
Aqui el resultado de tu FQDN – https://www.ssllabs.com/ssltest/analyze.html?d=correo.artextrading.com
Un saludo
Hola, buen día tengo una consulta, acabo de migrar un servidor Zimbra, de la version 7.2 a la 8.6. en RHEL.
El detalle es que todo funciona bien, excepto que los usuarios con Outlook les aparece un error diciendo que “La tarea ****** ha notificado el error (0x800CCC1A) : ‘El servidor no admite el tipo de cifrado de conexión especificado. Intente cambiar el método de cifrado. Póngase en contacto con el administrador del servidor o con el proveedor de servicios de Internet (ISP) para obtener más ayuda.’
Quisiera saber si me podrían ayudar, o decirme mas o menos por donde puedo empezar a revisar este error.
Gracias
Saludos Ricardo,
Estas usando POP3 o IMAP? Indicame tambien si usas SSL o TLS para estos protocolos y como tienes SMTP, si SSL o y en que puerto.
Un saludo
Hola Jorge, tengo zimbra 7.2.x, puedo aplicar los pasos que mencionas?.
Es posible actualizar de zimbra 7.2.x a zimbra 8.6 sin ningún problema?.
Saludos,
Saludos Alberto,
En Zimbra 7.x no he probado, lleva sin soporte ya mucho tiempo. Debes pasar por 8.0.x antes mejor, sube a 8.0.9 y de ahi ya a 8.6 y luego aplicas el Patch 4.
Un saludo
Buenas tardes Jorge,
Tengo una consulta con un inconveniente que tengo con un cliente que tiene la versión 7.2.0_GA_2669.RHEL5.
Funciona bien hasta que llega un momento y a los clientes que utilizan outlook les da un error que detallo a continuación: “El servidor no admite el tipo de cifrado de conexión especificado. Intente cambiar el método de cifrado. Pongase en contacto con el administrador del servidor o con el proveedor de acceso a Internet (ISP) para obtener mas ayuda”
Reiniciando el servicio de Zimbra todo vuelve a la normalidad. Tendrías alguna idea de por donde viene la mano o que buscar? Ya que estuve revisando los logs del zimbra y no encuentro nada.
Desde ya gracias por la ayuda!
Exelente post!!!
Jorge, una pregunta. Yo tengo en produccion un servidor Zimbra Release 8.6.0_GA_1153.RHEL7_64_20141215151110 RHEL7_64 FOSS edition, Patch 8.6.0_P3.
En la instalacion no se instalo el Zimbra Proxy, he visto que se puede instalar este servicio en un servidor en produccion, utilizando el script de instalacion y en la opcion de Upgrade indicar que quiero instalar ese servicio.
Mi pregunta es, ¿existira algun problema con mis usuarios si aplico ese servicio al servidor? ¿corre algun riesgo mi instalacion actual?, mi intencion es seguir este tutorial para hacer mas seguro mi servidor.
Saludos
Saludos Raul,
Instalar el Proxy son dos minutos, nungin usuario sufrira ninguna incidencia, al contrario ganaras en velocidad, seguridad y demas.
Aqui te dejo un tutorial de como instalarlo, muy sencillo:
https://wiki.zimbra.com/wiki/Enabling_Zimbra_Proxy#Using_existing_servers
Un saludo
Hola jorge
Para generar el cifrado DH, de 2048 debo instalar el servicio de proxy en el zimbra, lo digo porque en mi caso no instale el servicio proxy.
Saludos..
Saludos Mario,
Proxy sera necesario si o si en la version 8.7, recomiendo que lo instales, es muy sencillo:
https://wiki.zimbra.com/wiki/Enabling_Zimbra_Proxy#Using_existing_servers
Un saludo
Hola jorge
Excelente!!!! gracias por el aporte, ya los instale en uno de los correos que manejo y todo perfecto….
Saludos..
Hola Jorge
Una consulta, exista la posibilidad de que cuando se ingresa a mi servidor de zimbra via web, y la peticion sea http esta se envia automaticamente a https es decir que todo sea por https; intente con este comando “zmtlsctl redirect” pero sin exito, tengo zimbra 8.6 y adicionalmente instale el servicio de proxy hace poco..
Saludos..
!!!!!!!!!!!!!!Solucionado!!!!!!!!!!!!!
Segui los pasos de los siguientes enlaces y todo funciono perfectamente ya se redireciona todo por https con proxy habilitado:
https://wiki.zimbra.com/wiki/CLI_zmtlsctl_to_set_Web_Server_Mode
https://wiki.zimbra.com/wiki/Enabling_Zimbra_Proxy_and_memcached
Saludos…