Logo
You
Code

DKIM en Postfix

Autor YouCode - http://www.youcode.com.ar/postfix/dkim-en-postfix-216

DKIM (DomaiKeys Identified Mail) se utiliza para firmar en el servidor los mensajes que enviemos para que el receptor pueda asegurar que el remitente pertenece realmente al dominio que dice y que el mensaje no ha sido manipulado por el camino.

Esta configuración ha sido probada en un VPS con Ubuntu 10.04 server, pero debe funcionar también en Debian. Existen dos paquetes que hacen más o menos lo mismo: dkim-filter y opendkim. He preferido usar el segundo porque he leído que está más actualizado (además me gusta todo lo que empieza por open ;).
apt-get install opendkim
mkdir /etc/opendkim
cd /etc/opendkim
opendkim-genkey -d midominio.es -s mail
Una vez ejecutados estos comandos tendremos en la carpeta actual dos archivos, mail.private que es la clave privada y mail.txt que es la clave pública que debemos incluir en un registro TXT de nuestro DNS.

Modificamos la configuración del DNS donde se encuentra nuestro dominio para añadir una entrada TXT con el nombre mail._domainkey y como contenido el texto que aparce entre comillas dentro del segundo archivo.

Editar el archivo /etc/opendkim.conf y añadir las siguientes líneas:
Domain midominio.es
KeyFile /etc/opendkim/mail.private
Selector mail
Canonicalization relaxed/relaxed
Socket inet:9999@localhost
X-Header yes
Iniciamos el servicio con service opendkim start y pasamos a configurar Postfix. Solo hay que añadir las siguientes líneas a /etc/postfix/main.cf y activar la configuración con service postfix reload:
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:9999
non_smtpd_milters = inet:localhost:9999
Podemos probarlo enviando un email a sa-test@sendmail.net, un servicio que nos devolverá como respuesta el resultado de varios test de autenticidad del correo, entre ellos DKIM. 

Nota

La palabra mail que se ha usado en los pasos anteriores es el selector y puede cambiarse por otra cualquiera, siempre que se haga en todos los sitios donde aparece.
Múltiples dominios

Si queremos que el servidor firme todos los emails, aunque sean de distintos dominios, debemos cambiar la configuración de opendkim.conf eliminando el parámetro KeyFile y añadiendo estas dos líneas:
KeyTable /etc/opendkim/dkim_key_table

SigningTable refile:/etc/opendkim/dkim_signing_table
Luego creamos dos archivos nuevos en /etc/opendkim:
dkim_key_table:

keyname midominio.es:mail:/etc/opendkim/mail.private

dkim_signing_table:

* keyname
Reiniciamos con service opendkim restart y listo, todos los emails que se envíen con Postfix irán firmados por el dominio principal. También se puede hacer una configuración separada por dominio, pero requiere una clave privada y una entrada TXT en el DNS para cada uno.
 
http://www.youcode.com.ar/postfix/dkim-en-postfix-216