Muchos son los que me han preguntado como se puede configurar zimbra para autenticar contra un directorio activo (AD), y que la conexión entre estos dos sistemas se realicé de forma segura empleando SSL/TLS en la comunicación LDAP. Debido a que estos sistemas cuando se instalan generan un certificado autofirmado y que no es reconocido por una autoridad certificadora de confianza, ya sea Samba4 como AD, o el propio AD de microsoft, al configurar la comunicación de zimbra con estos sistemas en el wizard de configurar la autenticación estos fallarán por un error de confianza con el certificado. Es por eso que le explico en este tutorial de forma muy fácil como solucionar este pequeño inconveniente. Como lo que empleo en mi infraestructura de redes como controlador de dominio AD es Samba4 será mucho más fácil de obtener el certificado y demás.

Al configurar zimbra y habilitar el checkbox Use SSL, y darle next, llenamos todos los campos al llegar al test y probamos un usuario de nuestro directorio para comprobar que la autenticación es correcta, nos lanzará el siguiente error:
javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: d2:CN18:dc1.dominio.com:O20:Samba Administration2:OU48:Samba - temporary autogenerated HOST certificate6:accept4:true5:alias28:dc1.dominio.com:-527EB0A94:fromi1464828333000e4:host18:dc1.dominio.com3:icn18:dc1.dominio.com2:io20:Samba Administration3:iou46:Samba - temporary autogenerated CA certificate3:md532:38261B0A4B28D8AEAF0F75C664FD940D8:mismatch5:false1:s9:-527EB0A94:sha140:3B506AB7F09FB27207C044854CF6EC05290D1ED42:toi1525308333000eeEsto es debido a que no se reconoce como confianza el certificado que emplea el controlador de dominio Samba4 por ser autofirmado.
Manos a la obra;
Lo primero que debemos hacer es comprobar si nuestro samba esta compilado con el soporte para TLS/SSL y ejecutamos el siguiente comando:
smbd -b | grep "ENABLE_GNUTLS"Si en la salida sale ENABLE_GNUTLS, es que esta activo en samba el soporte TLS, proseguimos en obtener el certificado del samba por defecto se encuentra en /var/lib/samba/private/tls, el archivo que nos interesa es cert.pem, este lo transferimos o copiamos vía scp al servidor zimbra, al directorio /opt/zimbra, si nos da algún problema al copiarlo porque samba esta corriendo y no deja copiar el archivo, podemos abrirlo y copiar el texto, y este lo pegamos en un archivo que podemos crear con nano cert.pem en el servidor zimbra, pegamos el texto del certificado y guardamos el archivo.
Como obtener el certificado desde el propio servidor zimbra, como root, nos situamos en la carpeta donde esta instalado zimbra:
cd /opt/zimbra
ejecutamos openssl
openssl s_client -connect pdc_ad.dominio.cu:636 </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > cert.pemProcedemos entonces en el servidor de correo zimbra a importar el certificado al almacén de llaves. Para eso nos volvemos usuario
su - zimbraLuego ejecutamos el siguiente comando para importar el certificado usando la propia herramienta de linea de comando que nos proporciona zimbra.
zmcertmgr addcacert cert.pemUna alternativa es importando o agregando el certificado usando la herramienta keytool de java en la instalación de zimbra, si se solicita una contraseña escribimos "changeit" sin las comillas, para el aliasname recomiendo ponerle el nombre del dominio.
keytool -import -trustcacerts -file cert.pem -alias dominio.cu -keystore /opt/zimbra/common/etc/java/cacertsLuego escribimos yes y el certificado quedará agregado satisfactoriamente. Con el mensaje:
Trust this certificate? [no]: yesCertificate was added to keystore
Posteriormente reiniciamos los servicios de zimbra.
zmcontrol restartEsperamos que termine y ya podemos volver a lanzar el wizard de configuración de la autenticación esta vez con el checkbox de ssl activo y ya no obtendremos más el error de la relación de confianza entre el zimbra y el AD Samba4 y la comunicación quedará segura.
Y hasta aquí las clases, hasta la próxima.






No comments yet