Saludos amigos, como todos sabemos la seguridad en el correo electrónico es muy importante en nuestros días, no solamente a la hora de recibir, si no también a la hora de enviar.
Hace unos años os mostré una detallada guía de cómo configurar SPF, DKIM y DMARC, disponible aquí:
Desde Zimbra Collaboration 8.7, Zimbra nos genera una llave pública DKIM válida y segura de 2048-bits, al principio se pensó que era un bug, pero nada más allá de la realidad, Zimbra genera una llave válida que tiene que partir en varios trozos para que ciertos servidores de DNS soporten, ya que por defecto el límite por cada entrada de DNS TXT es de 255 caracteres, cosa que se supera con una DKIM de 2048.
Buenas prácticas para DKIM
El Servicio de Seguridad Nacional del Reino Unido nos da unos consejos muy buenos que deberíamos de seguir para tener nuestro DKIM perfectamente configurado:
- Configurar DKIM para todos los dominios desde los que enviemos emails.
- Que la llave DKIM sea de 2048 bit es una buena práctica.
- Cambiar el DKIM cada doce meses, ya que se tarda muy poco y evitaremos así posibles ataques.
Cómo generar una llave DKIM de 2048 bits en Zimbra Collaboration 8.7 y en adelante
Desde nuestro SSH, como usuario Zimbra, lanzaremos el siguiente comando, -a si es la primera vez que lo lanzamos, -u si estamos actualizando la entrada DKIM:
/opt/zimbra/libexec/zmdkimkeyutil -a -d yourdomain.com
Que nos generará algo similar a lo siguiente, pero con vuestros valores:
DKIM Data added to LDAP for domain zimbra.io with selector 25D766CE-CEAC-11E7-B087-020B6DB9DD9A
Public signature to enter into DNS:
25D766CE-CEAC-11E7-B087-020B6DB9DD9A._domainkey IN TXT ( "v=DKIM1; k=rsa; "
"p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwA4vVMiV3/14hRMzbKNnBKNThqxTWLi2E5NqqHLccIJg/P33yqwgGVKKUM9HFfXZ8urz6/dl8oNG3oxs73W1sgWHrFRo3ZayHsuUMe+DLyt8wtyR/RUae0nvd6Z6t0lPwujXWBrRS/FeMg/IGA8ExBKjD+aAYdQfH/lhlDGzumTXgbSB0KMzlpOjcum2Aes69rEiR744GGaPb2"
"X3MxK8vjpeMIx16n2tADb0wKKP19WTF0at5HCP8F4SFflLUPJMOC1Be9FCWjTjNr1qrRZTwCwC7OC9tnV7SsKKXG+8D6hu39Tm5U1GLzpKvLMIv14b6MWsU9cV/iVKH+hQq4YRowIDAQAB" ) ; ----- DKIM key 25D766CE-CEAC-11E7-B087-020B6DB9DD9A for zimbra.io
Al ver esto, comparado con cómo es para 1024 bits, podemos pensar que Zimbra nos ha dado un DKIM inválido, pero no es así, esta llave es completamente válida, vamos a los siguientes pasos.
Cómo introducir esta DKIM en nuestro server de DNS
Aquí llega la parte que se pone arisca, y es que dependiendo de vuestro server de DNS, tendréis más o menos suerte, vamos con lo más sencillo un cPanel usando la parte web:
Como vemos introduciremos la entrada de DNS del siguiente modo:
25D766CE-CEAC-11E7-B087-020B6DB9DD9A._domainkey TTL IN TXT "v=DKIM1; k=rsa; p=PRIMERALINEAYSEGUNDALINEA"
Fijaros por favor que no he usado “p= ni similar solo hay unas comillas al empezar y otras al acabar.
Si tuviéramos otros DNS, o usaramos la consola, podríamos también usar el siguiente formato:
25D766CE-CEAC-11E7-B087-020B6DB9DD9A._domainkey IN TXT ("v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w..."
25D766CE-CEAC-11E7-B087-020B6DB9DD9A._domainkey IN TXT "...AQAB")
O, incluso algunos otros servers de DNS tenemos que configurarlos de la siguiente manera:
25D766CE-CEAC-11E7-B087-020B6DB9DD9A._domainkey IN TXT ("v=DKIM1;k=rsa; p="
"MIIBIjANBgkqhkiG9w..."
"...AQAB")
Sea como fuere, buscar ayuda sobre el server de DNS que tenéis y como introducir un DKIM de 2048 bits, que seguro que os sale algún buen resultado.
Comprobando que tenemos un DKIM válido y seguro
Esta es la parte más interesante, para ello he usado http://dkimcore.org/tools/keycheck.html tendremos que introducir el selector que tenemos y nuestro dominio, de la siguiente manera:
Si todo ha ido bien, veremos lo siguiente, 2048 ¡SÍ! :
Otro ejemplo real es si mandamos un email a GMAIL por ejemplo, podremos ver si miramos las cabeceras lo siguiente:
Si extendemos un poco, podremos ver más detalles:
Enlaces interesantes
He seleccionado los siguientes enlaces que seguro que os gustan:


Saludos Jorge,
Al ejecutar como usuario zimbra el comando
/opt/zimbra/libexec/zmdkimkeyutil -u -d midominio.cu
La consola me devuelve lo siguiente:
Error: Domain midominio.cu doesn’t have DKIM enabled.
Logicamente midominio.cu lo cambio por mi dominio real.
Al parecer dice que DKIM no está activado para este dominio.
¿Qué está sucediendo aquí?
Gracias
Hola Alejandro,
Haz un zmopendkimctl status, si esta en down haz un zmopendkimctl start y prueba de nuevo.
Un saludo
Hola una vez más Jorge, cuando lanzo zmopendkimctl status, me muestra lo siguiente: zmopendkimctl already running: pid 25582
Quiere decir que esta corriendo, pero sigue igual:
opt/zimbra/libexec/zmdkimkeyutil -u -d midominio.cu
Error: Domain midominio.cu doesn’t have DKIM enabled.
Y ese dominio lo tienes en zimbra verdad?
No se, prueba a eliminarlo con
/opt/zimbra/libexec/zmdkimkeyutil -r -d midominio.cuY añadirlo de nuevo
/opt/zimbra/libexec/zmdkimkeyutil -u -d midominio.cuUn saludo
Hola Jorge , que tal. Muy buenos tus posts, me sucede lo mismo que a Alejandro.
[zimbra@mail ~]$ /opt/zimbra/libexec/zmdkimkeyutil -u -d midominio.com
Error: Domain midominio.com doesn’t have DKIM enabled.
[zimbra@mail ~]$ zmopendkimctl status
zmopendkimctl is running with pid: 4691
[zimbra@mail ~]$ zmopendkimctl stop
Stopping opendkim… done.
[zimbra@mail ~]$ zmopendkimctl start
Started opendkim: pid 20615
[zimbra@mail ~]$ /opt/zimbra/libexec/zmdkimkeyutil -u -d midominio.com
Error: Domain midominio.com doesn’t have DKIM enabled.
[zimbra@mail ~]$ /opt/zimbra/libexec/zmdkimkeyutil -r -d midominio.com
Error: Domain midominio.com doesn’t have DKIM enabled.
Saludos!
Saludos yayo, que versión tienes, 8.6?
Un saludo
Umh, que bobada, en ZCS 8.6 tienes que lanzar el siguiente comando
/opt/zimbra/libexec/zmdkimkeyutil -a -d zimbra.ioFíjate en el a en vez del u, que tontería, ahora actualizo el blog, lo lamento.
Hola Jorge,
Cómo estás?
Como siempre mil gracias por todo lo que escribes, nos sirve mucho a todos los que administramos servidores con Zimbra.
Una duda, si tengo mi servidor funcionando con rDNS, SPF, DMARC, DKIM, certificado pagado y no estoy en listas negras, hay algo que pueda hacer para evitar que mis correos lleguen a SPAM?
Es que es algo que me pasa sólo con algunos usuarios y me ocurre más que nada cuando se envían correos a Outlook y algunas otras universidades con dominios propios.
Gracias de antemano, saludos.
Saludos Mar,
Si, lo que puedes hacer es añadir tu IP aquí y hacer seguimiento de qué sucede:
https://postmaster.live.com/snds/addnetwork.aspx
Un saludo
Hola Jorge, a todos le salía Reply , menos a mí XD
Tengo la versión 8.7.11.
Prueba con el comentario que he puesto antes con
/opt/zimbra/libexec/zmdkimkeyutil -a -d zimbra.ioHola Jorge, repetí varios pasos y me ayude de la documentación original. Me funcionó bien pero al momento de hacer la validación me sale el siguiente error:
The p= field must be base64 encoded
He estado foreando y no encuentro algo tangible , ya aplique varias modificaciones a mi registro del DNS pero siempre que compruebo sale lo mismo.
Te ha sucedido o sabes a que se debe?
Gracias de antemano por la respuesta , Saludos Jorge !!
Hola Jorge, mira acabo de instalar 8.8.6 desde cero realmente bien hasta que llegue a DKIM, debido a que con 2048 bits no lo reconoce por ningun lado, Ok! baje a 1024 hago la prueba de DKIM Core cuyo resultado fue : “This is a valid DKIM key record” tanto por DNS como por Key Record, pero al momento de enviar :
La firma DKIM de tu correo es:
v=1;
a=rsa-sha256;
c=relaxed/relaxed;
d=ext.dominio.net;
s=signature1;
t=1518469673;
bh=kVsslnjJ+8TcTqzadixOceMvozDEpy1Che7oSqdUroE=;
h=Date:From:To:Message-ID:MIME-Version;
b=OTROTEXTOINFINITO(de ejemplo)ENESTECOMENTARIO
Tu llave pública es:
“v=DKIM1;
k=rsa;
p=XXXXXYYYYZZZZ(Solo Ejemplo)ZXXXX”
Longitud de la llave: 1024bits
Tu firma DKIM no es válida
Respuesta de Mail-Tester.com, y ya de verdad no encuentro mas papers en internet que me orienten en el camino correcto.
Saludos
Saludos Alex,
Quiza tu DNS todavia no ha actualizado, prueba ha enviarte un email a gmail y mira las cabeceras a ver.
no po si tengo un TTL de 120 Seg para ese registro, y donde envio mail informa que el DKIM esta errorneo, llevo 1 semana en esto, por eso no es su entorno es su firma en Zimbra, la que sale erronea~
Que raro, yo dejarie el por defecto de 2048 y configuraría el DNS acorde, casi todos los modernos DNS soportan 2048 como pongo en el ejemplo todo junto.
Zimbra envía el DKIM bien que configuras, incluso con 2014 🙂
Dale otro vistazo a ver si tienes las DNS bien y todo
Incisto el problema no es el DNS lo valida DKIMCORE y en 2048 no lo hace este servicio, y menos los receptores de correo, en DNS ya probe con una linea, con 2 lineas de registro y nada, el problema esta en el Software, voy a bajar aun mas de nivel y voy a pescar la firma recepcionada desde otro opendkim … de ahi te cuento!
Vale cuentame que encuentras, no he visto que nadie tenga problemas con esto, ni en 8.8.x ni en 8.7.x ni en 8.6, siempre que en la parte de DNS se ponga tal cual te da el output zimbra, zimbra luego envía DKIM de esa manera. enviame un email a jorgedlcruz ARROBA gmail PUNTO com y ojeo a ver que sucede si quieres.
Un saludo
Que tal Jorge, tengo el siguiente escenario…
Tengo que instalar un postfix con varios dominios (de la misma empresa), he pensado en zimbra, obviamente eso lo hace muy bien… pero tengo dudas sobre dos validaciones que necesito que pasen todos los correos de todos los dominios, la primera dkim y la segunda dmarc.
La pregunta, con postfix es factible usar solo una llave pública para todos los dominios, eso ya lo he hecho, quiero saber si esto es factible con zimbra (y cómo) y si no es factible, entonces cómo lo haría con el resto de dominios que se crean desde el ajax.
La segunda duda es la validación dmarc… esta está asociada a una comparación del HELO y el rDNS, entonces… si mi HELO es del dominio principal de Zimbra, cómo pasar la validacipon dmarc cuando envíe un correo con otro dominio, si el HELO sería el del zimbra. Entiendo que en postfix lo podría resolver con multiples instancias de postfix, pero la idea es hacerlo con Zimbra. ¿Es posible pasar correctamente la validación dkim y dmarc con zimbra? teniendo una sola IP cómo sería la configuración en los DNS del resto de dominios para agregar el rDNS?? Espero puedas ayudarme con este tema, y creo que sería un buen POST para tu blog
Saludos
Hola Jorge que tal!…. primero agradecerte por toda la ayuda que nos brindas..
Por favor si me ayudas, he generado la clave y creado el registro DNS, al realizar la validacion en el http://dkimcore.org/tools/keycheck.html el DKIM Core Key Record me indica que es valido, pero cuando ingreso el selector y dominio da error:
Public key
p=v=DKIM1 The p=field must be based64 encoded
‘p’ appears more than once
he cambiando el registro DNS con algunas reconmendaciones que he visto en la web, pero el error persiste, cuando envio un correo de prueba a gmail el error que indica es:
dkim=neutral (bad format)…..
Hola Jorge.
Por favor tu ayuda, tengo el dominio principal en el zimbra y he añadido otro, al momento tengo creado un DKIM para el dominio principal del zimbra, tengo que crear un nuevo registro DKIM para el dominio adicional del zimbra o tengo que eliminar el actual DKIM y volver a ejectura con los 2 dominios o el registro se lo hace por dominio, agradezco tu ayuda
Saludos Jerson,
Cada dominio tiene su DKIM, crea el nuevo para ese dominio nuevo y lo pones en su DNS y listo.
un saludo
Saludos Jorge ,tengo una Consulta
estoy ponidendo un antispam(cloud ) delante de mi servidor de correo zimbra (local) ,tanto para mensajes entrantes y salientes ,mi consulta es para los mensajes salientes estoy utilizando un relay, MTA (apuntando al antispam ) en los registros DNS de mi dominio que DKIM debo poner el generado por el Zimbra o el de mi antispam.
Y tambien estoy utilizando ese mismo antispam ,para filtrar el correo entrante y saliente de otro servidor de correo zimbra(local) con otro dominio..
Gracias de antamano por tu apoyo.
Buen dia Jorge, agradezco tu ayuda, la otra duda que tengo es: para el dominio adicional tengo que crear a nivel de dns el registro MX o solo basta con el registro MX del dominio principal, agradezco tu ayuda
Saludos Jerson,
Siempre es buena practica que el MX y el corroe de salida sean similar, por ejemplo tu MX es correo.dominio.es y tu MTA tiene PTR a correo.dominio.es, evitaras problemas de SPAM, etc.
Gracias Jorge por tu ayuda, por favor la duda que tengo es la siguiente: tengo que crear tambien un registro MX para el dominio secundario (o si tubiera mas de 2 dominios en el zimbra, seria para cada dominio). O es suficiente con el registro MX del dominio principal?
Saludos Jorge
Muchas gracias por tu ayuda
Hola jorge, muy claro tu post y por suerte me han sido de gran ayuda en mchos momentos, ya que aprendí el zimbra desde cero con este blog.
tengo un problema un nivel mas arriba de todo lo que explican acá. el escenario es el siguiente:
el susuario zimbra tiene un password que no lo recordamos y en una de las actualizaciones editamos el archivo sudoers para que no pida password al inciar los servicios.
para poder ejecutar el smdkimkeyutil me pide password con el usuario zimbra (que no lo recordamos, pero no queremos modificarlo por las consecuencias que puede traer). Edité nuevamente el archivo sudoers agregando la ruta /opt/zimbra/libexec/ y /opt/zimbra/libexec/zmdkimkeyutil pero sigue pidiendome la password para ejecutarlo. como podria resolverlo.
tengo al release 8.5.0 GA
Desde ya muchas gracias
Hola Jorge, te comento, tengo un servidor mail.servidordecorreos.com donde tengo varios dominios que salen por ahí, todos los correos de los dominios “secundarios” llegan al spam… he leído que configurando DKIM, sin embargo no estoy seguro si funcione con multidominios, me comentas porfa, un saludo.
Jorge, buenas tardes. Consulta: ¿En un centos 7 donde colocó el key del dkim? En un cpanel resulta practico realmente.
Se puede tener varias llaves DKIM y para cada dominio, tantas como quieras, lo que no puedes tener repetido es el Selector, ejemplo, no puedes tener defaul._domainkey.dominio1.com y default._domainkey.dominio2.com… podrías dejar que el script te coloque el selector con nombre aleatorio o usar la opción -s y poner el nombre tu, como por ejemplo /opt/zimbra/libexec/zmdkimkeyutil -a -s dominio2-default -d dominio2.com
Rodolfo, zimbra tiene el script que crea y coloca la llave privada donde debería ir, no tienes que ponerla tu en alguna parte, ya que las llaves se guardan en la DDBB del LDAP si no me equivoco.
Hola Jorge, que pena mis dudas, con un grupo de compañeros de trabajo montamos un servidor zimbra con un subdominio de la plataforma principal. (web empresa: miempresa.com; zimbra: mail.miempresa.com) la plataforma recibe correos perfectamente pero cuando intentamos enviar correos a dominios con siute de Google nos rechaza los envíos, porque dice firma invalida. debo tener una firma DKIM para el dominio y otra para el subdominio? y el registro SPF también deben ser dos?
Estimado Jorge, felicitandolo por su aporte a la sociedad sobre este gran post. Tengo una consulta, estoy realizando el relay MTA desde mi servidor zimbra hacia un antispam que es el que envia y recibe los correos; Como puede hacer para que el dkim generado por el zimbra sea válido ya que no dice que es incorrecto debido a que pasa por mi antispam y este no tiene la opcion de dkim. Saludos Cordiales
Hola Jorge
Tengo un servidor zimbra 7.x funcionado perfectamente con firma dkim y próximamente migrare a zimbra 8.8.15. Hay alguna manera de poder “importar” la llave pivada dkim de mi antiguo servidor al nuevo servidor?
pd. Aprovecho la ocasión para felicitarte por esta excelente página que siempre he utilizado para guiarme a la hora de mejorar nuestro servidor zimbra Open Source.
Saludos desde Panamá
Hola Jorge tengo creado mi dkim correctamente y cuando lo compruebo en mxtoolbox lo valida normal pero al hacer test-mail a mi servidor zimbra no reconocer el dkim siempre me sale al enviar a gmail un rebote y eso se debe a que no valida el dkim