Cómo configurar DKIM en Postfix en 2026 (OpenDKIM y Rspamd)
DKIM en Postfix es la firma criptográfica que se adjunta al correo saliente para que los servidores receptores puedan confirmar que el mensaje procede realmente de tu dominio y que no ha sido alterado durante el tránsito.
Postfix no lo hace por sí solo. Hay que añadir un «milter» (un filtro de correo) que firme cada mensaje al salir de tu servidor.
Esta guía explica paso a paso la configuración de DKIM en Postfix en 2026: desde la elección del milter y la generación de claves modernas hasta su integración en Postfix y la rotación de las claves antes de que se conviertan en un riesgo.
Antes de poder firmar un mensaje, debes elegir el «milter» que se encargará de la firma. OpenDKIM y Rspamd son las dos opciones más habituales para DKIM con Postfix en 2026.
Ambas opciones validarán correctamente tu correo saliente. Sin embargo, difieren en cuanto a los requisitos que te exigen para su funcionamiento y en el grado de confianza que puedes depositar en ellas de cara al futuro.
| Criterios | OpenDKIM | Rspamd |
|---|---|---|
| Estado de mantenimiento | La actividad en el proyecto original es escasa; la última versión estable es la 2.10.3 (mayo de 2015); la rama 2.11.0 se encuentra en fase beta. Debian testing la ha marcado para su eliminación automática (junio de 2026) debido a un error de dependencia con libmemcached. | En desarrollo activo, con lanzamientos frecuentes |
| Qué hace | Solo firma/verificación DKIM | Firma DKIM y filtrado completo de spam |
| Complejidad de la configuración | Sencillo, con un único objetivo | Más elementos móviles en la parte delantera |
| Integración con Postfix | Milter (enchufe) | Milter (socket proxy) |
| Interfaz de usuario web | Ninguno | Panel de control integrado |
OpenDKIM firma los correos correctamente, y en estos momentos hay millones de servidores que dependen de él. Sin embargo, conlleva un riesgo de mantenimiento que conviene valorar antes de basar tu sistema en él.
La última versión estable del proyecto original fue la 2.10.3, del 12 de mayo de 2015. La rama 2.11.0, que incorporaba compatibilidad con Ed25519, nunca salió de la fase beta. OpenDKIM sigue firmando el correo de forma fiable y sigue estando incluido en las principales distribuciones, pero Debian testing ha marcado la versión 2.11.0~beta2 para su eliminación automática (prevista actualmente para junio de 2026) debido a un problema de dependencia transitiva con libmemcached, y no por el abandono del proyecto por parte del desarrollador original en sí. Comprueba el estado actual del paquete en tu distribución antes de decidir utilizar OpenDKIM para un uso en producción a largo plazo.
Puedes utilizarlo hoy mismo, pero estás desarrollando sobre un software cuyo desarrollador original no ha lanzado una versión estable en una década, y ese es el riesgo a largo plazo que debes tener en cuenta.
Rspamd es la alternativa que se mantiene de forma activa. Firma DKIM y filtra el spam desde un único milter, por lo que solo hay que ejecutar un servicio en lugar de dos si también se desea protección para el correo entrante. Postfix es el MTA más habitual que se combina con Rspamd, y las pilas como Mailcow confían en él para la firma DKIM en lugar de en OpenDKIM.
A continuación te explicamos cómo elegir:
En cualquier caso, a continuación se explican ambas opciones. Pasa directamente a la que hayas elegido.
Lectura recomendada: ¿Qué es DKIM?
Antes de generar una clave o editar un archivo de configuración, asegúrate de que estos cuatro elementos ya estén en su sitio
En primer lugar, elige el tamaño de la clave: RSA de 2048 bits o Ed25519 si tanto tu MTA/milter como tu proveedor de DNS lo admiten, pero nunca 1024 bits. El RFC 8301 prohíbe el uso de SHA-1 (NO SE DEBE utilizar rsa-sha1) y recomienda el RSA de 2048 bits como mínimo «RECOMENDADO», mientras que los 1024 bits siguen siendo el mínimo exigido por el protocolo (SE DEBE utilizar al menos 1024 bits). Las claves débiles dan a los destinatarios un motivo para desconfiar de tu correo.
OpenDKIM es la forma más directa de añadir la firma DKIM a un servidor Postfix de un solo dominio, con un solo demonio, una sola clave y sin componentes adicionales. Estos cinco pasos te llevarán de un servidor que envía correo sin firmar a uno que firma todos los mensajes salientes con una clave que los destinatarios pueden verificar. Cada paso se basa en el anterior, así que síguelos en orden.
Instala dos paquetes: opendkim (el propio demonio de firma) y opendkim-tools (las utilidades que utilizarás para generar claves).
Ubuntu 24.04 / Debian 12:
bash
sudo apt actualizar
sudo apt instalar opendkim opendkim-tools
RHEL / Rocky 9 (OpenDKIM está disponible en el repositorio EPEL):
bash
sudo dnf instalar epel-release
sudo dnf instalar opendkim opendkim-tools
Activa el servicio para que se inicie al arrancar el sistema:
bash
sudo systemctl activar opendkim
Nota: En algunas distribuciones, el nombre del servicio o el usuario/grupo pueden variar (por ejemplo, «opendkim» frente a «opendkim-daemon», «opendkim:opendkim» frente a «opendkim:postfix»). Consulta la documentación del paquete o la unidad de systemd si los comandos no coinciden.
Crea un directorio para almacenar las claves del dominio y, a continuación, genera un par de claves de 2048 bits:
bash
sudo mkdir -p /etc/opendkim/keys/example.com
sudo opendkim-genkey -b 2048 -d example.com -s selector2026 \
-D /etc/opendkim/keys/example.com/
Función de cada indicador:
| Bandera | Significado |
|---|---|
| -b 2048 | Tamaño de la clave en bits: RSA de 2048 bits |
| -d example.com | El dominio por el que te estás registrando |
| -s selector2026 | El nombre del selector (véase la nota más abajo) |
| -D /etc/opendkim/keys/example.com/ | Dónde guardar los archivos de salida |
En el selector: el valor es la etiqueta que aparecerá en tu registro DNS. Utiliza un nombre basado en el año, como selector2026. Ahora no te cuesta nada y facilita la rotación más adelante; el año que viene generarás selector2027 y el registro antiguo seguirá activo durante el cambio.
El comando genera dos archivos:
| Archivo | Qué es | Regla |
|---|---|---|
| selector2026.private | Tu clave privada de firma | No lo compartas nunca; haz que solo OpenDKIM pueda leerlo. |
| selector2026.txt | La clave pública, con el formato adecuado para el DNS | Esto es lo que debes publicar en el paso 5 |
Ahora configura los derechos de propiedad. Unos permisos incorrectos son la causa más habitual por la que OpenDKIM no consigue firmar, así que no te saltes este paso:
bash
sudo chown -R opendkim:opendkim /etc/opendkim/keys
sudo chmod 600 /etc/opendkim/keys/example.com/selector2026.private
Modifica el usuario o grupo si tu distribución utiliza nombres diferentes (por ejemplo, opendkim:postfix). Consulta la documentación del paquete o la unidad de systemd para confirmarlo.
OpenDKIM lee su configuración principal desde /etc/opendkim.confy, a continuación, utiliza tres pequeños archivos de consulta para decidir qué firmar y con qué clave. Configura primero las directivas principales:
| Syslog | sí |
|---|---|
| UMask | 2 |
| Modo | s |
| Canonización | relajado/relajado |
| Toma de corriente | local:/var/spool/postfix/opendkim/opendkim.sock |
| PidFile | /run/opendkim/opendkim.pid |
| Sobrescrito de encabezados | Desde |
| Tabla de claves | /etc/opendkim/key.table |
| Tabla de firmas | refile:/etc/opendkim/signing.table |
| Lista de ignorados externos | /etc/opendkim/trusted.hosts |
| Hosts internos | /etc/opendkim/trusted.hosts |
Qué hacen las directivas importantes:
| Directiva | Qué controla |
|---|---|
| Modos | Solo firmar. Utiliza «sv» si también quieres que OpenDKIM verifique el correo entrante. |
| Canonización flexible/flexible | Tolera pequeños cambios en los espacios en blanco durante la transmisión, lo que mantiene la validez de las firmas. Nota: la canonización no controla la alineación DMARC. La alineación DMARC depende de si el dominio «d=» de la firma DKIM coincide con el dominio del encabezado «From:», y no de la configuración de canonización. |
| Toma de corriente | Lugar donde OpenDKIM escucha las conexiones de Postfix. Esta ruta debe coincidir con la que configures más adelante en Postfix. |
| OversignHeaders De | Firma el encabezado «From» para que un atacante no pueda añadir un segundo encabezado; se trata de una medida contra la suplantación de identidad pequeña, pero efectiva. |
| Tabla de claves / Tabla de firmas | Los dos archivos de consulta que relacionan los dominios con los selectores y las claves (a continuación). |
A continuación, crea los tres archivos de consulta. Cada uno tiene una función:
| Archivo | Trabajo | Línea de ejemplo |
|---|---|---|
| tabla de firmas | Asigna un remitente a un selector | *@example.com selector2026._domainkey.example.com |
| key.table | Asigna ese selector a su clave privada en el disco | selector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private |
| trusted.hosts | Muestra una lista de los servidores cuyos mensajes salientes deben firmarse | 127.0.0.1 / localhost / ::1 / example.com |
Aquí es donde fallan la mayoría de las configuraciones, y la causa suele ser casi siempre el socket. OpenDKIM crea un archivo de socket para comunicarse con Postfix. Si tu Postfix ejecuta smtpd en un entorno chroot —que es la configuración predeterminada en los paquetes de Debian/Ubuntu, pero no la predeterminada en la versión original de Postfix ni en RHEL/Rocky—, queda bloqueado dentro de /var/spool/postfix y no puede acceder a ningún socket fuera de ese directorio. Ambos nunca se conectan, y tu correo sale sin firmar.
La solución consiste en colocar el enchufe dentro directorio de cola de Postfix y asignarle el usuario de Postfix permisos para acceder a él. Sigue estos pasos en el orden indicado:
1. Crea el directorio «socket» dentro del spool de Postfix:
bash
sudo mkdir -p /var/spool/postfix/opendkim
sudo chown opendkim:postfix /var/spool/postfix/opendkim
Modifica el grupo si tu distribución utiliza «opendkim:opendkim» en su lugar.
2. Añade el sufijo a la lista de grupo grupo para que pueda leer el socket:
bash
sudo gpasswd -a postfix opendkim
3. Confirma la ruta del socket de tiempo de ejecución coincide con opendkim.conf. En Ubuntu/Debian, configúralo en /etc/default/opendkim (o en la configuración de systemd):
SOCKET="local:/var/spool/postfix/opendkim/opendkim.sock"
4. Dirige Postfix hacia el milter en /etc/postfix/main.cf:
milter_default_action = accept
milter_protocol = 6
smtpd_milters = local:opendkim/opendkim.sock
non_smtpd_milters = $smtpd_milters
Qué significan esas cuatro directivas de Postfix:
| Directiva | Propósito |
|---|---|
| milter_default_action = accept | Si el servidor de correo está fuera de servicio, el correo sigue circulando; un remitente inactivo nunca bloquea tu cola sin avisar. |
| milter_protocol = 6 | La versión del protocolo Milter que utiliza actualmente OpenDKIM. |
| smtpd_milters | Aplica el filtro al correo recibido a través de SMTP (tus envíos salientes). |
| non_smtpd_milters | Se aplica al correo que no se recibe a través de SMTP, por ejemplo, el generado localmente. |
La ruta del socket en main.cf es relativa, local:opendkim/opendkim.sock, y no la ruta completa del sistema de archivos, ya que Postfix la lee desde dentro de su entorno chroot.
Reinicia ambos servicios para que se apliquen todos los cambios:
bash
sudo systemctl restart opendkim
sudo systemctl restart postfix
Abre el archivo de clave pública que generaste en el paso 2:
bash
sudo cat /etc/opendkim/keys/example.com/selector2026.txt
Publica su contenido en tu proveedor de DNS como un nuevo registro:
| Campo | Valor |
|---|---|
| Nombre del registro | selector2026._domainkey.example.com |
| Tipo | TXT |
| Valor | Todo lo que hay entre paréntesis (la cadena «v=DKIM1; k=rsa; p=...») |
Dado que se trata de una clave de 2048 bits, el valor supera el límite de 255 caracteres para una sola cadena TXT. La mayoría de los proveedores de DNS la dividen automáticamente. Si el tuyo la rechaza, divide la clave pública en dos cadenas entre comillas dentro del mismo registro que el archivo .txt ya te indica dónde se produce la división.
Configura el TTL en 300 segundos durante la configuración, para que corregir cualquier error resulte económico. Una vez que hayas comprobado que la firma funciona, auméntalo a 3600.
La propagación del DNS lleva tiempo, y una clave de 2048 bits dividida incorrectamente se verá bien en el editor de zonas, pero dará error en cuanto el destinatario la lea.
Rspamd es la mejor opción cuando se tiene más de un dominio o se gestiona el correo en entorno de producción. Firma DKIM y filtra el spam desde un único milter, lo que te permite gestionar un solo servicio en lugar de dos.
Además, como busca las claves por dominio automáticamente, añadir tu próximo dominio se reduce a un simple cambio de una línea, en lugar de tener que realizar una nueva configuración. A continuación te mostramos la guía completa para Postfix, en cinco pasos.
La versión que se encuentra en los repositorios base de tu distribución suele estar desactualizada, así que instálala desde el repositorio estable oficial de Rspamd.
bash
sudo apt instalar -y lsb-release wget gpg
sudo mkdir -p /etc/apt/keyrings
wget -O- https://rspamd.com/apt-stable/gpg.key | \
gpg –dearmor | sudo tee /etc/apt/keyrings/rspamd.gpg > /dev/null
echo «deb [signed-by=/etc/apt/keyrings/rspamd.gpg] \
http://rspamd.com/apt-stable/ $(lsb_release -cs) «main» | \
sudo tee /etc/apt/sources.list.d/rspamd.list
sudo apt update && sudo apt install rspamd
Actívalo para que se inicie al arrancar el sistema:
bash
sudo systemctl activar rspamd
Consulta siempre rspamd.com para conocer las últimas instrucciones de instalación, ya que la URL del repositorio y los pasos para la clave GPG cambian de vez en cuando.
Rspamd incluye su propio generador de claves, rspamadm dkim_keygen , sin necesidad de ningún paquete de herramientas adicional. Guarda la clave privada en un archivo y muestra la clave pública (tu registro DNS) en pantalla, que puedes copiar en un archivo .pub .
bash
sudo mkdir -p /var/lib/rspamd/dkim
sudo rspamadm dkim_keygen -s selector2026 -b 2048 -d example.com \
-k /var/lib/rspamd/dkim/example.com.selector2026.key | \
sudo tee /var/lib/rspamd/dkim/example.com.selector2026.pub
sudo chown -R _rspamd:_rspamd /var/lib/rspamd/dkim
Modifica el usuario/grupo si tu distribución utiliza rspamd:rspamd en lugar de _rspamd:_rspamd. Compruébalo en la unidad de systemd de tu paquete.
Las opciones son las mismas que las de OpenDKIM: -s selector, -b 2048 tamaño de la clave, -d dominio, -k el archivo de salida de la clave privada. Al final obtendrás dos archivos:
| Archivo | Qué es |
|---|---|
| example.com.selector2026.key | La clave privada de firma que utiliza Rspamd. Asegúrate de que el propietario sea el usuario _rspamd. |
| example.com.selector2026.pub | La clave pública, con el formato adecuado para el DNS, la publicas en el paso 5 |
Rspamd gestiona DKIM a través de su módulo dkim_signing . Actívalo e indícale dónde se encuentran tus claves en /etc/rspamd/local.d/dkim_signing.conf:
selector = «selector2026»;
path = «/var/lib/rspamd/dkim/$domain.$selector.key»;
allow_username_mismatch = true;
use_domain = «header»;
Función de cada opción:
| Escenario | Qué controla |
|---|---|
| selector | El nombre del selector debe coincidir con el nombre del archivo de clave y con el registro DNS. |
| ruta | Donde Rspamd encuentra la clave privada; $domain y $selector se rellenan automáticamente |
| allow_username_mismatch | Se envía incluso cuando el nombre de usuario autenticado no coincide con el dominio del remitente |
| use_domain = "header" | Selecciona el dominio de firma a partir del encabezado «From» del mensaje |
Eso ruta es lo que hace que Rspamd sea tan eficaz para múltiples dominios. Dado que resuelve $domain y $selector por nombre de archivo, añadir otro dominio solo implica colocar su clave en la misma carpeta, sin necesidad de un nuevo bloque de configuración ni de un segundo demonio.
Configurar Postfix para que utilice el milter de Rspamd en /etc/postfix/main.cf. Las directivas son idénticas a las de la configuración de OpenDKIM, solo cambia el socket:
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:11332
non_smtpd_milters = $smtpd_milters
Rspamd escucha en su proceso proxy en el puerto TCP 11332 por defecto. Al tratarse de un socket de red, se evita el problema de permisos de socket en chroot que da problemas a OpenDKIM. La única línea que difiere entre los dos milters es:
| Milter | Línea «Socket» en main.cf |
|---|---|
| OpenDKIM | smtpd_milters = local:opendkim/opendkim.sock |
| Rspamd | smtpd_milters = inet:localhost:11332 |
Abre la clave pública y publícala exactamente como se indica en el paso 5 de OpenDKIM, con el mismo formato de nombre de registro, TXT , y la regla de división de 255 caracteres para la clave de 2048 bits:
bash
sudo cat /var/lib/rspamd/dkim/example.com.selector2026.pub
Si lo deseas, puedes activar el panel de control web configurando una contraseña en /etc/rspamd/local.d/worker-controller.inc
Te ofrece una visión en tiempo real de la actividad relacionada con la firma y el spam. A continuación, reinicia ambos servicios:
bash
sudo systemctl restart rspamd postfix
Comprueba el registro publicado con una herramienta de verificación DKIM antes de darlo por válido, tal y como harías tras la configuración de OpenDKIM.
Rspamd sustituye tanto a OpenDKIM como SpamAssassin. Si utilizabas un filtro de spam independiente, puedes dejar de utilizarlo aquí, de modo que tengas menos servicios, una superficie de configuración más reducida y un único lugar desde el que gestionar tanto la firma como el filtrado.
Es habitual gestionar varios dominios desde un único servidor Postfix, pero DKIM no toma atajos en este sentido. Cada dominio desde el que envíes mensajes necesita su propio par de claves y su propio registro DNS, ya que cada uno se autentica de forma independiente, por lo que no existe una clave compartida que los cubra a todos. La forma de escalar depende del milter que elijas.
Con OpenDKIM, amplías las tablas que ya has creado: Genera una clave para cada nuevo dominio y, a continuación, añade una línea para cada uno de ellos en cada archivo de consulta.
En signing.table:
*@example.com selector2026._domainkey.example.com
*@example.net selector2026._domainkey.example.net
En key.table:
selector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private
selector2026._domainkey.example.net example.net:selector2026:/etc/opendkim/keys/example.net/selector2026.private
Cada nuevo dominio supone una clave más y dos líneas más; es un proceso manual, pero predecible.
Con Rspamd, ya te lo han hecho todo: Dado que la configuración de la ruta utiliza el $domain , Rspamd encuentra automáticamente la clave de cada dominio por el nombre del archivo. Coloca example.net.selector2026.key en el mismo directorio y también firmará ese dominio sin necesidad de cambiar la configuración. Si quieres un control más estricto, puedes añadir bloques específicos para cada dominio en dkim_signing.conf.
Hay dos hábitos que permiten gestionar con facilidad la firma multidominio:
Firmar un correo y comprobar que está firmado correctamente son dos cosas distintas. Desde el punto de vista del remitente, todo puede parecer correcto, mientras que el destinatario rechaza tu firma sin que te des cuenta, y no te darías cuenta hasta que fallara la entrega.
Estas cinco comprobaciones confirman que DKIM funciona correctamente, desde tus propios registros hasta un destinatario real. Sigue el orden que se indica a continuación:
El registro de correo es la forma más rápida de confirmarlo, y además es local. Sigue el registro, envía un mensaje de prueba y fíjate si aparece una entrada de firma:
bash
sudo tail -f /var/log/mail.log
En RHEL/Rocky, el archivo es /var/log/maillog. Busca una línea que indique que el mensaje se ha firmado con tu selector. Si aparece, significa que tu milter está funcionando correctamente.
La validación confirma que la clave privada almacenada en el disco coincide con la clave pública que has publicado:
bash
opendkim-testkey -d example.com -s selector2026 -vvv
clave OK significa que las dos mitades coinciden. Cualquier otro resultado indica un error tipográfico en el DNS o una discrepancia en la clave, lo cual debe corregirse antes de continuar.
Esta es la única forma de comprobar que el destinatario acepta tu firma. Envía un correo electrónico a una cuenta de Gmail, abre el mensaje y selecciona «Mostrar original». Busca DKIM: «PASS» junto a tu dominio, lo que significa que el servidor receptor confirma que tu firma ha sido verificada.
Un verificador DKIM recupera y analiza tu registro publicado tal y como lo haría un servidor receptor, confirmando que la clave es válida y está completa.
Prueba el verificador DKIM gratuito de PowerDMARCy, a continuación, envía un mensaje a mail-tester.com para obtener una puntuación de entregabilidad más amplia que tenga en cuenta DKIM junto con SPF, DMARC y las señales de spam.
Tu firma puede verificarse correctamente y, aun así, DMARC puede dar un resultado negativo, ya que DMARC requiere alineación: el dominio de tu DKIM d= tiene que coincidir con el dominio que aparece en el encabezado «De:» visible.
Iniciar sesión como mail.example.com al enviar desde example.com ; la alineación «relaxed» te salvará, pero la «strict» no. Si DMARC falla a pesar de que DKIM haya pasado la comprobación, comprueba que tu tabla de firmas se corresponda con el dominio correcto.
Superar la comprobación DKIM confirma que una parte del proceso de autenticación funciona, pero la capacidad de entrega y la protección contra la suplantación de identidad dependen de que DKIM, SPF y DMARC actúen de forma conjunta.
El analizador de dominios gratuito de PowerDMARC Analizador de dominios gratuito analiza los tres aspectos a la vez y ofrece una puntuación de la A a la F, por lo que, de un solo vistazo, sabrás si tu dominio está realmente protegido de principio a fin o si solo cuenta con una protección parcial.
Cuando te encuentres con problemas como el «DKIM pasa, pero DMARC falla», la herramienta gratuita Email Header Analyzer coloca el veredicto de DKIM y el resultado de la alineación uno al lado del otro, para que puedas identificar la discrepancia exacta en cuestión de segundos en lugar de tener que entrecerrar los ojos para leer los encabezados sin procesar.
Una clave privada que permanece inalterada en un servidor durante años es una clave cuyo riesgo de exposición va en aumento. Si alguna vez se filtra, un atacante podría firmar correos como si procedieran de tu dominio hasta que te des cuenta.
Al alternar según un calendario, al menos una vez al año, se mantiene ese intervalo reducido. El selector basado en el año hace que el cambio se realice sin problemas.
El proceso de rotación:
La parte en la que se solapan los pasos 5 y 6 es aquella que no se puede precipitar. Si se retira el registro antiguo demasiado pronto, cualquier mensaje que aún se esté cotejando con él fallará en la verificación, precisamente el tipo de fallo silencioso de autenticación que se supone que debe evitar el DKIM.
Ni OpenDKIM ni Rspamd automatizan la generación de claves, la publicación en el DNS ni la sincronización de la superposición. Para un solo dominio, basta con un recordatorio en el calendario una vez al año. Cuando se trata de cinco o más, se convierte en una tarea recurrente que es fácil pasar por alto, y una rotación que, sin que uno se dé cuenta, nunca llega a realizarse supone una brecha de cumplimiento que no notarás hasta que alguien te pida que lo demuestres.
Los problemas con DKIM en Postfix suelen deberse a unas pocas causas previsibles, principalmente los permisos de los sockets, las rutas de las claves y la alineación de dominios. En la tabla siguiente se relaciona el síntoma que estás observando con su causa más probable y la solución, para que puedas ir directamente al que te corresponde.
| Error | Causa probable | Fijar |
|---|---|---|
| No hay firma DKIM en los encabezados | El Milter no está conectado o hay una discrepancia en el conector | Comprueba que la ruta del socket coincida en los archivos opendkim.conf y main.cf; comprueba que el usuario de Postfix forme parte del grupo opendkim. |
| Conectarse al servicio Milter... Conexión rechazada | El demonio OpenDKIM no se está ejecutando | systemctl start opendkim; comprueba que el archivo de socket existe realmente en el directorio spool |
| opendkim: error al recuperar la clave | Ruta incorrecta en la tabla de claves o permisos erróneos | Comprueba la ruta .private en key.table; ejecuta el comando chown opendkim:opendkim en la clave |
| DKIM se supera, pero DMARC falla | Desajuste de alineación | El dominio de la firma (d=) debe coincidir con el dominio del encabezado «From:»; utiliza una alineación flexible. |
| Clave de 2048 bits rechazada por el DNS | Límite de 255 caracteres para mensajes TXT del proveedor | Divide la clave pública en dos cadenas entre comillas dentro del mismo registro TXT |
Para un único dominio, la gestión autónoma de DKIM en Postfix es la opción perfecta. Se configura una sola vez y funciona sin problemas, pero a medida que aumenta el volumen de envíos, el trabajo manual que conlleva se convierte en una fuente de riesgo en lugar de en un medio de control.
Algunas señales de que has llegado a ese punto:
Si te enfrentas a estos retos, la gestión de DKIM alojada cubre esas carencias al eliminar por completo los pasos manuales. A continuación te explicamos en qué se diferencia la gestión manual de DKIM de la gestión de DKIM alojada:
| Tarea | Manual (OpenDKIM / Rspamd) | DKIM alojado |
|---|---|---|
| Rotación de claves | Manualmente en cada ciclo: generar, publicar, solapar, retirar | Automático, sin necesidad de modificar el DNS en cada ciclo |
| Varios dominios | Clave, registro y configuración independientes para cada dominio | Gestionado de forma centralizada |
| Tamaño de la llave | 2048 bits (o Ed25519) | Hasta 4096 bits |
| Gestión de selectores | Registrado manualmente | Detección automática para los principales proveedores de servicios de Internet |
| Mantenimiento del DNS | Se revisa en cada rotación | Un único CNAME, publicado una sola vez |
Si gestionas DKIM en varios dominios o necesitas una rotación que garantice el cumplimiento normativo y en la que puedas confiar, el servicio DKIM alojado de PowerDMARC elimina la carga de trabajo manual y el riesgo que conlleva.
Empieza tu prueba gratuita de 15 días
DKIM en Postfix consiste en la firma criptográfica del correo saliente en un servidor Postfix, de modo que los destinatarios puedan confirmar que procede de tu dominio sin haber sido alterado. Postfix no dispone de un módulo de firma integrado, por lo que envía cada mensaje a un «milter» —OpenDKIM o Rspamd— que se encarga de añadir la firma.
OpenDKIM es un «milter» independiente que firma y verifica DKIM para Postfix y otros MTA, y nada más. Es sencillo y está muy extendido, pero no ha tenido ninguna versión estable desde 2021, por lo que hay que tener en cuenta ese riesgo de mantenimiento en las configuraciones a largo plazo.
Rspamd es un sistema de filtrado de spam que se mantiene de forma activa y cuyo módulo de firma DKIM permite firmar los mensajes de Postfix. Dado que gestiona tanto el filtrado como la firma en un único milter, sustituye tanto a OpenDKIM como a SpamAssassin, lo que lo convierte en la mejor opción para 2026 en servidores multidominio o de producción.
Postfix es un agente de transferencia de correo (MTA) de código abierto muy utilizado que enruta y entrega el correo electrónico en servidores de tipo Unix. Envía y recibe correo, pero no firma DKIM por sí mismo; para ello se necesita un «milter» independiente, como OpenDKIM o Rspamd.
Para configuraciones sencillas de un solo dominio, OpenDKIM sigue funcionando bien. Para servidores con varios dominios o servidores de producción, Rspamd es la mejor opción. Se mantiene de forma activa y combina la firma DKIM con el filtrado de spam en un único milter.
Comprueba /var/log/mail.log para ver las entradas de firma, ejecuta opendkim-testkey, envía un correo electrónico de prueba a Gmail y comprueba en los encabezados sin procesar si aparece DKIM: APROBADO, o comprueba tu dominio con un verificador DKIM gratuito.